java虚拟机并发编程 (4-可扩展性和线程安全)

in JAVA  |  update on
可扩展性和线程安全## 用ExecutorService管理线程 每个ExecutorService都代表一个线程池,其作用是将线程的创建与执行了过程分离开来,而不是将线程的生命周期管理和任务的执行过程绑在一起。我们可以按需配置线程池的类型,单线程的、带缓存的、基于优先级的、按预定时间调度/按周期调度的和固定大小的,待调度任务的等待队列的大小亦可通过代码进行配置。通过这组API,我们可以很容易地调...
Continue reading

netty权威指南 (1-NIO入门)

in JAVA  |  update on
NIO基础知识Linux网络I/O模型简介根据UNIX网络编程对I/O模型的分类,UNIX提供了5种I/O模型 阻塞I/O模型 非阻塞I/O模型 I/O复用模型select/poll 进程通过将一个或多个fd传递给select或poll系统调用 I/O多路复用技术 支持一个进程打开的socket描述符(FD)不受限制(仅受限于操作系统的最大文件句柄数) I/O效率不会随着FD数目的增加而...
Continue reading

netty权威指南 (2-netty入门)

in JAVA  |  update on
netty入门netty服务端和客户端开发服务端主流程123456789101112131415161718192021222324// 配置服务端Reactor线程组// 一个用于服务端接受客户端的连接EventLoopGroup bossGroup = new NioEventLoopGroup();// 用于进行SocketChannel的网络读写EventLoopGroup workerG...
Continue reading

netty权威指南 (3-TCP粘包拆包问题)

in JAVA  |  update on
TCP粘包拆包问题TCP粘包/拆包TCP粘包/拆包问题说明假设客户端分别发送了两个数据包Dl和D2给服务端,由于服务端一次读取到的字节数是不确定的,故可能存在以下5种情况。 服务端分两次读取到了两个独立的数据包,分别是D1和D2,没有粘包和拆包 服务端一次接收到了两个数据包,D1和D2粘合在一起,被称为TCP粘包 服务端分两次读取到了两个数据包,第一次读取到了完整的D1包和D2包的部分内容,...
Continue reading

netty权威指南 (4-解码器)

in JAVA  |  update on
解码器LineBasedFrameDecoderLineBasedFrameDecoder的工作原理足它依次遍历ByteBuf中的可读字节,判断看是否有“\n”或者“\r\n”,如果有,就以此位置为结束位置,从可读索引到结束位置区间的字节就组成了一行。它是以换行符为结束标志的解码器,支持携带结束符或者不携带结束符两种解码方式,同时支持配置单行的最大长度。如果连续读取到最大长度后仍然没有发现换行符,...
Continue reading

从Paxos到ZooKeeper (1-分布式架构)

in 分布式  |  update on
分布式架构分布式的特点分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。 分布性 对等性 并发性 缺乏全局时钟 故障总是会发生 分布式环境的各种问题 通信异常 单机内存访问的延时在纳秒数量级(通常是10ns左右),而正常的一次网络通信的延迟在0.1〜1ms左右(相当于内存访问延时的105〜106倍) 网络分区 当网络由于发生异...
Continue reading

从Paxos到ZooKeeper (4-ZooKeeper与Paxos)

in 分布式  |  update on
ZooKeeper与PaxosZooKeeper介绍ZooKeeper并没有直接采用Paxos算法,而是采用了一种被称为ZAB(ZooKeeper Atomic Broadcast)的一致性协议。 ZooKeeper是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁和分布式队列等功能。Z...
Continue reading

从Paxos到ZooKeeper (6-ZooKeeper的典型应用场景)

in 分布式  |  update on
ZooKeeper的典型应用场景ZooKeeper是一个典型的发布/订阅模式的分布式数据管理与协调框架,开发人员可以使用它来进行分布式数据的发布与订阅。另一方面,通过对ZooKeeper中丰富的数据节点类型进行交叉使用,配合Watcher事件通知机制,可以非常方便地构建一系列分布式应用中都会涉及的核心功能,如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁...
Continue reading

从Paxos到ZooKeeper (2-一致性协议)

in 分布式  |  update on
一致性协议为了解决分布式一致性问题,在长期的探索研究过程中,涌现出了一大批经典的一致性协议和算法,其中最著名的就是二阶段提交协议、三阶段提交协议和Paxos算法了。 2PC (Two-Phase Commit)二阶段提交协议是将事务的提交过程分成了两个阶段来进行处理 优点:原理简单,实现方便。 缺点:同步阻塞、单点问题、脑裂、太过保守。 同步阻塞 二阶段提交协议存在的最明显也是最大的一个问...
Continue reading

微服务设计 (1-微服务)

in 分布式  |  update on
微服务领域驱动设计 : 用代码呈现真实世界的重要性,并且告诉我们如何更好地进行建模 持续交付理论 : 告诉我们如何更有效及更高效地发布软件产品,并指出保持每次提交均可发布的重要性 六边形架构理论 : 参考:http://www.cnblogs.com/Leo_wl/p/4418663.html 什么是微服务微服务就是一些协同工作的小而自治的服务。 服务应该多小 微服务将单一职责原则应用在独立的...
Continue reading

srzyhead

Progress is the activity of today and the assurance of tomorrow.


Web Developer


Tianjin,China