#习之

Zookeeper学习之Zab一致性协议

  Zab借鉴了Paxos算法,是特别为Zookeeper设计的支持崩溃恢复的原子广播协议。基于该协议,zk实现了一种主备模型(即Leader和Follower模型)的系统架构来保证集群中各个副本之间数据的一致性。这里的主备系统架构模型,就是指只有一台客户端(Leader)负责处理外部的写事务请求,然后Leader客户...

Zookeeper学习之ZooKeeper源码分析

  ZooKeeper宏观分析源码,如下图所示:          要想分析源码,首先需要宏观分析整个ZooKeeper结构,要知道ZooKeeper分为两部分:服务端集群、客户端。  其中服务端:每台ZooKeeper服务器都有三个状态:初始化、运行中、结束关机。因此当服务器都处于运行时,构成一个zookeeper集...

Zookeeper学习之Zookeeper应用场景及部署

  ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。  Github源码:https://github.com/apach...

Redis学习之Redis集群模式缺陷及其处理

  在我们已经有了Jedis客户端、集群模式支持后,Redis基本使用已经没有大的问题了。关于Jedis以及集群模式请参考博文:Redis学习之4种模式实践及机制解析(单机、主从、哨兵、集群)Redis学习之API学习及Jedis源码原理分析Redis学习之Jedis源码原理分析探究(BIO手写Jedis客户端)  但...

Redis学习之API学习及Jedis源码原理分析

  Redis是一个开源的使用ANSIC语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 我们在进行Java项目开发的时候,如果要使用Redis数据库,那么常常是通过Redis的Java客户端来简化Redis的使用,例如Redisson,Je...

Redis学习之4种模式实践及机制解析(单机、主从、哨兵、集群)

  Redis在日常部署的时候,可以有多种部署模式:单机、主从、哨兵、集群(分区分片),因此本例将对上面这四种模式进行详细的讲解,特别是集群模式将进行最细致的讲解(现行普遍使用的方式)。  单机部署很简单,直接下载Redis进行安装即可,此处不作详细讲解,具体Redis的安装请参考:Mac下安装Redis及RedisD...

Redis学习之Redis概述及原理、基本操作及持久化

  Redis是一个开源的使用ANSIC语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。  它通常被称为数据结构服务器,因为值(value)可以是字符串(String),哈希(Map),列表(list),集合(sets)和有序集合(sortedsets...

Netty学习之实战WebSocket框架

  说到WebSocket技术,其实源于服务器推送技术,在现实中很多时候需要的数据是不断变化的,比如股市数据、聊天软件,因此就需要一种客户端想要在不刷新页面的情况下实时获取到服务器端最新数据的技术,而以往的数据获取都是基于客户端主动请求,服务端返回对应数据。因此就有了服务器推送技术。  服务器推送技术主要由以下几种:A...

Netty学习之实战RPC框架

  先附上GitHub地址:https://github.com/kosamino/netty-root/tree/master/ym-netty-rpc  RPC的实现方式是本地通过远程代理对象调用远程服务。在互联网应用场景中,单体服务极度缺乏弹性伸缩能力,在大规模开发团队中也不便于开发管理。所以往往会把服务根据模块...

Netty学习之编解码器

  如果将消息看作是对于特定的应用程序具有具体含义的结构化的字节序列—它的数据。那么编码器是将消息转换为适合于传输的格式(最有可能的就是字节流);而对应的解码器则是将网络字节流转换回应用程序的消息格式。  在了解Netty编解码之前,先了解Java的编解码:编码(Encode)称为序列化,它将对象序列化为字节数组,用于...
代码星球 代码星球·2021-01-24

Netty学习之粘包、半包

  1、粘包半包场景重现  来做这么一个测试,在Netty客户端发送数据到Netty服务端,代码如下:publicvoidchannelActive(ChannelHandlerContextctx)throwsException{for(inti=0;i<500;i++){ByteBufoutBuffer=Un...
代码星球 代码星球·2021-01-24

Netty学习之核心组件ByteBuf及API

  Netty提供的ByteBuf不同于JDK中NIO的ByteBuffer,ByteBuf是netty中数据传输的容器,是Netty自己实现的,作为NIOByteBuffer的替代品,提供了更好的API供开发者使用。相较于NIO的ByteBuffer更具有卓越的功能性和灵活性。具体NIO的ByteBuffer如何实现...

Netty学习之核心组件ChannelPipeline

  ChannelPipeline提供了ChannelHandler链的容器,并定义了用于在该链上传播入站和出站事件流的API。ChannelPipeline不是单独存在,它肯定会和Channel、ChannelHandler、ChannelHandlerContext关联在一起。  1、概述        如上图所示...

Netty学习之核心组件(AbstractBootstrap、Bootstrap、ServerBootstrap)

  Netty的核心组件的设计都很模块化,如果想要实现一个应用程序,就需要将这些组件组装到一起。Netty通过Bootstrap类,以对一个Netty应用程序进行配置(组装各个组件),并最终使它运行起来。对于客户端程序和服务器程序所使用到的Bootstrap类是不同的,后者需要使用ServerBootstrap,这样设...

Netty学习之核心组件(EventLoop、EventLoopGroup)

  由下图所示,NioEventLop是EventLoop的一个具体实现,EventLoop是EventLoopGroup的一个属性,NioEventLoopGroup是EventLoopGroup的具体实现,都是基于ExecutorService进行的线程池管理,因此EventLoop、EventLoopGroup组...
首页上一页...45678...下一页尾页