1.背景描述及市场需求:
本产品,是一个公司内部的沟通平台,有效的组织沟通制度,能够标准组织沟通规则,增强全方位的组织沟通频次与途径。同时,通过对沟通中不良行为的约束,促进职工行为的一致性,提高组织沟通效率与效果。
2.应用范围:
本系统主要应用在ERP系统和比一比系统。其中ERP系统包括首页和其他九个子系统。主要分两步走,首先实现在ERP系统中的应用,然后实现在比一比系统中的应用。
3.本方案技术路线及优点:
技术路线:
1)充分了解需求,搭建简单的集中式应用,在这个基础上证明离线消息和即时通信等关键技术的可行性。
2)将集中式应用分解为分布式应用,实现服务治理、gateway网关等功能。
3)设计表结构和接口,同时前端的开发工作也同步进行,并与后端进行联调联试。
4)解决分布式环境下websocket session共享、负载均衡、分布式缓存等问题。
5)与ERP系统集成。系统测试、性能测试和缺陷修复等。试运行。
优点:
采用分步骤实现架构设计的思路,使得实现阶段尽量提前,减轻了项目进度上的压力,并且便于在研发过程中随时调整设计思路和实现方法。
4.项目需要解决的关键技术问题/难关:
1)离线消息的存储与自动推送。采用水平分表和分区表技术减轻对单表查询的压力。
2)分布式环境下websocket session共享问题。使用redis的发布订阅模式,实现websocket session在分布式环境下的共享问题。
3)面对接口的表结构设计和反范式设计,从而尽量避免复杂的多表连接和查询嵌套出现。
4)图片和文件的发送、存储和推送。搭建图片服务器/件服务器,实现对图片和文件的分布式存储和查询处理。
5)缓存服务器中数据结构的设计。搭建redis集群,由三个节点组成,从而实现只读数据的快速检索。
6)搭建MySQL集群,实现对数据库读写请求的分流,同时多个节点之间使用binlog实现数据同步。当并发量持续增加时,可以通过水平扩展方式减轻单个服务器的压力。
7)使用spring cloud的ribbon技术,对客户端的并发请求进行分流,实现后端服务的负载均衡。当并发量持续增加时,可以通过向现有集群添加新节点的方式,减轻单个服务上线程堵塞问题。
8)最后,如果出现某个瞬时并发量极具增加的情况,则使用服务降级和请求限流方式,已拒绝部分请求为代价,保证服务仍能正常运行。