springcloud-eureka叢集-整合Rabbit訊息中介軟體
阿新 • • 發佈:2019-02-06
一、配置好rabbitmq伺服器
二、編寫訊息傳送者
新增依賴pom.xml
<!-- 訊息驅動 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-stream-rabbit</artifactId> </dependency>
修改配置application.yml
server: port: 8088 spring: application: name: tms-send rabbitmq:host: 192.168.1.109 port: 5672 username: rabbit-username password: rabbit-password
啟動類 TmsSendApplication.java
@SpringBootApplication@EnableEurekaClient@EnableBinding(RabbitSendService.class) public class TmsSendApplication { public static void main(String[] args) { SpringApplication.run(TmsSendApplication.class, args); } }
編寫傳送介面
public interface RabbitSendService { @Output(value = "myInput") SubscribableChannel sendMsg() throws Exception; }
編寫controller
@RestController public class TestController { @Autowired private RabbitSendService rabbitService; @GetMapping(value = "/sendMsg") public String sendMsg() throws Exception { Message message = MessageBuilder.withPayload("Hello World".getBytes()).build(); rabbitService.sendMsg().send(message); return "success"; } }
三、編寫訊息接受者
新增依賴pom.xml
<!-- 訊息驅動 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-stream-rabbit</artifactId> </dependency>
修改配置application.yml
server: port: 8088 spring: application: name: tms-send rabbitmq: host: 192.168.1.109 port: 5672 username: rabbit-username password: rabbit-password
啟動類 TmsSendApplication.java
@SpringBootApplication@EnableEurekaClient@EnableBinding(RabbitReceiveService.class) public class TmsReceiveApplication { public static void main(String[] args) { SpringApplication.run(TmsReceiveApplication.class, args); } }
編寫訊息監聽
@Component public class RabbitReceiveListener { @StreamListener(value = "myInput") public void onReceive(byte[] msg){ System.out.println(new String(msg)); } }
編寫訊息介面
public interface RabbitReceiveService { @Input(value = "myInput") SubscribableChannel inputMsg() throws Exception; }
四、啟動eureka註冊中心,啟動訊息傳送者與訊息接收者
訪問介面 http://127.0.0.1:8088/sendMsg
訊息接收者的的監聽器獲取到的訊息
Hello World