6.broker

  1. broker主要有以下几大功能
    1. 接受客户端发送到消息,并存储
    2. 接受客户端的消费请求,返回消息数据
    3. consumergroup消费进度存储、查询
    4. topic配置管理
    5. 一些其他的配置管理、查询:topic创建、删除、修改,broker配置查询、修改,消息查询,broker运行状态,producer、consumer连接,消费进度等待
  2. broker额外存储的持久化数据,默认存储路径为$HOME/store/config

    这里共有4种文件
    1. topic.json存储的是topic创建的时候的一些属性信息,包括topic名字,权限,queue的数量等等。
    2. consumerOffset.json存储了topic@consumergroup对应的queue:offset
    3. delayOffset.json存储了延时消息的queue:offset
    4. subscriptionGroup.json存储了consumergroup对应的brokerid等信息
  3. 有一点需要说明的是,如果拉取的消息>内存*40,那么会返回 建议客户端从slave拉取的标志。

    long diff = this.getMaxPhyOffset() - maxPhyOffsetPulling;//commitlog最大偏移量 - 当前正在拉取的最大偏移量
    long memory = (long) (StoreUtil.TotalPhysicalMemorySize * (this.messageStoreConfig.getAccessMessageInMemoryMaxRatio() / 100.0)); //物理内存*40%
    getResult.setSuggestPullingFromSlave(diff > memory);//建议是否从slave拉取


  4. 其余源码分析参见:http://blog.csdn.net/a417930422/article/details/50700276
  5. broker高可用,其自身的高可用参见存储层的高可用,broker挂了并不影响其他broker,至于和consumer和producer之间的高可用到相关模块再说
  6. namerserver挂了对broker的影响:
    1. 由于broker默认每30秒向所有的nameserver进行注册
    2. 如果nameserver挂了,那么broker会将连接移除
    3. 下次注册时会继续尝试连接该nameserver,但是会连接失败,所以,broker端会定时的输出连接失败的日志
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值