百万级云客服实时与离线计算架构技术的实现

云客服系统一直在不断演化,需要在每一次上线升级和代码变化中都要保持系统的稳定。因此,合理的质量保证体系是系统稳定性运行的关键。为了保证云客服系统的质量,在RD开发、QA测试、


摘要: 在互联网蓬勃发展的时代,Web系统在云计算和微服务上实现了交替使用。微服务框架如今成为了互联网架构主流。通过微服务架构可以轻松地构建一个网络应用,或者在项目之间可以无侵入的享受的微服务带来的便利。本文通过构建一个云客服系统,来阐述分布式实时与离线计算架构的微服务。本篇文章讲诉五大内容,分别为产品网站的技术选型以及架构、微服务docker虚拟化的搭建、云客服产品的模型、系统分层设计、云客服基础服务上扩展应用。本文结合工业界稳定的版本,使用SpringMVC、Mybatis、Dubbo和Zookeeper的技术选型来构建一个云客服系统。

关键词: SOA架构;分布式架构;云客服;实时计算;离线计算

Implementation of Cloud Customer Service Used Online and Offline Distributed Computing Architecture

Abstract: In the age of Internet boom, our dependence on service is evident. The alternate use of cloud computing and micro-services has become the dominant trend in the Internet today. We can build a web application without much effort on cloud computing. Or we can enjoy micro-service on our project without intruding. But these are just the beginning, there are many problems in real life that need to be solved. For example, in the B2B resource calculation, we need but lack of services to provide performance assessment, cost monitoring and job matching for a small and medium-sized enterprise. This article about the five content, respectively product site selection of technology and architecture, the construction of the docker micro service virtualization, cloud customer service product model, system design, the layered cloud service based on service extension application. In combination with the stable version of software industry, our technology selection is Spring MVC, Mybatis, Dubbo and Zookeeper. This is a standard set of JavaEE frameworks, and we will add some middleware to optimize our application based on business needs and performance optimization considerations.

Keywords: SOA Architecture; Distributed System; Cloud Customer Service; Online Computing; Offline Computing

目录

摘要 i

Abstract ii

目录 iii

1绪论 1

2产品架构 2

2.1基础设施 2

2.2面向服务体系的架构SOA 2

2.3RPC远程调用 3

2.4分布式缓存 4

2.5分布式SESSION 4

2.6持久化存储 5

2.7垂直化搜索引擎 5

2.8日志分析 6

2.9心跳检测 6

2.10高并发设计 6

2.11实时计算 7

2.12离线计算 7

3DOCKER虚拟化 8

3.1DOCKER虚拟化 8

3.2DOCKER集群 8

3.3应用自动化部署 9

4云客服模型论述 11

4.1服务接入 11

4.2机器学习 11

4.3知识库 11

4.4机器人对话 11

5系统分层设计 12

5.1系统接入层 13

5.2WEB层 13

5.3API接入层 14

5.4MERCHANT层 14

5.5USER层 14

5.6TASK层 15

5.7DECISION层 15

5.8ETL组件 15

5.9MONITOR组件 15

5.10DATA组件 15

5.11ADMIN组件 16

5.12REDIS的设计与表的分配 16

5.13消息设计 18

5.13.1消息件的设计Key格式 18

5.13.2消息组件 18

5.13.3发送消息 19

5.13.4消费消息 19

5.13.5客服发送消息实体 20

5.13.6消息组件分配 20

5.14DUBBO的搭建 22

6云客服产品成果 25

6.1功能组件 25

6.2系统成果展示 25

6.3运维与实践 28

致谢 29

参考文献 30

1 绪论

本文所叙述建立的云客服系统是用来为企业提供优质解决方案的咨询服务系统。本文所寻找的用户是需要做提升企业和企业员工。企业员工可以通过本客服系统,了解自己目前的状况,并且更好的定位自己的岗位。所谓人岗匹配,知道一个人总有适合他的岗位,在不同的时期也可以去转换角色,寻找自我,提升自我。这是本云客服系统的真正为用户提供价值的所在。本篇论文讲述了一个百万级架构系统是如何诞生的,它究竟需要哪些技术来支撑这个应用,本文会将所用到的技术一一阐述。一个成熟的系统也不是快速就能搭建起来,需要一个漫长而又持续的成长,需要对每个技术去逐一攻破。所谓百万级云客服,这里的百万是指系统能够承担的容量能够达到百万。系统能够支撑到这么大的用户量,那么本次云客服系统所使用的技术就一定区别于传统的单机架构模式。在这里必须使用分布式架构,让所有的工作都分开,让服务器的职能越来越细,这是系统能够大容量支撑最基本的要领。本次云客服使用了相对成熟的SpringMVC、Mybatis、Dubbo、Zookeeper这样的分布式系统,对于系统应用的瓶颈,可以通过很多方法来完成系统容量的增加。在标题中本文使用了实时计算与离线计算这两个词。其实两个词的操作方式是很相近的,只是在计算的时间不同罢了。可以将一些铜壶需要及时出现的文字,及时使用的数据用流失计算来规划,将一些需要漫长计算过程使用离线计算。接下来,文章开始叙述整个系统的搭建过程。