这里讨论的是怎么使用RabbitMQ及SpringCloud的集成。
一般开发情况下,我们都是在本地启动一个RabbitMQ Server,然后开发测试。这时默认访问的是 localhost
,而RabbitMQ的vhost则是/
,用户是guest
,开发的时候没什么问题。
但是在部署的时候RabbitMQ Server通常是部署在独立的服务器上,这时默认的guest
的是不具备连接RabbitMQ Server的权限的,所以这时需要对RabbitMQ Server和应用进行配置,以使它们可以连接。
一、配置RabbitMQ Server
首先我们是在Ubuntu上安装的RabbitMQ,先修改/etc/rabbitmq/rabbitmq-env.conf
文件:
# 节点名称NODENAME=rabbit# 监听地址 - 这样就可以让所有内网用户访问他了。NODE_IP_ADDRESS=0.0.0.0# 监听端口NODE_PORT=5672
添加用户,用户使用该用户信息连接服务器。
$ sudo rabbitmqctl add_user kut 123456
这里添加了用户kut
,密码是123456
添加vhost
,vhost
是名称空间,用于区分不同的应用,这里我们添加名为/noshery
的vhost
:
$ sudo rabbitmqctl add_vhost /noshery
为用户kut
添加在/noshery
vhost的访问权限(所有资源的配置、写、读权限):
$ sudo rabbitmqctl set_permissions -p /itacasa kut '.*' '.*' '.*'
然后是重启RabbitMQ Server:
$ sudo service rabbitmq-server restart
二、配置 Spring Cloud 应用
在application.yml
或者配置服务中相对应的文件添加下列代码:
spring: rabbitmq: host: 192.168.1.115 username: kut password: 123456 virtual-host: /noshery
打完收工