在微服务架构的系统中, 我们通常会使用轻量级的消息代理来构建 一 个共用的消息主题让系统中所有微服务实例都连接上来, 由于该主题中产生的消息会被所有实例监听和消费, 所以我们称它为消息总线。 在总线上的各个实例都可以方便地广播 一 些需要让其他连接在该主题上的实例都知道的消息, 例如配置信息的变更或者其他 一 些管理操作等
1 RabbitMQ实现消息总线
1.1 ubantu中安装RabbitMQ
1.1.1 安装Erlang:
sudo apt-get install erlang
1.1.2 新增APT仓库到/etc/apt/sources.list.d:
echo'deb http://www.rabbitmq.com/debian/ testing main' I sudo tee /etc/apt/sources.list.d/rabbitmq.list
1.1.3 更新APT仓库的packagelist:
sudo apt-get update
1.1.4 安装Rabbit Server:
sudo apt-get install rabbitmq-server
1.1.5 通过Web进行管理:
rabbitmq-plugins enable rabbitmq management
1.1.6 访问http: //localhost: 15672/,使用默认帐号密码guest登录并创建一个名为springcloud,tags为administrator的用户
2 SpringBoot整合RabbitMQ
2.1 创建一个springboot工程命名为rabbitmq-hello并引入amqp依赖
Screenshot from 2018-02-26 21-57-07.png
2.2 配置application.yml文件
Screenshot from 2018-02-26 22-36-27.png
2.3 创建消息生产者 Sender 。 通过注入 AmqpTemplate 接口的实例来实现消息的发一送AmqpTemplate 接口定义了 套针对 AMQP 协议的基础操作。在 Spring Boot中会根据配置来注入其具体实现。 在该生产者中, 我们会产生 一 个字符串, 并发送到名为 hello 的队列中
Screenshot from 2018-02-26 22-08-06.png
2.4 创建消息消费者 Receiver 。 通过 @Rabb辽归江ener 注解定义该类对 hello 队列的监听, 并用 @Rabb江Handler 注解来指定对消息的处理方法。 所以, 该消费者实现了对 hello 队列的消费, 消费操作为输出消息的字符串内容
Screenshot from 2018-02-26 22-13-53.png
2.5 创建 RabbitMQ 的配置类 Rabb江Config, 用来配置队列、 交换器、 路由等高级信息。 这里我们以入门为主, 先以最小化的配置来定义, 以完成 一 个基本的生产和消费过程
Screenshot from 2018-02-26 22-19-15.png
2.6 创建单元测试类, 用来调用消息生产
Screenshot from 2018-02-26 22-22-43.png
2.7 启动工程访问rabbitmq的web管理页面
Screenshot from 2018-02-26 22-34-51.png
2.8 运行单元测试
Screenshot from 2018-02-26 22-42-43.png
网友评论