0. 消息中间件的介绍
RabbitMQ是一个“传统”消息代理,可以实现各种消息传递协议。它是首批实现合理级别功能,客户端库,开发工具和质量文档的开源消息代理之一。RabbitMQ最初是为实现AMQP而开发的,AMQP是一种开放式线路协议,具有强大的路由功能。虽然Java具有像JMS这样的消息传递标准,但它对于需要分布式消息传递的非Java应用程序没有帮助,因为它严重限制了任何集成场景,微服务或单片机。随着AMQP的出现,跨语言的灵活性成为开源消息代理的真实存在。
RabbitMQ被设计为通用消息代理,采用点对点,请求/回复和pub-sub通信样式模式的多种变体。它使用智能代理/哑消费者模型,专注于向消费者提供一致的消息传递,消费者的消费速度与经纪人跟踪消费者状态的速度大致相似。它是成熟的,在正确配置时表现良好,得到很好的支持(客户端库Java,.NET,node.js,Ruby,PHP和更多语言),并且有许多可用的插件可以将它扩展到更多的用例和集成场景。
1.kafka,rabbitMQ的对比
RabbitMQ中的通信可以根据需要同步或异步。发布者向交换发送消息,消费者从队列中检索消息。通过交换将生产者与队列分离可确保生产者不会受到硬编码路由决策的影响。RabbitMQ还提供了许多分布式部署方案(并且确实要求所有节点都能够解析主机名)。可以将多节点群集设置为群集联合,并且不依赖于外部服务(但某些群集形成插件可以使用AWS API,DNS,Consul等)。
Apache Kafka专为高容量发布 - 订阅消息和流而设计,旨在持久,快速和可扩展。从本质上讲,Kafka提供了一个持久的消息存储,类似于日志,在服务器集群中运行,它存储称为主题的类别中的记录流。
2.rabbitMQ的安装与使用
2.1在基于RPM的Linux上安装(RHEL,CentOS,Fedora,openSUSE),RabbitMQ RPM包需要sudo权限(或使用root用户)才能安装和管理。
####1.安装Erlang
[root@slave1 ~]# yum install erlang
[root@slave1 ~]# yum update erlang
####2.安装RabbitMQ服务器
##下载rabbitMQ rpm安装包
[root@slave1 ~]# wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.8/rabbitmq-server-3.7.8-1.el6.noarch.rpm
[root@slave1 ~]# yum install rabbitmq-server-3.7.8-1.el6.noarch.rpm
## 开机启动rabbitmq-server
[root@slave1 ~]# chkconfig rabbitmq-server on
#启动rabbitMQ服务
[root@slave1 ~]# service rabbitmq-server start
#停止rabbitMQ服务
[root@slave1 ~]# service rabbitmq-server stop
#重启rabbitMQ服务
[root@slave1 ~]# service rabbitmq-server restart
#修改配置文件
[root@slave1 ~]# cd /etc/rabbitmq/
[root@slave1 rabbitmq]# cp /usr/share/doc/rabbitmq-server-3.7.8/rabbitmq.config.example ./
[root@slave1 rabbitmq]# mv rabbitmq.config.example rabbitmq.config
[root@slave1 rabbitmq]# vim rabbitmq.config
[
{rabbit, [{tcp_listeners, [5672]}, {loopback_users, ["test"]}]}
].
#开启Web管理插件,这样我们就可以通过浏览器来进行管理了
[root@slave1 ~]# rabbitmq-plugins enable rabbitmq_management
[root@slave1 ~]# service rabbitmq-server restart
[root@slave1 ~]# vim /etc/rabbitmq/rabbitmq.config
[root@slave1 ~]# service rabbitmq-server restart
##增加rabbitmq ui的登录用户
[root@slave1 ~]# rabbitmqctl add_user test 123456
[root@slave1 ~]# rabbitmqctl set_user_tags test administrator
[root@slave1 ~]# rabbitmqctl set_permissions -p "/" test ".*" ".*" ".*"
[root@slave1 ~]# rabbitmqctl list_users
Listing users
test [administrator]
guest [administrator]
2.2 在macOS中安装rabbitMQ
#使用homebrew安装rabbitMQ,若安装过homebrew可以忽略下面第一句命令
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
$ brew update
$ brew install rabbitmq
#启动命令
$ brew services start rabbitmq
#重启命令
$ brew services restart rabbitmq
#停止命令
$ brew services stop rabbitmq
使用浏览器访问ip:15672(rabbitMQ的UI界面),可使用上面设置的test用户密码进行登录
网友评论