自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 资源 (2)
  • 收藏
  • 关注

原创 Python核心基础(二):魔法函数

一:什么是魔法函数 看一个简单的例子:class Company: def __init__(self, employee__list): self.employee = employee__listcompany = Company(['tom','jack','jane'])employee = company.employeefor item...

2019-09-04 11:27:02 233

原创 Python核心基础(一):对象,内置类型

前言:在Python当中,一切皆对象1. 在Python当中,一切皆对象。类和函数也都是对象,是Python的一等公民。一等公民具备的特征如下:可以赋值给一个变量。 可以添加到集合当中 可以作为参数传递给函数 可以作为函数的返回值def ask(name="body"): print(name)class Person: def __init__(...

2019-09-03 17:46:29 280

原创 Elasticsearch学习笔记(五):ES的基础分布式架构

ES对复杂分布式机制的透明隐藏性 ES的垂直扩容和水平扩容 增加或减少节点时数据的rebalance master 节点 节点对等的分布式架构1、Elasticsearch对复杂分布式机制的透明隐藏特性ES是一套分布式系统,分布式是为了应对大数据量。隐藏了复杂的分布式机制分片机制:我们之前所做的插入document,我们并没有关心过数据是怎么进行分片的,分到哪一个shard当...

2019-06-12 14:50:08 278

原创 Elasticsearch学习笔记(四):ES的搜索方式

大纲:query string search query DSL query filter full-text search phrase search highlight search 聚合分析1. query string search搜索全部商品:get /ecommerce/product/_search{ "took": 20, "timed_out...

2019-06-12 11:00:25 821

原创 Elasticsearch学习笔记(三):ES的集群检查,文档CRUD

一. Document的数据格式 ES是面向文档的分析搜索引擎 (1)应用系统的数据结构基本上都是面向对象的。 (2)对象数据存储到数据库当中,只能拆解开来,变为扁平的多张表,每次查询的时候还需要还原为对象格式,相当麻烦。 (3)ES是面向文档的,文档中存储的数据结构,与面向对象的数据结构是一样的,基...

2019-06-12 09:50:21 536

原创 Elasticsearch学习笔记(二):ES的核心概念

一:Lucene和ES的关系 Lucene,是一个先进,功能强大的搜索库,直接基于Lucene开发,非常复杂,api复杂(需要写大量的Java代码)。需要深入理解其原理(各种索引结构)。 ES:基于Lucene,隐藏其复杂性,提供简单易用的Restful API接口。ES是一个分布式的搜索和分析,存储引擎,支持PB级别的数据。二:ES的核心概...

2019-06-10 17:59:15 546 2

原创 Elasticsearch学习笔记(一):简介

介绍Elasticsearch之前,需要先了解以下几个问题:一:什么是搜索? 搜索,就是在任何场景下,找寻你所需要的信息。这个时候,会输入一些你想要搜索的关键字,然后期望找到这个关键词相关信息的过程。二:用数据库进行搜索会怎么样? 做软件开发的朋友们,通常都是把数据存储在数据库当中,比方说电商网站的商品信息,招聘网站的职位信息,新闻网站的新闻信息等等。而且,在做网站的站...

2019-06-10 16:39:00 195

原创 go 语言教程(一):切片和数组

一:go语言数组 在go语言当中,数组定义有很多种方式,常用的如下所示:package mainimport "fmt"//go 数组func updateArray(s [5]int){ s[0] = 200}func main() { var arr1 int//等价于 var arr1 [0]int arr2 := [3]int{1,3,4}...

2019-05-20 17:10:55 344 1

原创 Spring Cloud(五):Spring Cloud Config分布式配置中心

  Spring Cloud Config就跟它名字的含义一样,是一个单独的配置中心的服务,所有的服务所需要的配置文件都可以从Cloud Config配置中心获取。Spring Cloud Config的服务为Config Server,Config Server 既可以从本地仓库当中读取配置文件,也可以从远程仓库Git当中读取。  (一):从远程仓库Git当中读取。在远程仓库Git当中创...

2018-07-19 14:16:20 392

原创 Spring Cloud(四):路由网关Zuul

   Zuul作为路由网关组件,在微服务架构当中有着非常重要的作用,主要体现在6个方面:Zuul,Ribbon以及Eureka相结合,可以实现智能路由和负载均衡的功能,Zuul能够将请求流量按某种策略分发到集群状态的多个服务器实例。 网关将所有服务的API接口统一聚合,并统一对外暴露。外界系统调用API接口时,都是由网关对外暴露的API接口,外界系统不需要知道微服务系统当中各服务相互调用的复...

2018-07-19 11:51:08 289

原创 Spring Cloud(三):熔断器Hystrix

  一:简介:          在分布式系统当中,服务与服务之间的依赖错综复杂,一种不可避免的情况就是某些服务会出现故障,导致依赖他们的其他服务也出现远程调度的线程阻塞。Hystrix是通过隔离服务的访问点阻止联动故障的。并提供了故障的解决方案。  二:Hystrix的设计原则 防止单个服务的故障耗尽整个服务的Servlet容器(例如Tomcat)的线程资源 快速失败机制,如果某个...

2018-07-19 10:31:37 350

原创 Spring Cloud(二):Eureka服务注册与发现

   搭建Maven项目:一:创建父工程:cloud-demopom文件如下:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ...

2018-07-18 18:11:03 210

原创 Spring Cloud(一):Spring Cloud简述

  要了解Spring Cloud,先要对“微服务”这个概念有一定的了解。微服务这个名词最早是由面向对象设计与分析专家Martin Fowler提出,他对微服务的理解如下:  简而言之,微服务架构的风格,就是讲单一程序开发成一个微服务,每个微服务运行在自己的进程当中,并使用轻量级机制通信,通常是 HTTP RESTFUL API。这些服务围绕业务能力来划分构建的,并通过完全自动化部署机制来独立...

2018-07-18 17:51:36 247

原创 Spring Boot (三):Spring Boot整合MongoDB

    在当前流行的NoSQL数据库当中,MongoDB也是使用比较广泛的一种数据库。MongoDB是文档型的NoSQL数据库,具有大数据量,高并发等优势,但缺点是不能够建立实体关系,而且事务管理机制实现起来也比较麻烦。    首先,在pom文件中引入依赖:<!-- https://mvnrepository.com/artifact/org.springframework.boot/spr...

2018-07-13 10:54:18 426

原创 Spring Boot (二):Spring Boot整合Redis

    本篇博客使用上一节的Spring Boot环境。    关系型数据库在性能上总是存在一些缺陷,在较高并发的场景下,频繁的数据库读写操作往往会对服务器造成很大的负担。所以,我们一般在使用传统关系型数据库时,会与具有高效存取功能的缓存系统结合使用,以提高系统的访问性能。Redis是一种可持久存储的缓存系统,是一个高性能的key-value数据库,使用键值对来存储数据。    在POM文件中增加...

2018-07-12 18:13:18 244

原创 Spring Boot (一):spring-boot-starter-data-jpa 解析

一:引言    对于传统关系型数据库,Spring Boot使用JPA(Java Persistence API)资源库来实现对数据库的操作,简单来说,JPA就是为POJO(Plain Ordinary Java Object)提供持久化的标准规范,即将Java普通对象通过对象关系映射(Object Relational Mapping,ORM)持久化到数据库中。二:使用方式2.1:JPA配置  ...

2018-07-12 14:39:24 26844

原创 windows运行vue2

安装node.js,安装webpack,安装vue2之后。新建文件夹为项目:报错,chromedriver版本过低,执行如下命令: 成功,浏览器输入:

2018-01-30 10:26:29 561

原创 java设计模式----适配器模式

适配器模式分为三种:类的适配器模式,对象的适配器模式,接口的适配器模式。适配器模式是将某个类的接口转换成程序期望的另一种接口表示,目的是消除由于接口不匹配而造成的类的兼容性问题。说起来有点绕口,看一下例子:1.类的适配器模式:package cn.lh.designer.classAdapter;/** * 类的适配器模式 * @author lihao * */pub

2017-12-10 13:07:27 201

原创 java设计模式----原型模式

原型模式设计思想就是以一个对象为原型,然后对其复制,克隆,然后产生一个与原对象相似的对象。在java中,复制对象是通过集成Cloneable接口,复制对象是通过调用clone()方法来实现的。注意:该接口其实是一个标记型接口,内部是空的,clone方法是属于Object类的native方法,也就是本地调用。而复制又分为浅复制和深复制。看个例子来看深浅复制的区别:原型类:package cn

2017-12-10 12:15:34 476

原创 java设计模式——工厂方法模式

工厂方法模式就是当大量的对象需要创建时,而且它们具有相同的行为特征,也就是具有相同的父接口时,可以通过工厂方法模式来设计。具体的例子package com.kunde.factoryMethod;/** * 所有工厂的父接口 * Created by lihao on 2017/12/8. */public interface GlobalFactory { Send

2017-12-08 18:47:48 205

原创 java设计模式——设计原则

一:开闭原则开闭原则也就是说对扩展开放,对修改关闭,在程序需要进行业务拓展的时候,不能修改程序原有的代码体系,而是选择以扩展的原则,实现一个热拔插的效果。用代码来说,就是在开发过程中,我们更多的应该使用接口和抽象类。二:单一职责原则不要存在多于一个导致类变更的原因,也就是说每个类都应该实现单一的职责,如若不然,就应该把类拆分。三:里氏替换原则里氏替换原则是面向对象设计的原则之一

2017-11-27 20:49:35 297

原创 redis复习(二):高级命令,主从复制,哨兵模式

一:redis高级命令keys *:查看所有key(可以模糊匹配)exists:是否存在指定的keyexpire:设置某个key的过期时间,ttl查看过期剩余时间persist:取消某个key的过期时间select :选择数据库,默认有0到15一共16个数据库,默认进入的是0数据库move key [数据库下标]:将当前数据库中的key移动到下标数据库当中randomk

2017-10-04 15:58:17 362

原创 redis复习(一):基本知识点----安装、基本数据类型和相关操作

一:redis的安装:在/usr/local/下解压redis的安装包。在安装之前需要c++的编译环境,可以yum -y install gcc-c++安装c++的编译环境。进入解压之后的redis目录,make命令进行编译,再进入src目录 make install测试安装贼/usr/local目录下创建目录 : mkdir -p  /usr/local/redis/etc和 m

2017-10-02 18:42:09 298

原创 Linux操作复习

添加用户:useradd 用户名 设置密码:passwd 用户名。su 用户名;切换用户。chown 用户名 文件或目录:修改文件或目录所属用户chgrp 组名 文件或目录:修改文件所属组。文件搜索命令:命令;find语法:find [搜索范围路径] -name [文件名称] (根据文件名称查找)   find【搜索范围路径】 -size【(+-)文件大小】(根据文件大小查

2017-10-01 14:31:24 250

原创 Linux操作复习(一):文件命令相关

在Linux中,所有的都是文件/文件夹形式存在的。我们敲一下ls -la命令看一下:这里先说一下文件的后缀名,在linux中,不限制后缀名,什么意思,就是文件名后缀你可以是任意的,但是我们一般都遵循一个习惯:比如:.log一般是日志,.cfg一般是配置文件,.sh一般是shell脚本,.txt为文本等等。那么看一下每个文件都有些什么:以该文件为例:第一位 "-" 表

2017-10-01 12:18:01 333

原创 网络编程复习(十):实践----数据通信

这里说一下真实项目应用中使用Netty的场景,大体上一些参数的设置都是根据服务器的性能决定的,这不是我要说的事。我们要考虑得是2台机器(或者多台)使用Netty进行的通信,大体上分为三种:第一种:使用长连接的通道不断开的方式进行通信,也就是客户端和服务端的通道一直处于开启状态,如果服务器性能足够好,并且我们的客户端数量也比较少的情况下,这种方式可以考虑使用。第二种:一次性批量提交数据,

2017-09-30 16:02:27 381

原创 网络编程复习(九):Netty的编解码技术

编解码技术,说白了就是java的序列化,序列化的作用有两个,网络传输和持久化。随人我们可以使用java提供的序列化方式,netty去传输,但是有很多硬伤,比如java序列化没法跨语言,序列化后码流太大,序列化性能太低等等。主流的编解码框架有:Jboss的marshalling包:今天内容Google的protobuf;基于protobuf的Kyro;MessagePack框

2017-09-29 18:02:40 334

原创 网络编程复习(八):Netty解决拆包粘包问题--定长方式

这里说道定长方式,个人觉得定长这种定义方式还是不够方便,因为当数据没有达到规定的长度的时候,你就必须用空格(或其他字符)补齐长度,否则这段不够的数据将会丢失。在Netty中,分隔符与定长唯一的实现区别就是DelimiterBasedFrameDecoder(自定义分隔符)改为了FixedLengthFrameDecoder定长类。client:package 网络编程_netty2;

2017-09-29 17:40:46 497

原创 网络编程复习(七):Netty解决拆包粘包问题--分隔符方式

在Netty中实现了2种拆包方式:分隔符方式,定长方式,这里介绍分隔符方式。实现起来很简单:server:package 网络编程_netty2;import io.netty.bootstrap.ServerBootstrap;import io.netty.buffer.ByteBuf;import io.netty.buffer.Unpooled;import io.net

2017-09-29 17:25:21 541

原创 网络编程复习(六):Netty入门Demo

关于Netty,可以看做是对JDK的nio API的封装,提供了更简单的实现,同时性能,功能更加丰富以及相对应的安全机制,对于Netty的学习,大家可以访问如下网址,里面讲解的很详细,这里仅写一个小demo作为入门。学习网址:http://ifeve.com/netty5-user-guide/server:package 网络编程_Netty;import io.netty.bo

2017-09-28 21:26:57 352

原创 网络编程复习(五):Socket编程中的IO模式详解

先来说说同步和异步:在JAVA的程序设计中,同步就是指代码按顺序一步一步向下执行,比如说main方法,如果没有多线程,那么该方法必定是一步一步按顺序向下执行,那么如果我在main方法中开启一个线程,那么这个单独的线程与main程序在宏观上可以看做是同时执行的,这就是异步。Socket网络编程的通信方式可以分为四种:一:同步阻塞:这是最最古老的实现方式,也是第一节提到的,在此种方式下

2017-09-28 15:02:00 421

原创 网络编程复习(四):AIO

AIO理解起来有点绕,本人也懒得用,这都是小demo,了解下概念和流程就可以了,实际应用是不会这么用的,因为多次读写都可能会导致粘包,不完全度等等一系列的问题。Client:package 网络编程_AIO;import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.nio.channels.Asyn

2017-09-28 14:55:39 254

原创 网络编程复习(三):NIO模式

关于NIO,就是同步非阻塞,虽然效率会提高,但实现起来的有点麻烦,所以实际开发中用的很少,更多的是用Netty框架使用网络Socket,Netty其实是对JDK的nio的一个优化封装,实现起来更加方便,后续也将会介绍,下面看看小demo:client端:package 网络编程_NIO;import java.io.IOException;import java.net.InetSo

2017-09-28 13:23:26 448

原创 网络编程复习(二):JDK1.5之前的伪异步BIO编程

在JDK1.5之前并没有提供NIO非阻塞异步通信,那么是怎么实现多个client连接服务器的呢?答案是使用的是伪异步方式,即自定义线程池加队列方式,下面看看代码:client类:与上一篇没有任何变化package 网络编程_最原始BIO2;import java.io.BufferedReader;import java.io.IOException;import java.io.

2017-09-27 23:17:32 275

原创 网络编程复习(一):最原始的BIO网络编程

为什么叫最原始,是因为不适于真正的开发环境,原始的BIO缺点很明显,这是很古老的网络编程,大家都知道,Windows下一个程序最大的线程数为1000个,而linux下也最多支持2000的线程数,先不说这种编程的内存够不够容纳一千个线程,就算可以达到1000个线程并发,但也是很少,而且这是阻塞形式的TCP网络编程模式,因此不适合真正的开发环境,这里仅为复习,下面看看代码,容后将介绍其他方式:Cl

2017-09-27 21:57:02 384

原创 并发编程复习(十):master和worker模式

首先说说这个模式的特点与原理,看图:原理就是master用来管理调度worker并负责结果集的处理,实际开发中你可以任意的开启任意多的worker去执行任务,取决于你的CPU得性能,下面来看看模拟:任务类:Task:package com.zkingsoft.masterandworker;/** * @Author Lee_Hoo * @DATE Created in

2017-09-24 16:52:36 515

原创 并发编程复习(九):Future模式

Future设计模式其实跟AJax请求有点相像,他无非就是在一个线程访问的时候,先返回一个假的,空壳的数据给客户端,然后后台再开启一个线程去执行任务,等到前台真正使用结果数据的时候,再返回真正的数据给客户端,如果此时数据没有加载完毕,就阻塞。这种模式不走业务逻辑,直接返回假的数据给客户端,然后自己开一个线程偷偷加载数据。下面来看一个小案例:设计一个Data接口,表示返回的数据,里面只有一个

2017-09-23 20:41:10 211

原创 并发编程复习(八):队列相关

package cn.lh.queue;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.Queue;import java.util.concurrent.*;/** * @Author Lee_Hoo * @DATE Created in 2

2017-09-22 15:33:10 235

原创 并发编程复习(七):并发类容器ConcurrentHashMap&CopyOnWrite

这里就不上代码了,因为它对应的就是HashTable,只不过在上面做了很大优化,即支持相对较高的并发。ConcurrentHashMap在JDK1.5之后出现,底层原理:内部将存储的数据分为了16个段,一个线程访问一个段中的数据的时候,会将这个段上锁,即加上synchronized同步,其他线程同时访问时会等其他线程释放锁后进行操作。是不是感觉没啥不一样的?但是,注意,是16个段,也就是不

2017-09-21 22:07:56 241

原创 并发编程复习(六):使用wait和notify模拟阻塞队列

话不多说,代码如下import java.util.LinkedList;import java.util.concurrent.TimeUnit;import java.util.concurrent.atomic.AtomicInteger;/** * 使用wait和notify模拟阻塞队列...... */public class MyQueue { privat

2017-09-21 20:20:03 235

史上最全api

都是现阶段最新的,shiro1.2.2,struts2 2.2.3 spring4,hibernate4,mybatis3,还包括了一些学习教程

2017-06-16

Struts2,Spring,4,Hibernate5最新整合jar包!全

最新版本SSH整合jar包,亲测能用

2017-05-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除