首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

ActiveMQ教程,详解ActiveMQ中Queue与Topic的区别

通过该消息传递模型,一个应用程序(即消息生产者)可以向另外一个应用程序(即消息消费者)发送消息。在此传递模型中,消息目的地类型是队列(即Destination接口实现类实例由Session接口实现类实例通过调用其createQueue方法并传入队列名称而创建)。消息首先被传送至消息服务器端特定的队列中,然后从此对列中将消息传送至对此队列进行监听的某个消费者。同一个队列可以关联多个消息生产者和消息消费者,但一条消息仅能传递给一个消息消费者。如果多个消息消费者正在监听队列上的消息,,JMS消息服务器将根据“先来者优先”的原则确定由哪个消息消费者接收下一条消息。如果没有消息消费者在监听队列,消息将保留在队列中,直至消息消费者连接到队列为止。这种消息传递模型是传统意义上的懒模型或轮询模型。在此模型中,消息不是自动推动给消息消费者的,而是要由消息消费者从队列中请求获得。

03

中通消息平台集群突破百万主题的技术探索

随着业务上的增长与迭代,业务使用的消息集群会创建越来越多主题,在业务流量不断增长的情况下,还需要不断增加主题的分区数量,Kafka 由于本身的存储机制特点,随着主题和分区数的增加,性能会不断下降,无法满足业务上的发展。通常我们的做法是扩容集群,但随着集群的不断扩大,又会伴随着很多问题,随着集群的扩容节点,创建主题和分区数不断增多,存储在 zk 上的元数据就会越来越多,每当需要全量同步元数据到 Broker 节点时,会是一笔很大的网络开销,由于当 contrller 切换时往往需要全量同步元数据到每个 Broker 上,因此,元数据越多,controller 的切换时长会越长,而且由于 Kafka 会独立一个复制线程进行分区副本的复制,多个分区共享该线程,因此 Broker上的分区不断增多后会造成复制线程负载增大,严重时会会造成某些分区副本复制跟不上,导致 ISR 频繁变化。

01
领券