• 消息中间件---kafka


    1.实现原理:kafka依赖于zk(zookeeper),将所有的kafka服务器注册到zk服务器上,并建立长连接(zk保存着kafka的broker节点信息)

    2.核心组件:broker、topic、partition(分区)、producer、consumer以及message

    broker:就是一台kafka节点

    topic:消息主题,包含了多个partition;每一个消息都会表示成一个递增的序号,存在在partition中

    partition:由一个一个的消息组成;

    producer:生产者;

    consumer:消费者

    3.发送过程以及消费过程

    1)发送过程:选择一个topic发送消息(send(tipoc、key、value));底层是通过计算key以及value的序列化值,找到相应的partition,将消息保存在partition的末尾;

    2)消费过程:监听一个topic主题,通过id(offsert--偏移量)指定消息消费的地址,然后consumer会保存当前的id消息-作为下次消费的id起点...

    4.Broker:(相当于一个kafka节点)

    5.优点:

    1) 消费者可以根据需求灵活的指定offset(id);

    2)保证消息的不变性,依赖于每个consumer的offset(每个consumer的offset互不影响)保证了线程的安全;

    3)高可用,消息以partition为一个单元体,分配到多个server当中,并以partition进行备份。

    6.缺点:(kafka依赖于zk,故需要考虑到zk的缺点)

    由于zk是中心化的节点,包含leader与follower节点,那么在选举过程当中,所有的节点都挂起,不能够访问,在选举阶段,数据存在丢失.

  • 相关阅读:
    HIbernate小结
    玩耍Hibernate之缓存
    Java学习之IO流总结
    java基础学习之对象转型
    玩耍Hibernate系列(一)补充--基础知识
    玩耍Hibernate系列(二)--基础知识
    玩耍Hibernate系列(一)--基础知识
    Struts2拦截器的使用 (详解)
    struts1 和 struts2中Action什么时候实例化
    Java基础学习总结--Java对象的序列化和反序列化
  • 原文地址:https://www.cnblogs.com/lq-93/p/12674444.html
Copyright © 2020-2023  润新知