各位RocketMQ集群是怎么部署的?
是两主两从 同步刷新不?
RocketMQ的集群部署方式较为灵活。在物理部署结构中,Producer和Consumer对应我们的应用程序,多个NameServer实例组成集群,但相互独立,没有信息交换,所以对于NameServer来说部署两个或两个以上即可保证高可用。例如,在5.0版本中,Broker和Proxy可以根据实际诉求选择Local模式或Cluster模式。在Local模式下,Broker和Proxy是同进程部署;而在Cluster模式下,Broker和Proxy分别部署,即在原有的集群基础上,额外再部署Proxy即可。此外,RocketMQ还支持多Master模式,一个集群无Slave,全是Master,例如2个Master或者3个Master。
至于刷新方式,RocketMQ的消息是存储到磁盘上的,这样既能保证断电后恢复,又可以让存储的消息量超出内存的限制。为了提高性能, RocketMQ会尽可能地保证磁盘的顺序写。消息在通过Producer写入RocketMQ的时候,存在两种写磁盘方式:异步刷盘和同步刷盘。异步刷盘方式指的是在返回写成功状态时,消息可能只是被写入了内存的缓存区,而不是直接写入磁盘;而同步刷盘方式则是在返回写成功状态时,消息已经被写入了磁盘的物理文件。具体的刷盘方式可以通过修改配置文件来调整。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/