zab协议

1.背景 在分布式系统中实现一致性是件有挑战的事。经典的二阶段提交、三阶段提交都不能完美的解决这一问题,有关传统的的分布式系统一致性问题可以看这里。Paxos 算法能完美地达到分布式系统的一致性,但由于较为复杂,在实际工程上不是很合适,Zab 协议借鉴了 Paxos 的思想,并进行了改进,以满足工...

2018-09-25 22:47:49

阅读数 52

评论数 0

websocket协议

1.连接建立 WebSocket复用了HTTP的握手通道。具体指的是,客户端通过HTTP请求与WebSocket服务端协商升级协议。协议升级完成后,后续的数据交换则遵照WebSocket的协议。 1.1 客户端:申请协议升级 首先,客户端发起协议升级请求。可以看到,采用的是标准的HTTP报文格式,...

2018-09-25 21:35:43

阅读数 80

评论数 0

mongodb-副本集2

1.同步 mongodb的同步使用操作日志oplog实现的。操作日志保存了每一次主节点的写操作。oplog是主节点local数据库中的一个固定集合,备份节点通过查询这个集合就可以知道需要进行复制的操作。 每个备份节点都维护着自己的oplog。记录着每次从主节点复制数据的操作。每个备份节点都可以...

2018-09-24 23:14:06

阅读数 46

评论数 0

mongodb--副本集1

1.介绍 副本集是一组服务器,其中有一个主服务器,用来处理客户端的请求。还有多个备份服务器,用于保存主服务器的数据副本。如果主服务器崩溃了,备份服务器会自动将其中一个升级为主服务器。...

2018-09-24 22:03:45

阅读数 37

评论数 0

设计模式--装饰模式

装饰模式又名包装(Wrapper)模式。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。 1.装饰模式的结构 装饰模式以对客户透明的方式动态地给一个对象附加上更多的责任。换言之,客户端并不会觉得对象在装饰前和装饰后有什么不同。装饰模式可以在不使用创造更多子类的情况下,将对象的...

2018-09-24 10:57:19

阅读数 39

评论数 0

Ngnix的基本学习-多进程和Apache的比较

1.基本的架构设计 接口设计 所有的模块都遵循着同样的ngx_module_t接口设计规范。 Ngnix核心及其常用模块设计关系 从图中可以看出,总共有四个模块。 首先是配置模块,配置模块是所有模块的基础,他实现了最基本的配置项的解析功能。 nginx定义了一种基础类型的模...

2018-09-24 10:18:50

阅读数 86

评论数 0

mybatis缓存机制详解

mybatis提供了缓存机制减轻数据库压力,提高数据库性能mybatis的缓存分为两级: 一级缓存、二级缓存 一级缓存是SqlSession级别的缓存,缓存的数据只在SqlSession内有效 二级缓存是mapper级别的缓存,同一个namespace公用这一个缓存,所以对SqlSession是共...

2018-09-22 21:33:51

阅读数 38

评论数 0

select,poll,epoll比较

1.select select本质上是通过设置或者检查存放fd标志位的数据结构来进行下一步处理。这样所带来的缺点是: 单个进程可监视的fd数量被限制 需要维护一个用来存放大量fd的数据结构,这样会使得用户空间和内核空间在传递该结构时复制开销大 对socket进行扫描时是线性扫描 ...

2018-09-22 11:42:46

阅读数 32

评论数 0

Mongodb--存储引擎

综述 mongodb 3.0 的存储引擎默认是MMAPV1,还有一个新引擎wiredTigger,wiredTigger具有很高的性能。建议在生产环境上升级到wiredTigger。 MMAPV1引擎 mongodb原生的存储引擎,比较简单,直接使用系统级的内存映射文件机...

2018-09-20 23:03:16

阅读数 32

评论数 0

eureka 源码分析三--高效多线程并发实现

1. eureka server端实例存储结构 ConcurrentHashMap<String, Map<String, Lease<InstanceInfo&...

2018-09-20 22:58:55

阅读数 133

评论数 0

分布式系统---幂等性设计

1. 介绍 WEB资源或API方法的幂等性是指一次和多次请求某一个资源应该具有同样的副作用。幂等性是系统的接口对外一种承诺(而不是实现), 承诺只要调用接口成功, 外部多次调用对系统的影响是一致的。幂等性是分布式系统设计中的一个重要概念,对超时处理、系统恢复等具有重要意义。声明为幂等的接口会认为外...

2018-09-17 22:34:03

阅读数 29

评论数 0

Hessian原理分析

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数...

2018-09-17 21:59:55

阅读数 748

评论数 0

堆外内存的回收机制分析

1.堆外内存 JVM启动时分配的内存,称为堆内存,与之相对的,在代码中还可以使用堆外内存,比如Netty,广泛使用了堆外内存,但是这部分的内存并不归JVM管理,GC算法并不会对它们进行回收,所以在使用堆外内存时,要格外小心,防止内存一直得不到释放,造成线上故障。 2.堆外内存的申请和释放 J...

2018-09-16 21:22:50

阅读数 383

评论数 0

java 引用--PhantomReference

1.引用可达性 强引用可达–如果一个对象可以通过线程访问不需要访问引用对象,那个这个对象是强引用可达。 软引用可达(softly reachable)–如果一个对象没有强引用,但是可以遍历软引用到达,那个这个对象是软引用可达。 弱引用可达( weakly reachable)–如果一个对象没有...

2018-09-16 21:02:39

阅读数 115

评论数 0

linux软硬连接

1.linux 创建连接命令 ln -s 软链接 这是linux中一个非常重要命令,请大家一定要熟悉。它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s, 具体用法是:ln -s 源文件 目标文件。 当 我们需要在不同的目录,用到相同的文件时,我们不需要在每一...

2018-09-16 16:30:35

阅读数 560

评论数 0

java注解接口Annotation

1.介绍 所有的java注解类型都继承接口Annotation 2.获取注解的属性值 通过反射获取注解的属性值 @Retention(RetentionPolicy.RUNTIME) public @interface Vui { String name() default...

2018-09-16 16:24:44

阅读数 187

评论数 0

java effective --不可变类

1.介绍 java中的不可变类更容易设计、实现和使用。不容易出错,且更加安全。 2.如何设计不可变类 不要提供任何修改对象状态的方法。 保证类不会被扩展。使用final修饰class 使所有的域都为final 所有的域都为私有的。 确保对任何可变组件的互斥访问。(如果类具有指向可变对象...

2018-09-16 16:21:44

阅读数 35

评论数 0

UUID

1.介绍 1.1 经由一定的算法机器生成 为了保证UUID的唯一性,规范定义了包括网卡MAC地址、时间戳、名字空间(Namespace)、随机或伪随机数、时序等元素,以及从这些元素生成UUID的算法。UUID的复杂特性在保证了其唯一性的同时,意味着只能由计算机生成。 1.2 非人工指...

2018-09-16 16:18:23

阅读数 35

评论数 0

SHA 算法

1.介绍 安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准 (Digital Signature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA)。对于长度小于2^64位的消息,SHA1会产生一个1...

2018-09-16 16:12:02

阅读数 157

评论数 0

Fastjson二

1. fastjson定制序列化字段 @JSONField(name="gender") public String sex; 2. fastjson序列化空字段 @JsonInclude(value = Include.ALWAYS) public...

2018-09-16 15:59:55

阅读数 19

评论数 0

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