day56_java_基础巩固

简介: 自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!!!虽然有些干货知识很通俗,但也是自己的必经之路i,加油!!!

RocketMQ 如何做负载均衡?


通过 Topic 在多 Broker 中分布式存储实现。


(1)producer 端

发送端指定 message queue 发送消息到相应的 broker,来达到写入时的负载均衡

提升写入吞吐量,当多个 producer 同时向一个 broker 写入数据的时候,性能会下降

消息分布在多 broker 中,为负载消费做准备

默认策略是随机选择:

producer 维护一个 index

每次取节点会自增

index 向所有 broker 个数取余

自带容错策略

其他实现:

SelectMessageQueueByHash

hash 的是传入的 args

SelectMessageQueueByRandom

SelectMessageQueueByMachineRoom 没有实现

也可以自定义实现 MessageQueueSelector 接口中的 select 方法

MessageQueue select(final List<MessageQueue> mqs, final Message msg,

final Object arg);


(2) consumer 端

采用的是平均分配算法来进行负载均衡。


其他负载均衡算法

平均分配策略(默认)(AllocateMessageQueueAveragely)

环形分配策略(AllocateMessageQueueAveragelyByCircle)

手动配置分配策略(AllocateMessageQueueByConfig)

机房分配策略(AllocateMessageQueueByMachineRoom)

一致性哈希分配策略(AllocateMessageQueueConsistentHash)

靠近机房策略(AllocateMachineRoomNearby)


追问:当消费负载均衡 consumer 和 queue 不对等的时候会发生什么?

Consumer 和 queue 会优先平均分配,如果 Consumer 少于 queue 的个数,则会存

在部分 Consumer 消费多个 queue 的情况,如果 Consumer 等于 queue 的个数,那就是

一个 Consumer 消费一个 queue,如果 Consumer 个数大于 queue 的个数,那么会有部分 Consumer 空余出来,

白白的浪费了

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
Unix Linux Windows
如何调整服务器系统时间
如何调整服务器系统时间
1231 0
|
存储 JavaScript 前端开发
2022年前端js面试题
2022年前端js面试题
213 57
|
机器学习/深度学习 存储 算法
【2024泰迪杯】B 题:基于多模态特征融合的图像文本检索Python代码baseline
本文通过可视化分析,总结了2024年考研国家分数线的变化趋势,指出管理类MBA降低5分,哲学、历史学、理学、医学等10个专业分数线上涨,而经济学等专业出现下降,反映出不同专业分数线受考生数量、竞争情况和政策调整等因素的影响。
209 2
【2024泰迪杯】B 题:基于多模态特征融合的图像文本检索Python代码baseline
|
安全 IDE Java
MapStruct-JavaBean映射工具使用指南
MapStruct-JavaBean映射工具使用指南
210 9
|
存储 数据采集 监控
量化交易开发正式版丨量化交易系统开发策略项目/指南功能/方案需求/案例设计
量化交易系统开发策略的指南可以涵盖以下几个关键方面:
|
网络协议 数据库 数据安全/隐私保护
OSPF基础(二):OSPF区域、router-ID、度量值、修改度量值的方法、OSPF协议报文类型、OSPF邻接关系建立过程
OSPF基础术语讲解、OSPF区域、router-ID、度量值,OSPF度量值的计算方式、修改方式。 OSPF协议报文类型,OSPF三大表项-邻居表,常用的ospf查看方式,邻接关系的建立过程。
OSPF基础(二):OSPF区域、router-ID、度量值、修改度量值的方法、OSPF协议报文类型、OSPF邻接关系建立过程
|
Dubbo Java 应用服务中间件
SpringBoot集成Dubbo启用gRPC协议
本文记录下SpringBoot集成Dubbo启用gRPC协议,以及与原生 gRPC 在代码编写过程中的区别。
451 0
|
SQL 分布式计算 Hadoop
hadoop搭建、mysql、hive部署(一)
hadoop搭建、mysql、hive部署
249 0
|
数据建模 数据安全/隐私保护
从0到1带你构建——低代码开发入门案例
从0到1带你构建——低代码开发入门案例
662 0