随笔分类 - 互联网常用中间件
摘要:Netty 主从Reactor多线程模式的源码实现 总览 EventLoopGroup到底是什么? EventLoopGroup是一个存储EventLoop的容器,同时他应该具备线程池的功能。 由于EventLoopGroup间接继承ScheduledExecutorService接口,因此其实现类
阅读全文
摘要:Netty网络框架 Netty是一个异步的基于事件驱动的网络框架。 为什么要使用Netty而不直接使用JAVA中的NIO 1.Netty支持三种IO模型同时支持三种Reactor模式。 2.Netty支持很多应用层的协议,提供了很多decoder和encoder。 3.Netty能够解决TCP长连接
阅读全文
摘要:1.简介 Redis中的每个Key-Value在内存中都会被划分成DictEntry以及代表Key和Value的对象。 DictEntry包含分别指向Key和Value对象的指针以及指向下一个DictEntry的指针。 Redis使用RedisObject来表示对象,由于Key固定是字符串类型,因此
阅读全文
摘要:1.简介 Nginx是一个反向代理服务器,其启动速度极快、占用内存极少、抗高并发能力强,因此大量在互联网项目中应用。 Nginx访问速度快的原因: 1.动静分离,静态资源由Nginx直接进行管理,动态请求转发到后端。 2.Worker进程中的线程是AIO的(异步非阻塞),当接收到一个请求后将其放入到
阅读全文
摘要:1.简介 Redis在生产环境中一般是通过集群的方式进行运行,Redis集群包括主从复制集群和数据分片集群两种类型。 *主从复制集群提供高可用性,而数据分片集群提供负载均衡。 *数据分片集群中能实现主从复制集群的功能。 2.Redis主从复制集群 主从复制集群中由Master节点提供读写服务,Sla
阅读全文
摘要:1.简介 Redis是一个基于内存的Key-Value非关系型数据库,由C语言进行编写。 Redis速度快的原因:基于内存、单线程、支持多路复用。 2.Redis的数据类型 Redis中提供了七种数据类型,分别是String、Hash、List、Set、ZSet、HyperLogLog、BitMap
阅读全文
摘要:1.简介 Kafka是一个分布式消息系统,使用Scala语言进行编写,具有高水平扩展以及高吞吐量特性。 目前流行的消息队列主要有三种:ActiveMQ、RabbitMQ、Kafka ActiveMQ、RabbitMQ均支持AMQP协议,Kafka使用仿AMQP协议,目前Flume、Storm、Spa
阅读全文
摘要:1.简介 Zookeeper是一个分布式服务协调组件,是Hadoop、Hbase、Kafka重要的依赖组件,为分布式应用提供一致性服务的组件。 Zookeeper是Hadoop、HBase、Kafka的重要依赖组件。 Zookeeper主要包含文件系统以及通知机制两个部分。 2.模型 2.1 Zoo
阅读全文