我們spring中提供了事件機制,對於分布式服務來說,我們可以結合訊息中介軟體來實現bus我們來看下**實現:
public
class
refreshtemplate
extends
resttemplate
public
void
refresh
(@notnull string type, object object)
catch
(exception var4)
", var4.
getmessage()
);}}
}
發布事件的服務只需要注入refreshtemplate 後呼叫這個refresh()介面即可
public
class
remoterefreshrouteevent
implements
public
void
refresh
(string refreshtype, string object)
public
void
(remoterefreshevent event)
}public
class
remoterefreshevent
extends
public
remoterefreshevent
(string type, object source, string originservice, string destinationservice)
public string getsourcedata()
public string getrefreshtype()
}
監聽事件的服務繼承remoterefreshrouteevent 即可
public
class
resourcelocator
extends
remoterefreshrouteevent
}
需要加入訊息bus的中介軟體,springcloud 支援kafka和rabbitmq,springcloud alibaba擴充套件支援rokectmq,配置如下:
org.springframework.cloud<
/groupid>
spring-cloud-starter-bus-amqp<
/artifactid>
2.2.1
.release<
/version>
<
/dependency>
server
:port
: $spring::
name
: demo
cloud
:bus:id
:$
原理後續分析
SpringCloud中的gateWay 閘道器
1 api閘道器介紹 2 spring cloud gateway 3 spring cloud gateway核心概念 所有服務,都需要在nacos中註冊服務 包括閘道器 注意版本號 服務註冊nacos org.springframework.cloud groupid spring cloud ...
springcloud中的gateway閘道器
引入依賴 com.atguigu groupid common utils artifactid 0.0.1 snapshot version dependency org.springframework.cloud groupid spring cloud starter alibaba naco...
Spring Cloud中的閘道器
在微服務實施之後,各個服務的拆分粒度很小,對於客戶端來說,做乙個操作可能會涉及到後端的多個服務元件的呼叫,那意味著它需要頻繁的發起多次訪問才能進行資料聚合實現使用者的功能。如果我們在所有的微服務之前增加乙個閘道器,對於客戶端來說它需要做什麼功能操作直接呼叫閘道器並且告訴閘道器所要做的事情即可,閘道器...