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;
评论