kkbida 消息通知系统 项目简介
kkbida(必达) 消息通知使用场景解决异构系统间消息通知时保证消息必达,常见于系统回调,消息异步通知等场景,提供了失败重试,错误通知,最终手动补偿,web端管理等功能。系统架构项目采用spring boot构建,使用spring session redis分布式session,支持分布式多机部署。通过阻塞队列来抗并发,通过延迟队列来处理失败的消息,并辅以控制台手动处理消息来保证消息最终送达。在使用方面,考虑到最小化改造和易用性,提供dubbo和http的sdk客户端。当消息重试最大次数失败后,可设置webhook通知到钉钉等通讯平台上及时处理。架构拓扑SDK使用方法maven引入sdk<dependency>
<groupId>cn.keking.callcenter</groupId>
<artifactId>kk-callcenter-sdk</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>获取CallBackService对象dubbo方式@Reference(version = "1.0")
private CallBackService callBackService;http方式推荐获取方式如下(也可以直接new) ps:如果通过http客户端sdk调用,需要先申请配置白名单@Value("${callBack.BaseUrl}")
private String callBackBaseUrl; //回调中心http调用url
@Value("${callBack.UserName}")
private String callBackUserName; //回调中心帐号
@Value("${callBack.PassWord}")
private String callBackPassWord; //回调中心密码
@Bean
public CallBackService callBackService(){
CallBackServiceHttpImpl callBackServiceHttp = new CallBackServiceHttpImpl(callBackBaseUrl,callBackUserName,callBackPassWord);
return callBackServiceHttp;
}
@Autowired
private CallBackService callBackService;
<groupId>cn.keking.callcenter</groupId>
<artifactId>kk-callcenter-sdk</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>获取CallBackService对象dubbo方式@Reference(version = "1.0")
private CallBackService callBackService;http方式推荐获取方式如下(也可以直接new) ps:如果通过http客户端sdk调用,需要先申请配置白名单@Value("${callBack.BaseUrl}")
private String callBackBaseUrl; //回调中心http调用url
@Value("${callBack.UserName}")
private String callBackUserName; //回调中心帐号
@Value("${callBack.PassWord}")
private String callBackPassWord; //回调中心密码
@Bean
public CallBackService callBackService(){
CallBackServiceHttpImpl callBackServiceHttp = new CallBackServiceHttpImpl(callBackBaseUrl,callBackUserName,callBackPassWord);
return callBackServiceHttp;
}
@Autowired
private CallBackService callBackService;