linux怎么查看本机内存大小
271
2022-10-02
上云记之消息中间件
Azure上有两种消息队列的产品,分别是 Azure Queue Storage 和 ServiceBus. 如何选择呢。 下面列出两种产品主要特点以及是否适合我们的需求
· Storage Queue
1. Azure 存储基础结构的一部分,具有简单的基于 REST 的 GET/PUT/PEEK 接口,可在服务内部和服务之间提供可靠、持久的消息传送
2. 不支持消息推送/监听,即不能使用类似RabbitListener的监听机制,只能QueueClient取数据
3. 适合用于存储和管理大于80GB的队列。
4. 不支持FIFO(先进先出)
5. 无死信队列
· Service Bus
1. Azure 消息传送基础结构的一部分,可支持队列以及发布/订阅和更高级的集成模式
2. 支持消息推送/监听,可以使用类似RabbitListener的机制,Service Bus使用JmsListener,或者QueueClient注册
3. 队列容量不要超过80GB
4. 基于 AMQP 1.0 标准的消息传送协议
5. 保证FIFO
6. 支持死信队列
相比之下,Sevice Bus的特性(以上粗体显示之特性)更适合替代RabbitMQ作为上云之后的PaaS消息中间件。
下面分享下如何具体替换:
1. AMQP中队列,订阅/发布概念在RabbitMQ中是通过exchange 类型(direct 和 topic)来实现的。那么Service Bus可以通过如下步骤来分别创建Subscriptions和 Topics:快速整合ServiceBus 到springboot 发送和接收消息,JMS方式。
1) 添加pom依赖
2) 添加链接字符串到配置文件
spring.jms.servicebus.connection-string=Endpoint=sb://my-servicebus.servicebus.chinacloudapi.cn/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx spring.jms.servicebus.idle-timeout=1800000
3) 生产者通过JmsTemplate发送消息
@Autowired private JmsTemplate jmsTemplate; public void postMessage(@RequestParam String message) { jmsTemplate.convertAndSend(QUEUE_NAME, new User(message)); }
4) 消费者添加监听器
@JmsListener(destination = QUEUE_NAME, containerFactory = "jmsListenerContainerFactory") public void receiveMessage(User user) { logger.info("Received message from queue: {}", user.getName()); }
注:整合springboot更详细信息可参考Azure文档
· JMS方式:Spring Cloud Azure Stream Binder 方式:https://docs.microsoft.com/zh-cn/azure/developer/java/spring-framework/configure-spring-cloud-stream-binder-java-app-with-service-bus
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~