新教E区

 楼主| 发表于 2019-1-29 14:09:14 | 显示全部楼层 |阅读模式
在使用spring cloud云架构的时候,我们不得不使用Spring cloud Stream,因为消息中间件的使用在项目中无处不在,我们公司后面做了娱乐方面的APP,在使用spring cloud做架构的时候,其中消息的异步通知,业务的异步处理都需要使用消息中间件机制。spring cloud的官方给出的集成建议(使用rabbit mq和kafka),我看了一下源码和配置,只要把rabbit mq集成,kafka只是换了一个pom配置jar包而已,闲话少说,我们就直接进入配置实施:
1. 简介:
Spring cloud Stream 数据流操作开发包,封装了与Redis,Rabbit、Kafka等发送接收消息。
2. 使用工具:
rabbit,具体的下载和安装细节我这里不做太多讲解,网上的实例太多了
3. 创建commonservice-mq-producer消息的发送者项目,在pom里面配置stream-rabbit的依赖
<span style="font-size: 16px;"><!-- 引入MQ消息驱动的微服务包,引入stream只需要进行配置化即可,是对rabbit、kafka很好的封装 -->  <dependency>      <groupId>org.springframework.cloud</groupId>      <artifactId>spring-cloud-starter-stream-rabbit</artifactId>  </dependency></span>  
4. 在yml文件里面配置rabbit mq
[url=][/url]
<span style="font-size: 16px;">server:    port: 5666  spring:    application:      name: commonservice-mq-producer    profiles:       active: dev    cloud:      config:        discovery:           enabled: true          service-id: commonservice-config-server    <span style="color: #ff0000;"># rabbitmq和kafka都有相关配置的默认值,如果修改,可以再次进行配置      stream:        bindings:          mqScoreOutput:             destination: honghu_exchange            contentType: application/json                rabbitmq:       host: localhost       port: 5672       username: honghu       password: honghu</span>  eureka:     client:      service-url:        defaultZone: http://honghu:123456@localhost:8761/eureka    instance:      prefer-ip-address: true</span>  [url=][/url]

5. 定义接口ProducerService
[url=][/url]
<span style="font-size: 16px;">package com.honghu.cloud.producer;    import org.springframework.cloud.stream.annotation.Output;  import org.springframework.messaging.SubscribableChannel;    public interface ProducerService {            String SCORE_OUPUT = "mqScoreOutput";            @Output(ProducerService.SCORE_OUPUT)      SubscribableChannel sendMessage();  }</span>  [url=][/url]

6. 定义绑定
[url=][/url]
<span style="font-size: 16px;">package com.honghu.cloud.producer;    import org.springframework.cloud.stream.annotation.EnableBinding;    @EnableBinding(ProducerService.class)  public class SendServerConfig {    }</span>  [url=][/url]

Spring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台源码请加企鹅求求:一零三八七七四六二六

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|手机版|Archiver|新教e区 ( 鲁ICP备16007390号-1 )

GMT+8, 2019-2-19 09:20 , Processed in 0.078125 second(s), 18 queries , Gzip On.

新教E区

© 2006-2014 新教E区

快速回复 返回顶部 返回列表