springcloud實戰之13 rabbitmq訊息匯流排(bus)
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>
建立入口類
@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。
原始碼
歷史文章
相關推薦
springcloud實戰之13 rabbitmq訊息匯流排(bus)
rabbitmq是實現了高階訊息佇列協議(amqp)的開源訊息代理軟體,也成為面向訊息的中介軟體。RabbitMQ伺服器是用高效能,可伸縮而聞名的Erlang語言編寫而成的,其叢集和故障轉移是構建在開放電信平臺框架上的。 RabbitMQ的安裝這裡不重複說明,
springcloud實戰之9 斷路器-叢集監控(turbine)
上一篇介紹了單例的服務監控,本章介紹對叢集的監控。通過引入turbine,通過它來彙集監控資訊,並將聚合後的資訊提供給Hystrix Dashboard來集中展示和監控。 其工作架構圖如下: 構建springcloud-hystrix-turbine
spring cloud 中訊息匯流排(bus)使用
訊息系統 說到訊息系統大家耳熟能詳的幾個一般來說都有各自適用的場景,我們這裡簡單說一下幾個常見的訊息系統。 ActiveMQ是比較老牌的訊息系統,當然了不一定是大家第一個熟知的訊息系統,因為現在電商、網際網路規模越來越大,不斷進入程式設計師眼簾的大多是K
Qt實戰之開發CSDN下載助手 (1)
助手 track 下載 賬戶 content 多線程下載 功能 博客 style 這次實戰,我們須要開發一款CSDN下載助手。它具備下面功能: 1) . 可以正常登錄CSDN賬戶 2) . 可以依據用戶提供的資源下載頁面地址解析出真實地址 ( 當然啦。 你的賬號積分
【轉載】Vue 2.x 實戰之後臺管理系統開發(二)
null element asc 其他 就會 ans 目錄 asi all 2. 常見需求 01. 父子組件通信 a. 父 -> 子(父組件傳遞數據給子組件) 使用 props,具體查看文檔 - 使用 Prop 傳遞數據(cn.vuejs.org/v2/guide
Spring Cloud Bus(訊息匯流排)(1)
訊息代理 訊息代理是一種訊息驗證、傳輸、路由的架構模式。它在應用程式之間起到通訊排程並最小化應用之間的依賴作用,使得應用程式可以高效地解耦通訊過程。訊息代理是一箇中間件產品,它的核心是一個訊息的路由程式,用來實現接受和分發訊息,並根據設定好的訊息處理流來轉發給正確的應用。它包括獨立的通訊和訊
安卓專案實戰之CoordinatorLayout實現頁面特效(一)
效果圖如下: material design控制元件簡介: 轉載自:https://blog.csdn.net/gitzzp/article/details/52573068 CoordinatorLayout CoordinatorLayout:協調者佈局。它是support
安卓專案實戰之Glide 3高手養成(三):Glide的回撥與監聽
前言 通過前面兩篇的講解,我們對於Glide的一些使用都有了基本瞭解,知道了使用Glide載入圖片只需要一行程式碼即可: Glide.with(this).load(url).into(imageView); 而在這一行程式碼的背後,Glide幫我們執行了成千上萬行的邏輯。
安卓專案實戰之Glide 3高手養成(二):Glide強大的圖片變換功能
使用Glide時普遍會遇到的一個問題,如何解決? 首先我們嘗試使用Glide來載入一張圖片,圖片URL地址是:https://www.baidu.com/img/bd_logo1.png 這是百度首頁logo的一張圖片,圖片尺寸是540*258畫素。 接下來我們編寫一個非常簡單的佈局檔案
安卓專案實戰之Glide 3高手養成(一):Glide的基本使用
前言 現在Android上的圖片載入框架非常成熟,從最早的老牌圖片載入框架UniversalImageLoader,到後來Google推出的Volley,再到後來的新興軍Glide和Picasso,當然還有Facebook的Fresco。每一個都非常穩定,功能也都十分強大。但是它們的使用
RabbitMQ訊息佇列(二):”Hello, World“
原文地址:http://blog.csdn.net/anzhsoft/article/details/19570187 本文將使用Python(pika 0.9.8)實現從Producer到Consumer傳遞資料”Hello, World“。 首先複習一下上篇所學:RabbitMQ實現
RabbitMQ訊息佇列(一): Detailed Introduction 詳細介紹
原文地址:http://blog.csdn.net/anzhsoft/article/details/19563091 1. 歷史 RabbitMQ是一個由erlang開發的AMQP(Advanced Message Queue )的開源實現。AMQP 的
RabbitMQ訊息佇列(九):Publisher的訊息確認機制
在前面的文章中提到了queue和consumer之間的訊息確認機制:通過設定ack。那麼Publisher能不到知道他post的Message有沒有到達queue,甚至更近一步,是否被某個
基於Python語言使用RabbitMQ訊息佇列(三)
釋出/訂閱 前面的教程中我們已經建立了一個工作佇列。在一個工作佇列背後的假設是每個任務恰好會傳遞給一個工人。在這一部分裡我們會做一些完全不同的東西——我們會發送訊息給多個消費者。這就是所謂的“釋出/訂閱”模式。 為了解釋這種模式,我們將會構建一個簡單的日誌系
RabbitMQ訊息佇列(二) fanout 廣播模式
先粘程式碼 生產者 ConnectionFactory connectionFactory = new ConnectionFactory(); Connection connection = connectionFa
OpenStack設計與實現(四)訊息匯流排(AMQP)
在西方有一句諺語,叫做“Don’t Reinvent the Wheel!”。直譯過來就是不要在重新發明輪子了。也就是說我們應該避免做一些重複性的工作,如果一個東西別人已經做過了,那麼我們拿來直接用就行了,沒有必要重新制作,這一點在軟體開發裡尤為突出。所以在Op
訊息匯流排(MQ)知多少
1 什麼時候用MQ? 1.1 MQ的基本概念 訊息匯流排(Message Queue,MQ),是一種跨程序的通訊機制,用於在上下游之間傳遞訊息。MQ是一種常見的上下游“邏輯解耦+物理解耦”的訊息通訊服務,訊息傳送上游只需要依賴MQ,邏輯上和物理上都不
C++實戰之OpenCL矩陣相乘優化(二)
前言 上一篇文章,分析了簡單的矩陣相乘在opencl裡面的優化kernel程式碼,每個work-item只負責計算結果矩陣的一個元素。下一步準備每次計算出結果矩陣的塊元素,看看計算時間是如何。 具體分析 這裡引入opencl記憶體的概念: 比較常
基於Python語言使用RabbitMQ訊息佇列(二)
工作佇列 在第一節我們寫了程式來向命名佇列傳送和接收訊息 。在本節我們會建立一個工作佇列(Work Queue)用來在多個工人(worker)中分發時間消耗型任務(time-consuming tasks)。 工作佇列(又叫做: Task Queues)背後
Vue 2.x 實戰之後臺管理系統開發(一)
1. 導語 該文章將從頭到尾梳理我是如何使用 Vue 2 開發一個後臺管理專案的,我會將自己遇到的問題貼出,希望可以幫助到其他人。 2. 開發前須知 我的後臺管理系統專案運用瞭如下框架/外掛: Vue 2.x —— 專案所使用的 js 框架