07 2019 档案
摘要:kafka的通讯协议是基于tcp之上的二进制协议,所有类型的请求和响应都是结构化的,由不同的初始类型构成。kafka使用这组协议完成各个功能的实现。 单个kafka client通常需要同时连接多个broker服务器进行数据交互,但每个broker之上只需要维护一个Socket连接用于数据传输。cl
阅读全文
摘要:kafaka并不是直接将原省消息写入日志文件的,相反,它会将消息和一些必要的元数据信息大宝在一起封装成一个record写入日志。其实就是我们之前介绍的batch 具体对每个日志而言,kafka又将其进一步细分成日志段文件以及日志段索引文件,每个分区日志都是由若干日志段文件+索引文件构成的。 创建to
阅读全文
摘要:每个kafka副本对象都持有2个重要的属性:日志末端位移LEO,高水印HW Kafka对leader副本和follower副本的LEO更新机制是不同的,后面我们会详细讨论。 Kafka对leader副本和follower副本的hw值更新机制也是不同的。 消费者无法消费分区leader副本上那些位移大
阅读全文
摘要:kafka把分区的所有副本均匀地分配到所有broker上,并从这些副本中挑选一个作为leader副本对外提供服务,而其他副本被称为follower副本,只能被动地向leader副本请求数据,从而保持与leader副本的同步: 所谓isr,就是Kafka集群动态维护的一组同步副本集合,每个topic分
阅读全文
摘要:依赖于zookeeper,broker向zk中注册的信息以json格式保存,其中包括: 1.listener_security_protocol_map:此值指定了该broker与外界通信所用的安全协议类型 2.endpoints:指定broker的服务endpoint列表,每个endpoint指明
阅读全文
摘要:消息设计 1.消息格式 Kafka的实现方式本质上是使用java NIO的ByteBuffer来保存消息,同时依赖文件系统提供的页缓存机制,而非依靠java的堆缓存。 2.版本变迁 0.11.0.0版本是kafka的一个里程碑式的大版本。特别是对于消息格式进行了改进和升级。kafka的消息版本变迁:
阅读全文
摘要:重平衡(rebalance) 旧版本Kafka依托于Zk进行rebalance,新版本consumer使用了Kafka内置的一个全新的组协调协议。对于每个组而言,Kafka的某个broker会被选举为组协调者(coordinator)。 触发条件: 1.组成员发生变更。 2.组订阅topic数发生变
阅读全文
摘要:offset存放在_consumer_offsets这个topic下 并且从0-49划分了50个分区: consumer会在kafka集群的所有broker中选择一个broker作为consumer group的coordinator,用于实现组成员管理,消费分配方案制定以及提交位移等。 consu
阅读全文
摘要:一些重要的参数: 1.acks指定了在给producer发送响应前,leader broker必须要确保已成功写入该消息的副本数.当前acks有3个取值,0,1,和all 2.buffer.memory:producer启动时会首先创建一块内存缓冲区用于保存待发送的消息,然后由另一个专属的线程负责从
阅读全文
摘要:sh kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
阅读全文
摘要:zk从某种程度上说是kafka的单点失效组件。 /brokers:里面保存了Kafk集群的所有信息,包括每台broker的注册信息,集群上所有topic的信息等。 /controller:保存了Kafka controller组件(controller负责集群的领导者选举)的注册信息,同时也负责co
阅读全文
摘要:github地址:https://github.com/apache/kafka clone下来之后可以看到这样的项目结构: 文件目录说明。 目录 目录 描述 描述 bin bin Windows 和 Linux 下 Kafka 相关操作的脚本,包括启动和关闭 KafkaServer、创建 topi
阅读全文
摘要:1.先判断是不是http 消息,不是返回400,是则remove之前添加的http组件,动态添加websocket组件 添加WebSocket Encoder和WebSocket Decoder之后,服务器端就可以自动对WebSocket消息进行编解码了,后面的业务handler可以直接对WebSo
阅读全文
摘要:基于http请求以拉的方式去做服务器的推送,无论是实时性和有效字节都是差强人意的效果。 公司的im系统在与客户端的交互上实际上借助了websocket来实现服务器与客户端的事实消息推送,今天就来简单了解下这个协议,并且自己实现对websocket的响应。 可以看到在理解了tcp和http之后,web
阅读全文
摘要:1.尽可能使每个类或者成员不被外界访问 2.如果方法覆盖了超类中的一个方法,子类中的访问级别就不允许低于超类中的访问级别,这样可以确保任何可使用超类的实例的地方也都可以使用子类的实例。 3.公有类的实例域绝不能是公有的。但是有一个特例:类的成员域由静态final常量构成,可以公有的静态final域来
阅读全文
摘要:我们在重写equals的时候必须满足几个原则,否则,类在容器和其他场景下会出现奇怪的行为: 1.A.equals(A)=true, 2.对称性。即A.equals(B)=true;则B.equals(A)=true;这一点的反例为:我们想要与其他类实现互操作时。比如类A重写equals并且满足A.c
阅读全文

浙公网安备 33010602011771号