kkbida消息通知系統(tǒng)
kkbida(必達(dá)) 消息通知
使用場景
解決異構(gòu)系統(tǒng)間消息通知時(shí)保證消息必達(dá),常見于系統(tǒng)回調(diào),消息異步通知等場景,提供了失敗重試,錯(cuò)誤通知,最終手動(dòng)補(bǔ)償,web端管理等功能。
系統(tǒng)架構(gòu)
項(xiàng)目采用spring boot構(gòu)建,使用spring session redis分布式session,支持分布式多機(jī)部署。通過阻塞隊(duì)列來抗并發(fā),通過延遲隊(duì)列來處理失敗的消息,并輔以控制臺(tái)手動(dòng)處理消息來保證消息最終送達(dá)。在使用方面,考慮到最小化改造和易用性,提供dubbo和http的sdk客戶端。當(dāng)消息重試最大次數(shù)失敗后,可設(shè)置webhook通知到釘釘?shù)韧ㄓ嵠脚_(tái)上及時(shí)處理。
架構(gòu)拓?fù)?/h2>
SDK使用方法
maven引入sdk
<dependency>
<groupId>cn.keking.callcenter</groupId>
<artifactId>kk-callcenter-sdk</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
獲取CallBackService對(duì)象
dubbo方式
@Reference(version = "1.0")
private CallBackService callBackService;
http方式
推薦獲取方式如下(也可以直接new) ps:如果通過http客戶端sdk調(diào)用,需要先申請(qǐng)配置白名單
@Value("${callBack.BaseUrl}")
private String callBackBaseUrl; //回調(diào)中心http調(diào)用url
@Value("${callBack.UserName}")
private String callBackUserName; //回調(diào)中心帳號(hào)
@Value("${callBack.PassWord}")
private String callBackPassWord; //回調(diào)中心密碼
@Bean
public CallBackService callBackService(){
CallBackServiceHttpImpl callBackServiceHttp = new CallBackServiceHttpImpl(callBackBaseUrl,callBackUserName,callBackPassWord);
return callBackServiceHttp;
}
@Autowired
private CallBackService callBackService;評(píng)論
圖片
表情
