项目描述:
该系统为公司客服的即时通讯系统,用于客服与用户实时聊天,解答用户问题。
系统采用Netty提供的websocket保持客户端与服务器的长连接,进行消息传输;
使用Kafka来解耦gateway应用与message应用,并进行消息的流量削峰;
Gateway应用负责websocket链接的建立和客户端与服务器消息的传输和投递;
Message应用负责存储消息并使用路由匹配的结果封装消息;
项目职责:
1. 路由功能设计和开发,包括轮询、最闲坐席优先、最小接待量坐席优先、最高优先级坐席优先等路由策略;最闲坐席优先使用Redis的sorted set实现,最小接待量坐席优先使用treeMap实现,使用数据库乐观锁实现客服会话数的并发控制;
2. 路由排队功能设计和开发,使用redis list实现,对list中排队用户的更新使用redis分布式锁控制,并支持客户离线排队;
3. 开发基于redis的分布式锁功能,并推广到其他项目组;
4. 开发自动加密解密公共组件(Mybatis拦截器+注解实现),对用户敏感数据(如手机号、银行卡号等)进行自动加解密;
5. 开发HttpInv