rocketmq基础知识

编程

    看一下一个高可用rocketmq的结构图。NameServer作为服务发现单独成为一个集群,producer和consumer直接指定nameserver cluster的地址。从而获取可用broker的地址。对于broker,也采取master  slave结构以增强cluster的可用性。

    broker的相关配置大致如下,

    1.amesrvAddr=192.168.100.131:9876; 192.168.100.132:9876 // 服务发现地址

    2.brokerCl usterName=DefaultCluster // 集群名称

    3.brokerName=broker- a // broker名称 通过brokerName来关联master和slave

    4.brokerid=0 // 为0则代表为master 不为0则为master

    5.fileReservedTime=48 // 磁盘上保存时间

    6.deleteWhen=04 // 默认删除时间

    7.brokerRole=SYNC MASTER // broker的角色

                                                    // sync_master 表示该节点为master 与slave同步后才同步成功,

                                                    // async_master 异步同步

                                                    // slave 从节点

    8.flushDiskType=ASYNC FLUSH // 刷盘策略 sync_flush 同步刷盘 async_flush 异步刷盘

push和pull的区别

    push:采用长轮询的方式去拉取,由broker自己维护offset。

    pull:    也是通过http请求去拉取,offset需要自己维护,每次pull的时候带上offset,可以作为事务。

producer的相关特性

    groupName:consumer的group名称,相同的group会产生对于事务的影响。

    instanceName:每一个producer的名称

    重试次数,发送失败的重试次数,因为重试收不到ack,可能会引起重复消息。

    nameServer地址

    返回值:  FLUSH_DISK_TIMEOUT 刷盘失败

                    FLUSH_SLAVE_TIMEOUT 同步到slave失败

                    SLAVE_NOT_AVAILABLE slave挂掉了

                    SEND_OK 发送成功

    支持2pc的事务

    

 

            

以上是 rocketmq基础知识 的全部内容, 来源链接: utcz.com/z/511204.html

回到顶部