springcloud实战之13 rabbitmq消息总线(bus)
来源:互联网 发布:心理咨询中文网软件 编辑:程序博客网 时间:2024/06/05 01:59
rabbitmq是实现了高级消息队列协议(amqp)的开源消息代理软件,也成为面向消息的中间件。RabbitMQ服务器是用高性能,可伸缩而闻名的Erlang语言编写而成的,其集群和故障转移是构建在开放电信平台框架上的。
RabbitMQ的安装这里不重复说明,可以参考centos7自学之7-rabbitmq的安装与配置,这里介绍spring cloud使用RabbitMQ。
创建工程(springcloud-server-bus-rabbitmq)
添加依赖
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> <relativePath /></parent><dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Edgware.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies></dependencyManagement><dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency></dependencies>
创建入口类
@SpringBootApplicationpublic class SpringCloudServerBusRabbitmq { public static void main(String[] args) { new SpringApplicationBuilder(SpringCloudServerBusRabbitmq.class) .web(true) .run(args) ; }}
创建配置文件
spring: rabbitmq: host: 192.168.175.128 port: 5672 username: admin password: admin application: name: springcloud-server-bus-rabbitmq
创建配置类
@Configurationpublic class RabbitMqConfig { public static final String queueName = "springcloud-server-bus-rabbitmq" ; public Queue rabbitMqQueue(){ return new Queue(queueName); }}
创建生产者
@Componentpublic class Prodecer { private final Logger _logger = LoggerFactory.getLogger(this.getClass()) ; @Autowired private AmqpTemplate rabbitMqTemplate ; public void send(){ String context = "hello" + new Date() ; _logger.info("正在向队列发送消息:{}",context); this.rabbitMqTemplate.convertAndSend(RabbitMqConfig.queueName,context); }}
创建消费者
@Component@RabbitListener(queues = RabbitMqConfig.queueName)public class Consumer { private final Logger _logger = LoggerFactory.getLogger(this.getClass()) ; @RabbitHandler public void consumer(String message){ _logger.info("从队列获取到的消息:{}",message); }}
创建web接口
@Controller@RequestMapping("/api/rest")public class RestfulController { @Autowired Prodecer prodecer ; @GetMapping("/message") public void message(){ prodecer.send(); }}
创建结构图如下
运行项目
启动springcloud-server-bus-rabbitmq。
调用服务:http://localhost:8080/api/rest/message,其效果如下图。
源码
springcloud-server-bus-rabbitmq
历史文章
springcloud实战之1 技术选型:dubbo还是springcloud
springcloud实战之2 服务注册与发现(eureka实现)
springcloud实战之3 高可用服务注册中心(eureka集群)
springcloud实战之5 服务消费者(ribbon)
springcloud实战之6 服务消费者(Feign)
springcloud实战之7 断路器(Hystrix)
springcloud实战之8 断路器-仪表盘-单例监控(Hystrix)
springcloud实战之9断路器-集群监控(turbine)
springcloud实战之10 分布式配置中心(config)
springcloud实战之11路由网关(zuul)
springcloud实战之12 路由网关拦截器
阅读全文
0 0
- springcloud实战之13 rabbitmq消息总线(bus)
- 《SpringCloud微服务实战》学习笔记之消息总线BUS-RabbitMQ
- SpringCloud教程八:消息总线(SpringCloud Bus)
- 10.消息总线(bus+rabbitmq)
- SpringCloud教程 | 第八篇: 消息总线(Spring Cloud Bus)
- 使用kafka作为springcloud bus的消息总线,以及如何自定义总线事件
- SpringCloud消息总线
- 史上最简单的SpringCloud教程 | 第八篇: 消息总线(Spring Cloud Bus)
- 史上最简单的SpringCloud教程 | 第八篇: 消息总线(Spring Cloud Bus)
- 史上最简单的SpringCloud教程 | 第八篇: 消息总线(Spring Cloud Bus)
- 史上最简单的SpringCloud教程 | 第八篇: 消息总线(Spring Cloud Bus)
- 史上最简单的SpringCloud教程 | 第八篇: 消息总线(Spring Cloud Bus)
- 史上最简单的SpringCloud教程 | 第八篇: 消息总线(Spring Cloud Bus)
- 史上最简单的SpringCloud教程 | 第八篇: 消息总线(Spring Cloud Bus)
- 史上最简单的SpringCloud教程 | 第八篇: 消息总线(Spring Cloud Bus)
- 史上最简单的SpringCloud教程 | 第八篇: 消息总线(Spring Cloud Bus)
- Spring Cloud(十一)高可用的分布式配置中心 Spring Cloud Bus 消息总线集成(RabbitMQ)
- Spring cloud-Bus (消息总线)
- 阻塞queue系列之LinkedTransferQueue
- 传参带事务的存储过程
- JAVA默认的get,set方法一个小坑
- Gradle学习(四)——Gradle守护进程
- shell编程排坑之if
- springcloud实战之13 rabbitmq消息总线(bus)
- 关于ionic2 http请求问题
- mac下安装Brew遇到的错误记录 Warning: /usr/local/bin is not in your PATH
- Android打开手机QQ与指定用户聊天界面,打开指定用户的微博页面,打开指定用户的支付宝转账页面
- 阿里这次要“让天下无闲置”,闲鱼推信用速卖
- 《剑指offer》刷题笔记(链表):链表中环的入口结点
- Photon(二)
- Spring boot集成Swagger2,解决页面不显示的问题
- 【机器学习基石】在何时可以使用机器学习(1~4章)