惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

罗磊的独立博客
G
Google Developers Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
腾讯CDC
有赞技术团队
有赞技术团队
Vercel News
Vercel News
MongoDB | Blog
MongoDB | Blog
M
MIT News - Artificial intelligence
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
B
Blog RSS Feed
I
InfoQ
Blog — PlanetScale
Blog — PlanetScale
博客园_首页
The Cloudflare Blog
B
Blog
C
Check Point Blog
Stack Overflow Blog
Stack Overflow Blog
IT之家
IT之家
U
Unit 42
D
Docker
月光博客
月光博客
aimingoo的专栏
aimingoo的专栏
博客园 - Franky
A
About on SuperTechFans

博客园 - 升讯威在线客服系统

使用 .NET MAUI Blazor Hybird APP 重构在线客服工作台,实现对 MAC 的完美支持 5年,一个程序员是如何把私有化在线客服系统做到第一名的 使用 dotnet-counters 观测升讯威客服系统内存占用情况和数据吞吐性能 详解 Docker 环境变量技术,以及如何通过环境变量一键部署客服系统 我是如何为客服系统自建文件服务器,节省运营成本的 如何在跨国网络环境中稳定运行在线客服系统:1.网络路径的不可控性 谈谈一款 .NET 客服系统是如何建立客户信任的 我为何选择私有化客服系统作为独立开发的方向 RAG 还是 Lucene:私有化部署客服系统的 AI 知识库架构选型 手把手教你部署一套免费私有化客服系统 高性能客服系统技术内幕:通过 SpinWait 自旋等待结构体提升高频消息分发性能 用 DeepSeek 给你的 APP 和网站上一个 免费的 24小时智能客服吧! 薅羊毛:用豆包AI给你的APP和网站整一个 免费的 24小时智能客服吧! 从零开始构建实时客服系统(.NET架构系列)- 序章:为什么要讲实时客服系统的工程之道 独立开发者的痛点反思:网站太土,信任就没了 独立开发者的 2025:我为什么还在做一个“看起来很普通”的客服系统 客服系统前端主题配色动态切换的一种实现思路(含代码) 独立开发经验谈:用视频快速讲解你的产品核心竞争力 独立开发在线客服系统手记:实现对 PostgreSQL 的支持,以及与 MySQL 的对比 独立开发在线客服系统 5 年,终于稳如老狗了:记录我踩过的坑(一) 独立开发在线客服系统,我是如何与杀毒软件误报斗智斗勇的 我是如何实现在线客服系统的极致稳定性与安全性的 浅谈开源在线客服系统与 APP 集成的技术方案与优劣势 独立开发者的在线客服系统:从 0 到 300 余万次会话,1700 余万条消息 在线聊天系统中的多窗口数据同步技术解密 一文(加代码示例)说透在线客服系统技术难点 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
.net 行不行?在线客服系统成功支持客户双11大促,21客服在线...
升讯威在线客服系统 · 2025-11-19 · via 博客园 - 升讯威在线客服系统

熟悉我的朋友都知道,我是升讯威客服系统的作者,一个独立开发者,常年致力于在线客服系统的开发和服务。今天和大家分享最近一个真实的案例,也是对客服系统的一次大考。

讲故事:

10月上旬有一个老板找到我,和我说已经试用了我的客服系统一段时间,问我能否给他们先多开一些客服权限,他们希望进一步测试。 这没问题,直接给他们在线上开10个客服,尽管测。😊

1c3ac23c-38a3-4c58-81cf-d2a216e90e62

开通权限之后,中途我询问了一次测试情况,只告诉我还好,也没有更多反馈。 事情似乎告一段落,直到快一个月之后,11月初,老板找到我,告诉我他们让技术测试验证之后,下定绝心换掉正在使用的一个纯 WEB 客服系统,但是有几个对接需求,问我能不能满足。那还用说,小意思。

经过几天的接口对接和技术沟通,我才知道他们是在为双11活动做准备。并且他们的场景比较个性化,客户下单之前,下单之后,都需要联系客服确认,所以对客服系统的要求很高,有任何不稳定或者丢消息的情况,都是真金白银的损失。

对接和准备的过程很简单,客户方的工程师也非常 nice,11月9号,客户的大促开始,因为涉及到客户真金白银的收入,我也没敢轻易休息,在线等着客户的反馈,怕有问题。 这是第一次客户用我的客服系统进行大规模大促的客户支持。

9号凌晨,流量开始快速上涨,大约凌晨1点左右 同时进行的会话数量超过300个,每分钟收发数百条消息。 持续观察到约凌晨2点,系统没有让人失望,才敢安心睡觉。

9abfd24d2df4ecc1d4218d47ae7b1fef


讲技术:

升讯威客服系统之所以能稳定支撑高并发,是因为整个 Server Application 基于 .NET 的异步 IO、多路复用、高效缓存与连接管理构建了一套可水平扩展的架构,而不是依赖堆机器。

客服系统为什么是“高并发重灾区”

  • 短连接 + 高频请求:访客端轮询、心跳、输入中提示等形成天然压力。
  • 实时性要求高:消息延迟超过 300ms,就算失败。
  • 业务场景复杂:消息分发、在线状态、技能组路由、多端同步。
  • 数据写入密集:大量会话记录、事件、追踪日志。

核心架构设计

1. 完全异步化的 .NET I/O Pipeline(避开线程池地狱)

  • 通过ASP.NET Core 的 async/await 撑住巨量连接
  • 使用 IAsyncEnumerable 进行高效流式推送
  • 正确与错误的 async 写法对比
// 正确:不阻塞线程池
public async Task<Message> SendAsync(Message msg)
{
    await _queue.Writer.WriteAsync(msg);
    return msg;
}

2. 高吞吐消息路由:Channel、Pipe 与零拷贝思想

  • 使用 System.Threading.Channels 做消息分发
  • 避免锁竞争
  • PipeReader/PipeWriter 的应用
  • 基于 Channel 的消息分发器
var channel = Channel.CreateUnbounded<Message>();

_ = Task.Run(async () =>
{
    await foreach (var msg in channel.Reader.ReadAllAsync())
    {
        await _dispatcher.Dispatch(msg);
    }
});

3. 连接长驻与资源最小化:WebSocket + Heartbeat 节流

  • WebSocket 与 SSE 的巨大优势
  • 减少心跳、降低服务器开销
  • 自定义心跳策略与断线重连

数据库层高并发设计

1. EF Core Bulk Write 与批处理模型

  • 大量消息写入避免 DbContext 暴涨
  • 以“消息事件持久化”批量写入
  • 每 200 条一批进行 Flush
if (_batch.Count >= 200)
{
    await _db.BulkInsertAsync(_batch);
    _batch.Clear();
}

2. 读写分离与并发热点降温

  • 使用 Redis/Memcached 做会话状态缓存
  • 规避 “聊天状态” 写爆数据库
  • 访客在线状态应完全走缓存,不触发 DB 写入

缓存与事件驱动架构

1. Redis Stream / PubSub 实现多节点同步

  • 避免 Sticky Session
  • Server Application 可无状态水平扩展
  • 跨节点推送的代码片段

2. 事件总线(EventBus)驱动的解耦架构

  • 新消息 → 分发器 → 推送模块 → 持久化模块
  • 无需模块互相引用

和市面上传统客服系统的差异

  • 传统 PHP/Java 架构每连接成本高,无法做到大规模并发

  • 大量系统依赖长轮询,本质效率低

  • 升讯威客服系统的核心优势:

    • 全链路异步
    • 事件驱动
    • 高并发消息路由
    • 多节点水平扩展
    • 更低的延迟(20–40ms)

技术不是炫技,而是让客服系统永不掉线

  • 更低成本
  • 更高稳定性
  • 更好扩展性
  • 用更少机器承载更大规模业务

独立者的产品成果

https://kf.shengxunwei.com

可全天候 7 × 24 小时挂机运行,网络中断,拔掉网线,手机飞行模式,不掉线不丢消息,欢迎实测。

访客端:轻量直观、秒级响应的沟通入口

访客端是客户接触企业的第一窗口,我们精心打磨每一处交互细节,确保用户无需任何学习成本即可发起对话。无论是嵌入式聊天窗口、悬浮按钮,还是移动端自适应支持,都实现了真正的“即点即聊”。系统支持智能欢迎语、来源识别、设备类型判断,可自动记录访客路径并呈现于客服端,帮助企业更好地理解用户意图。在性能方面,访客端采用异步加载与自动重连机制,即使网络波动也能保障消息顺畅送达,真正做到——轻量不失稳定,简单不失智能。

客服端软件:为高效率沟通而生

客服端是客服人员的作战平台,我们构建了一个专注、高效、响应迅速的桌面级体验。系统采用多标签会话设计,让客服可同时处理多组对话;访客轨迹、历史会话、地理位置、设备信息、来源渠道等关键信息一目了然,协助客服快速做出判断。内置快捷回复、常用文件、表情支持和智能推荐功能,大幅降低重复劳动成本。同时,系统还支持智能分配、会话转接、转人工、自定义状态等多种机制,保障团队协作流畅,让客服不仅能应对高峰,更能稳定交付满意度。

Web 管理后台:

Web 管理后台是企业对客服系统的“驾驶舱”,从接入配置、坐席管理,到数据统计、权限控制,一切尽在掌握。你可以灵活设置接待策略、工作时间、转接规则,支持按部门/标签/渠道精细分配访客,满足复杂业务场景。系统还内置访问监控、聊天记录检索、客服绩效统计、错失会话提醒等运营级功能,助力管理者洞察服务瓶颈,持续优化资源配置。支持私有化部署、分权限管理、日志记录与数据导出,为追求安全性与高可控性的企业,提供真正“掌握在自己手里的客服系统”。

希望能够打造: 开放、开源、共享。努力打造一款优秀的社区开源产品。

钟意的话请给个赞支持一下吧,谢谢~