springcloud k8s cloud中消息队列用什么做

RabbitMQ是一个消息中间件是一个实现叻AMQP(高级消息队列协议)的开源消息代理软件,同类的产品还有kafkarocketMQ,但是目前springcloud只集成了RabbitMQ和kafka他的作用就是实现系统之间消息传递的解耦,對一些实时性要求不是很高的服务或者并发很高的系统来说是一个不错的选择同时因为RabbitMQ是以AMQP协议实现的,所以支持多操作系统多编程語言,先来理解一下RabbitMQ的几个概念:

broker:消息队列服务器实体它是一个中间件应用,负责接收消息生产者的消息然后将消息发送给消息消費者或者别的broker;

Exchange:消息交换机,这是消息第一个到达的地方消息通过他指定的路由规则,发送给不同的消息队列;

Queue:消息队列消息通過发送和Exchange路由后最终到达的地方,理论上消息到达Queue后就是等待消费的状态一个消息最终会发送给一个或者多个Queue;

Routing key:路由关键字,Exchange根据这個路由关键字进行投递;

Virtual Host:虚拟主机一个Broker可能包含多个虚拟主机;

Connection:连接,代表生产者、消费者、Broker之间的物理连接;

Channel:消息通道用于連接生产者和消费者的逻辑结构。每个连接里面可能有多个Channel每个Channel代表一个会话;

消息投递到队列的整个过程:

1、客户端连接到消息队列垺务器Broker,建立一个Channel连接;

2、客户端声明一个Exchange设置其属性;

3、客户端声明一个Queue,设置其属性;

5、客户端发送一条消息Exchange接收到消息后,根據key解析路由到相应的队列;

1、Direct交换机:完全根据key投递比如设置了Routing key等于abc,那么客户端必须发送key=abc才会被投递到队列;

2、topic交换机:根据key进行模糊匹配后投递可以使用符合#匹配一个或者多个词,*只能匹配一个次;

3、Fanout:无需配置关键字Key它采用广播室,一个消息进来投递给所有與该Exchange绑定的消息队列;

RabbitMQ也支持消息的持久化,就会将数据写在磁盘上默认为了安全考虑,建议消息持久化;

3、建立一个消息的生产者:

4、建议一个消息的消费者:

5、创建一个RabbitMQ的配置文件:

这个配置文件只要是建立一个消息队列hello;

6、创建应用主类和单元测试类:

}

使用消息队列实现下面三个目标

  • Spring Cloud為开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理服务发现,断路器智...

  • 背景介绍 Kafka简介 Kafka是一种分布式的,基於发布/订阅的消息系统主要设计目标如下: 以时间复杂度为O...

  • }

    我要回帖

    更多关于 springcloud k8s 的文章

    更多推荐

    版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

    点击添加站长微信