基于 Spring Cloud 的高并发,高可用,全异步开源微服务客服系统
全自研系统,完全开源,包括后台服务端和桌面客户端。后台使用 Kotlin + Spring Cloud 开发(本项目也可作为一个 Kotlin 微服务后端的示例项目)
其他项目 :
项目名称 | 项目地址 | 详细说明 |
---|---|---|
客服系统桌面客户端 | contact-center-client | 基于 Electron + React 开发的桌面客户端,UI 使用 material-ui |
客服系统用户端 | customer-web-client | 客服系统用户端,基于 ChatUI Pro 开发 |
- 微服务,高并发架构,轻松应对流量冲击
- 全异步系统,反应式架构,提高单机资源利用(基于 WebFlux,数据库访问使用 R2DBC )
- 良好的模块化设计,易于扩展
- 提供多种数据接口 (REST API 接口 + GraphQL)
- 基于 OAuth 2.0 权限认证系统 + JWT 无状态的安全验证
- 支持 OSS 文件存储(默认基于 MinIO ,兼容 Amazon S3 )
- 机器人客服: 提供基于 Elasticsearch 的问答机器人
- 客服人员忙碌时,客户自动排队
- 客户资源管理 + 全文检索
- 常用话术,快捷输入
- 多接待组设置:轻松分类不同客户群与对应客服
- 黑名单、客户留言
- PostgreSQL 10.3.17
- Consul 9.2.7
- Elasticsearch 7.13.2
- Kafka 12.12.0
- Cassandra 7.5.7
- MinIO 6.7.2
- Redis 10.6.4
- JDK 11.0.8
- Kotlin 1.4.32
在各个项目 resources/application.yml 中修改相应的数据库、Consul、Kafka(仅 im-access 和 message-server 服务需要)、Redis服务地址
Elasticsearch 地址在项目 config/ReactiveRestClientConfig.kt 中修改
MinIO 配置在 MinioConfig 中修改
PostgreSQL SQL: SQL 文件 会导入需要的表结构,和部分初始化数据,
SpringBoot 项目,可以在IDE中运行,也可以打包为单独的 jar 包运行
子系统(本项目) :
系统名称 | 系统地址 | 详细说明 |
---|---|---|
机器人服务 | bot | 客服系统QA(base on ElasticSearch)机器人 |
调度服务 | dispatching-center | 客服调度服务,根据配置策略分配客服 |
网关 | gateway | 微服务网关,提供统一的系统入口 |
接入服务 | im-access | IM WebSocket 接入服务,包括 客户端 http 接入 |
消息服务 | message-server | IM 消息路由,消息存储服务,客服/客户在线状态管理服务(base on hazelcast embedded) |
授权服务 | oauth2-auth-server | oauth2 授权服务,签发加密JWT |
客服信息 | staff-admin | 客服信息管理服务,包括客服账号,客服分组,客服分流(接待组),配置管理等 |
graphql 聚合服务 | GraphQLBFF | GraphQL 接口服务,提供后台 http 接口的 GraphQL 聚合封装 |
Mark | Description |
---|---|
🏃 | work in progress |
✋ | blocked task |
❌ | deprecated |
⚫ | planning |
- ⚫ 客服监控功能 [5]
- ⚫ 咨询类型 [4]
- ⚫ 基于 Redis 的实时统计 [3]
- ⚫ 图文机器人 [2]
- ⚫ 留言处理(发送短信/邮件)[1]
- ⚫ 基于 Kibana + Elasticsearch 统计客服在线、会话、TopN问题、等 [1]
- ❌ Apache Kylin + Saiku / SuperSet + Apache Druid 进行 OLAP 数据分析模块开发
- ❌ 数据使用 kafka 导入到 kylin / hbase / hadoop
email: [email protected]
QQ 群: