springcloud实战之13 rabbitmq消息总线(bus)
2017-12-21 16:03
731 查看
rabbitmq是实现了高级消息队列协议(amqp)的开源消息代理软件,也成为面向消息的中间件。RabbitMQ服务器是用高性能,可伸缩而闻名的Erlang语言编写而成的,其集群和故障转移是构建在开放电信平台框架上的。
RabbitMQ的安装这里不重复说明,可以参考centos7自学之7-rabbitmq的安装与配置,这里介绍spring cloud使用RabbitMQ。
调用服务:http://localhost:8080/api/rest/message,其效果如下图。
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 路由网关拦截器
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>
创建入口类
@SpringBootApplication public 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
创建配置类
@Configuration public class RabbitMqConfig { public static final String queueName = "springcloud-server-bus-rabbitmq" ; public Queue rabbitMqQueue(){ return new Queue(queueName); } }
创建生产者
@Component public 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还是springcloudspringcloud实战之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 路由网关拦截器
相关文章推荐
- SpringCloud微服务实战之消息总线BUS-RabbitMQ
- Spring Cloud(十一)高可用的分布式配置中心 Spring Cloud Bus 消息总线集成(RabbitMQ)
- Spring Cloud(十一)高可用的分布式配置中心 Spring Cloud Bus 消息总线集成(RabbitMQ)
- Spring Cloud 入门教程(十):和RabbitMQ的整合 -- 消息总线Spring Cloud Netflix Bus
- 第八篇: 消息总线(Spring Cloud Bus)
- 史上最简单的SpringCloud教程 | 第八篇: 消息总线(Spring Cloud Bus)
- 第八篇: 消息总线(Spring Cloud Bus)
- SpringCloud教程八:消息总线(SpringCloud Bus)
- SpringCloud之消息总线Spring Cloud Bus实例
- Spring cloud-Bus (消息总线)
- 第八篇: 消息总线(Spring Cloud Bus)
- 史上最简单的SpringCloud教程 | 第八篇: 消息总线(Spring Cloud Bus)
- 史上最简单的SpringCloud教程 | 第八篇: 消息总线(Spring Cloud Bus)
- 第八篇: 消息总线(Spring Cloud Bus)
- 第八篇: 消息总线(Spring Cloud Bus)
- 第八篇: 消息总线(Spring Cloud Bus)
- Spring Cloud Bus 消息总线集成Kafka
- 第八篇: 消息总线(Spring Cloud Bus)
- SpringCloud之消息总线(Spring Cloud Bus)(八)
- SpringCloud | 消息总线 bus(十)