Mq
消息中间件
协议
- AMQP协议(rabbatMq)
- 事务
- 持久化
- 可靠性高
- MQTT(物联网协议)
- 轻量
- 结构简单
- 传输快
- 没有事务支持
- 没有持久化
- openMessaging(rocketMq)
- 结构简单
- 解析快
- 事务
- 持久化
- kafkka(tcp的二进制协议)
- 结构简单
- 解析快
- 无事务
- 持久化
持久化
消息分发
高可用
通过架构来保证
- 主从共享——Master/Slave
- 主从同步——Master/Slave
- 多主集群同步——Broker/Cluster
- 多主集群转发——Broker/Cluster
- 并存——Master/Slave和Broker/Cluster
高可靠
通过代码来实现
系统要可以无故障地持续运行
Rabbit
rabbitmqctl add_user admin admin 新增用户
rabbitmqctl set_user_tag admin administrator 分配权限
rabbitmqctl set_permissions -p / admin “." ".” “.*”
RabbitMQ 会绑定一些端口,安装完后,需要将这些端口添加至防火墙。
port:
4369
是Erlang的端口/结点名称映射程序,用来跟踪节点名称监听地址,在集群中起到一个类似
DNS的作用。
5672, 5671
AMQP 0-9-1 和 1.0 客户端端口,没有使用SSL和使用SSL的端口。
25672
用于RabbitMQ节点间和CLI工具通信,配合4369使用。
15672
HTTP_API端口,管理员用户才能访问,用于管理RbbitMQ,需要启用management插件。
61613,61614
当STOMP插件启用的时候打开,作为STOMP客户端端口(根据是否使用TLS选择)。
1883, 8883
当MQTT插件启用的时候打开,作为MQTT客户端端口(根据是否使用TLS选择)。
15674
基于WebSocket的STOMP客户端端口(当插件Web STOMP启用的时候打开)
15675
基于WebSocket的MQTT客户端端口(当插件Web MQTT启用的时候打开)