1. 程式人生 > >系列7-springCloud微服務-服務匯流排Bus

系列7-springCloud微服務-服務匯流排Bus

1.服務端搭建步驟1:新建【springCloud-bus】修改pom檔案,新增如下內容:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bus-amqp</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId>
</dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId>
</dependency> <dependency> <groupId>com.ultrapower</groupId> <artifactId>springCloud-security</artifactId> </dependency>
步驟2:新增【springCloud-bus】application.yml檔案,並新增如下內容:
server: port: 8300spring: application: name: springCloud-config #配置中心的應用名稱
cloud: config: server: git: uri: [email protected]:springCloudConfig.git #遠端git的地址 #username: yourname #遠端git認證的賬號 #password: yourpass #遠端git認證的密碼 (此處在我的電腦上已經進行過ssh配置,所有我並未設定) rabbitmq: #訊息中介軟體連線資訊 host: localhost port: 5672 username: guest password: guesteureka: client: serviceUrl: defaultZone: http://ejava:[email protected]:8000/eureka/
注意此處的框架搭建是以註冊中心作為叢集中心的模式搭建的,所以需要註冊到Eureka中步驟3:新增【springCloud-bus】啟動類
@SpringBootApplication@EnableConfigServer@EnableEurekaClientpublic class ConfigApplication { public static void main(String[] args) { SpringApplication.run(ConfigApplication.class, args); }}
步驟4:修改【springCloud-security】修改如下標紅位置,角色需要設定為“ACTUATOR”,http的請求中需要設定對CSRF的禁用。
@Configuration@EnableWebSecuritypublic class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Resource public void configGlobal(AuthenticationManagerBuilder auth) throws Exception { //設定所有微服務的認證賬戶密碼 auth.inMemoryAuthentication().withUser("java").password("hello") .roles("ACTUATOR"); } @Override public void configure(WebSecurity web) throws Exception { //設定可放行服務,對監控程式放行 web.ignoring().antMatchers("/hystrix.stream","turbine.stream"); } @Override protected void configure(HttpSecurity http) throws Exception { // 表示所有的訪問都必須進行認證處理後才可以正常進行 http.httpBasic().and().authorizeRequests().anyRequest() .fullyAuthenticated().and().csrf().disable(); // 所有的Rest服務一定要設定為無狀態,以提升操作效能 http.sessionManagement() .sessionCreationPolicy(SessionCreationPolicy.STATELESS); }}
步驟5:啟動Eureka,springCloud-bus測試是否能正常啟動,是否註冊到註冊中心。檢查地址:2.客戶端呼叫步驟1:新建客戶端【springCloud-bus-client】修改pom檔案,新增如下內容:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bus-amqp</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>com.ultrapower</groupId> <artifactId>springCloud-security</artifactId> </dependency>
步驟2:修改【springCloud-bus-client】的application.yml檔案,新增如下內容:
spring: application: name: springCloud-configClient-service
步驟3:【springCloud-bus-client】新增bootstrap.yml配置檔案,新增如下內容:
server: port: 8803spring: cloud: config: name: springCloud #讀取配置檔案的檔名字 profile: dev #讀取配置檔案的段 #uri: http://localhost:8888/ #配置中心的地址,此處如果是負載均衡,需要用“,”分隔 username: java #如果配置中心設定了安全認證,在此處設定認證賬號 password: hello #如果配置中心設定了安全認證,在此處設定認證密碼 discovery: enabled: true service-id: springCloud-config rabbitmq: #訊息中介軟體連線資訊 host: localhost port: 5672 username: guest password: guesteureka: client: serviceUrl: defaultZone: http://ejava:[email protected]:8000/eureka/
步驟4:【springCloud-bus-client】新建InfoRest類,注意新增@RefreshScope,該註解是使用bus重新整理配置的關鍵:
@Component //掃描@RefreshScope //重新整理public class InfoRest { @Value("${info.app.name}") private String appname; @Value("${info.app.version}") private String appverion; /** * @return the appname */ public String getAppname() { return appname; } /** * @return the appverion */ public String getAppverion() { return appverion; }}
步驟5:【springCloud-bus-client】新建restController,列印讀取到的資訊
@RestControllerpublic class UltraServiceController { @Resource InfoRest info; @RequestMapping("/get") public Object getSessionId() { return "獲取到的引用名稱:"+info.getAppname()+",獲取到的版本:"+info.getAppverion(); }}
步驟6:【springCloud-bus-client】新建啟動類
@SpringBootApplication@EnableEurekaClientpublic class UtralServiceApplication { public static void main(String[] args) { SpringApplication.run(UtralServiceApplication.class, args); }}
步驟7:啟動各個服務,進行驗證:修改git上的配置檔案並上傳到git伺服器上,通過curl命令進行bus的重新整理,命令如下:
curl -X POST http://java:[email protected]:8300/bus/refresh
windows下執行curl命令需要藉助於外掛,關於此外掛請自行下載。

相關推薦

系列7-springCloud服務-服務匯流排Bus

1.服務端搭建步驟1:新建【springCloud-bus】修改pom檔案,新增如下內容:<dependency> <groupId>org.springframework.cloud</groupId> <artifactI

系列6-springCloud服務-config配置中心

config配置中心分為服務端和客戶端,服務端根據檔案儲存位置分為三種設定方式:git\githupSVN本地儲存其中git\githup,SVN的設定方式基本一樣。此處僅記錄git的設定,githup與git的設定完全一樣。1.config Server基於git步驟1:本

系列4-springCloud服務-Hystrix熔斷器

1.新增服務端的熔斷器步驟1:修改服務端pom檔案,新增對Hystrix元件的引用。<dependency> <groupId>org.springframework.cloud</groupId> <artifactId&g

系列5-springCloud服務--zuul代理實現

1.zuul代理服務配置步驟1:新建zuul服務模組,修改pom檔案,新增如下依賴:<dependency> <groupId>org.springframework.cloud</groupId> <artifactId&g

SpringCloud系列第09節之訊息匯流排Bus

其中提到,每次熱載入屬性時,都要逐次呼叫每個應用的 /refresh 介面(或者維護 Git 倉庫的 Webhooks)來觸發屬性更新 隨著系統的擴充,應用的增加,若所有的觸發動作都要手工去做(或者維護 Git 倉庫的 Webhooks),這是不人道的 所以我們希望配

關於SpringCloud服務雲架構構建B2B2C電子商務平臺之-(八)訊息匯流排(Spring Cloud Bus)

  Spring Cloud Bus 將分散式的節點用輕量的訊息代理連線起來。它可以用於廣播配置檔案的更改或者服務之間的通訊,也可以用於監控。本文要講述的是用Spring Cloud Bus實現通知微服務架構的配置檔案的更改。 一、準備工作本文還是基於上一篇文章來實現。按照官方文件,我們只需要在

SpringCloud服務雲架構構建B2B2C電子商務平臺之-(八)訊息匯流排(Spring Cloud Bus)

Spring Cloud Bus 將分散式的節點用輕量的訊息代理連線起來。它可以用於廣播配置檔案的更改或者服務之間的通訊,也可以用於監控。本文要講述的是用Spring Cloud Bus實現通知微服務架構的配置檔案的更改。 一、準備工作 本文還是基於上一篇文章來實現。按照官方文件,我們只需要在配

從零開始,輕松搞定SpringCloud服務系列

markdown class net 配置中心 html div .html href .com 本系列博文目錄 【微服務】之一:從零開始,輕松搞定SpringCloud微服務系列–開山篇(spring boot 小demo) 【微服務】之二:從零開始,輕松搞定Spring

springcloud服務系列——服務網關組件Zuul

extends version iter tput tar lte aps 新工程 err 前言 通過前幾篇教程的介紹,我們基本上認識了構建一個微服務系統所需要的組件,通過這些組件的結合,我們已經可以搭建一個較為簡略的微服務系統了,比如下面的架構圖: https://im

springcloud服務系列服務註冊與發現組件Eureka

顯示 功能 depend mod 其他 瀏覽器 使用 空間 之間 一、Eurake的簡介二、使用Eureka進行服務的註冊消費1、創建一個服務註冊中心2、創建服務的提供者3、創建服務的消費者總結 一、Eurake的簡介 今天我們來介紹下springcloud的核心組件Eur

java複習筆記2--SpringCloud系列一:服務啟動原理探索

微服務架構的趨勢 隨著資料量的不斷增大,大資料時代的到來,網際網路技術的不斷髮展和變革,微服務架構和雲服務平臺以及大資料成為了時下最熱門的話題。現在,比較流行的微服務框架也有很多, 比如阿里的Dubbo,基於soringBoot的SpringCloud,Apac

java複習筆記3--SpringCloud系列一:服務啟動原理探之beanFactory載入

昨天,我們對SpringApplication的初始化以及SpringApplication.run方法中的部分程式碼進行了解讀和追蹤。這一塊的重點就是Spring的 SPI,META-INF/spring.factories檔案的格式以及載入機制。一定要花時間

java複習筆記3--SpringCloud系列一:服務啟動原理探索之beanFactory載入

昨天,我們對SpringApplication的初始化以及SpringApplication.run方法中的部分程式碼進行了解讀和追蹤。這一塊的重點就是Spring的 SPI,META-INF/spring.factories檔案的格式以及載入機制。一定要花時間

springCloud服務系列——actuator

目錄 一、簡介 三、配置   許可權配置  一、簡介              spring boot提供了一系列的監控指標,可以通過actuator進行引入。spring boot 2.x在此基礎上引入了promethe

springCloud服務系列——配置中心第五篇——自動重新整理

目錄 一、簡介 一、簡介             上一篇文章總結了手動重新整理,我們希望在配置檔案被提交到伺服器以後能自動觸發重新整理,讓所有的客戶端獲得最新的配置資訊。這裡提供一個使用github管理配置檔案,進行自動重新整理的解決方案。 二、github we

從壹開始服務 [ DDD ] 之十 ║領域驅動【實戰篇·中】:命令匯流排Bus分發(一)

烽火 哈嘍大家好,老張又見面了,這兩天被各個平臺的“雞湯貼”差點亂了心神,部落格園如此,簡書亦如此,還好群裡小夥伴及時提醒,路還很長,這些小事兒就隨風而去吧,這周本不打算更了,但是被群裡小夥伴“催稿”了,至少也是對我的一個肯定吧,又開始熬夜中,請@初久小夥伴留言,我不知道你的地址,就不放連結了。 收住,言

springCloud服務系列——OAuth2+JWT——spring-security4升級到spring-security5

目錄 一、簡介 二、問題 一、簡介         spring boot2和spring cloud Finchley版本使用的是spring-security5,在升級的過程中OAuth2+JWT遇到一些問題,這裡記錄一下。環境如下:         s

springCloud服務系列——分散式日誌採集

目錄 一、簡介 二、思路     屬性注入 示例程式碼 一、簡介        分散式應用必須有一套日誌採集功能,目的是將分佈在各個伺服器節點上的應用日誌檔案採集到統一的伺服器上,方便日誌的檢視。springCloud本身提供了基於elk的日誌

springCloud服務系列——註冊中心——新增認證功能

簡介        註冊中心介面新增使用者名稱密碼才能訪問 服務端        引入spring-security <dependency> <groupId>org.springframework.boot</groupId&

SpringCloud服務系列(3): 為已有的Eureka Server增加高可用HA

SpringCloud微服務系列(3): 為已有的Eureka Server增加高可用HA 摘要:在本系列的前兩篇先後建立了一個Eureka微服務註冊中心和一個hello服務,該服務註冊到了Eureka Server。但一個註冊中心會存在單點故障,如果服務註冊中心掛了,系統就找不到服務。本文為註冊中心增加