- 安装rabbit
- brew install rabbit
- 启动停止rabbit
- 启动 /usr/local/Cellar/rabbitmq/3.9.3/sbin/rabbitmqctl start_app
- 停止 /usr/local/Cellar/rabbitmq/3.9.3/sbin/rabbitmqctl stop_app
- 重置 /usr/local/Cellar/rabbitmq/3.9.3/sbin/rabbitmqctl reset
- 交换机类型
- Direct Exchange
- Direct直连交换机:
- 直连交换机是一种带路由功能的交互机,一个队列通过routing_key与一个交换机绑定,当消息被发送的时候,需要指定一个routing_key,这个消息被送达交换机的时候,就会被交换机送到指定的队列里面去。同样一个routing_key也是支持应用到多个队列中的,当一个交换机绑定多个队列时,消息就会被送到对应的队列去处理。
- 适用场景:有优先级的任务,根据任务的优先级把消息发送到对应的队列,这样可以指派更多的资源去处理高优先级的队列。
- Fanout Exchange
- 扇形交换机,转发消息到所有绑定队列(速度最快)
- 扇形交换机是最基本的交换机类型,它做的事情很简单--广播信息。Fanout交换机会把接收到的消息全部转发到绑定的队列上。因为广播不需要“思考”,所以Fanout交换机是四种交换机中速度最快的。
- 适用场景:需要随时增加减少业务处理的队列,例如注册、下单等功能需要增加送积分功能,只需要增加一个绑定到交换机的队列去处理新业务,无需修改旧的业务逻辑,从而达到业务解耦,非常容易扩展。
- Topic Exchange
- Topic主题交换机:
- 直连交换机的routing_key方案非常简单,如果我们希望一条消息发送给多个队列,那么这个交换机需要绑定上非常多的routing_key,假设每个交换机上都绑定一堆的routing_key连接到各个队列上。那么消息队列的管理就会异常的困难。
- 所以RabbitMQ提供了一种主题交换机,发送到主题交换机上的消息需要携带指定规则的routing_key,主题交换机会根据这个规则将数据发送到对应的(多个)队列上。
- 主题交换机的routing_key需要有一定的规则,交换机和队列的binding_key需要采用*.#.*.....的格式,每个部分用.分开,其中:*表示一个单词#表示任意数量(零个或多个)单词。
- 适用场景:消息需要基于多重条件进行路由到达对应队列,例如:日志系统,不仅可以根据日志的级别而且能根据日志的来源进行订阅。
- Headers Exchanges
- header exchange(头交换机)和主题交换机有点相似,但是不同于主题交换机的路由是基于路由键,头交换机的路由值基于消息的header数据。
- 主题交换机路由键只有是字符串,而头交换机可以是整型和哈希值
- Direct Exchange
示例:
composer.json(composer加载php-amqplib库)

最低0.47元/天 解锁文章
1093

被折叠的 条评论
为什么被折叠?



