php开源在线客服系统_源码屋

php开源在线客服系统_源码屋另外,客#服源码也不太适用于小规模的企业通讯场景,用客#服源码往企业通讯场景上套就有点“杀鸡用牛刀”,因为企业通讯更强调功能丰富而非极限性能,与客#服源码的目标不符,所以二者的上层设计也不同。另外,在产品对比章节下,我们也提到了客#服源码项目的缺点供您参考。1、(业务功能完善性)客#服源码支持几乎所有商用即时通讯产品所支持的即时通讯相关功能(甚至还有更多的业务功能),且无业务功能限制,同时也支持一些诸如敏感词过滤(基于双数组Trie的AC自动机算法实现)、消息冷热分离存储等高级IM功能。……….

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

PHP网站在线客#服系统源代码是一套全球范围内最为先进的、为同时在线用户数为100K~10M应用而设计的开源即时通讯引擎。

(当前Demo的服务端版本:/turms-admin:latest、/turms-im/turms-gateway:latest、/turms-im/turms-service:latest)turms-admin服务端地址:/im:6510

登录账号与密码均为:guest(该账号有查询与增加领域模型的权限,无更新与删除领域模型的权限)

仓库源码:kf.zxkfym.top

php开源在线客服系统_源码屋

turms-gateway服务端地址:/im:10510 (WebSocket端口)、/im:11510 (TCP端口)

turms-service服务端的管理员API地址(DEV配置,带Mock数据):/im:8510

Prometheus服务端地址:/im:9090;Grafana服务端:/im:3000

您可以使用任意turms-client-(java/js/swift)客户端,向turms-gateway服务端发送请求,并与其他用户进行交互。

另外,Playground由一条指令全自动搭建:ENV=dev,demo docker-compose -f docker-compose.standalone.yml —profile monitoring up —force-recreate -d

#源码快速搭建命令:

通过以下命令,可以在本地全自动地搭建一套完整的Turms最小集群(包含turms-gateway、turms-service与turms-admin)及其依赖服务端(MongoDB分片集群与Redis)

  git clone --depth 1 /turms-im/turms.git
  cd turms
  docker plugin install grafana/loki-docker-driver:latest --alias loki --grant-all-permissions
  docker-compose -f docker-compose.standalone.yml up --force-recreate

等集群完成搭建后,可以通过 localhost:6510 访问turms-admin后台管理系统,并输入账号密码(默认均为turms)。如果登录成功,则说明Turms服务端也已经成功启动。

另外您也可以通过Turms提供的Terraform module,来快

搭建云环境(默认使用抢占式实例)并在服务器上搭建Turms集群与依赖服务端。在terraform apply命令执行完毕后,等待约3~15分钟(阿里云ECS拉取ghcr镜像很慢)。

  git clone --depth 1 /turms-im/turms.git
  cd turms/terraform/alicloud/playground
  export ALICLOUD_ACCESS_KEY=<your_access_key>
  export ALICLOUD_SECRET_KEY=<your_secret_key>
  terraform init
  terraform apply

基于读扩散消息模型进行架构设计,对业务数据变化感知同时支持推模式、拉模式与推拉模式(详细文档:客#服源码业务数据变化感知),其他大部分的设计细节也源自商用即时通讯项目。并且相比很多技术栈落后的开源项目或闭源商用项目,客#服源码解决方案也是全球即时通讯开源领域内唯一一个基于现代化架构与现代化工程技术,并且适合中大规模部署的解决方案。

另外,架构设计是权衡的艺术,部分IM产品以功能丰富为口号,但功能丰富的代价就是只适用于小体量的用户规模(如企业内部通讯)。而客#服源码以极限性能为第一要义,同时支持完整的(而非丰富的)IM业务功能,以支持中大规模即时通讯场景。具体原因可查阅客#服源码集合设计以及客#服源码可观测性体系相关文档。

当您需要将客#服源码与其他开源IM项目做具体特性的比对时,您可以先照着客#服源码下述的特性与其他开源IM项目进行比对。通常情况下,您能通过这样的比对,发现专业IM项目与业余IM项目之间的区别。另外,在产品对比章节下,我们也提到了客#服源码项目的缺点供您参考。

注意:当前客#服源码项目的主要缺点是不对直播/聊天室业务场景提供支持。直播/聊天室业务场景的技术实现并不难,但其产品需求、质量属性要求与约束性条件与一般的社交场景存在着较大差异,故客#服源码第一版设计不对其提供支持;另外,客#服源码也不太适用于小规模的企业通讯场景,用客#服源码往企业通讯场景上套就有点“杀鸡用牛刀”,因为企业通讯更强调功能丰富而非极限性能,与客#服源码的目标不符,所以二者的上层设计也不同。如果希望支持企业通讯场景,您还需要对客#服源码进行二次开发。

功能相关特性:

1、(业务功能完善性)客#服源码支持几乎所有商用即时通讯产品所支持的即时通讯相关功能(甚至还有更多的业务功能),且无业务功能限制,同时也支持一些诸如敏感词过滤(基于双数组Trie的AC自动机算法实现)、消息冷热分离存储等高级IM功能。

2、(功能拓展性)客#服源码同时支持两种拓展模式:配置参数与开发插件。当然您也完全可以对源码进行修改。目前用于接入的MinIO对象存储服务的插件客#服源码-plugin-minio就是基于客#服源码-plugin实现的。

3、(配置灵活性)客#服源码提供了上百个配置参数供用户定制,以满足各种需求。并且大部分配置都可以在集群运作时(不需要停机),进行集群级别的同步更新,并且无性能损失。

通用架构特性:

1、(敏捷性)支持在用户无感知的情况下,对客#服源码服务端进行停机更新,为快速迭代提供可能

2、(可伸缩性)无状态架构,客#服源码集群支持弹性扩展与异地多活的部署实现,用户可通过DNS就近接入

3、(可部署性)支持容器化部署,方便与云服务对接,以实现全自动化部署与运维。客#服源码默认提供了docker镜像、docker-compose脚本、Terraform模块三套容器化部署方案

4、(可观测性)具备相对完善的可观测性体系设计,为业务统计与错误排查提供可能

5、(可拓展性)能同时支持中大型即时通讯场景,即便用户体量由小变大也无需重构(当然,对于大型运用场景还有很多优化的工作需要做,但当前架构不影响后期的无痛升级)

6、(安全性)提供限流防刷机制与全局用户/IP黑名单机制,以抵御大部分CC攻击

7、(简单性)核心架构“轻量”,方便学习与二次开发(原因请查阅 客#服源码架构设计)

客#服源码使用MongoDB分片架构,并支持请求路由(如读写分离)、冷热数据分离,同时也支持跨地域多活部署与数据主主同步,为大规模跨国部署提供实际操作的可能。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/190894.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ExtJs自学教程(1):一切从API開始

    ExtJs自学教程(1):一切从API開始

    2021年12月1日
    40
  • 移动硬盘不显示盘符提示初始化_移动硬盘插上系统起不来

    移动硬盘不显示盘符提示初始化_移动硬盘插上系统起不来一个2T的Seagate希捷移动硬盘,没有怎么用过,在笔记本上拷贝了几个文件就突然消失了,而且再次拔插USB线后发现仍然看不到硬盘盘符。但发现插上USB线后,任务栏中出现了USB插入硬盘的提示图标,看到这个我放心多了,至少表示电路是通的。于是打开了计算机管理,在磁盘管理中视图找到它,但始终没有它的身影双击后磁盘管理,出现了下面的对话框(这个时候千万要冷静,不要去初始化或者格式化,否则就麻烦了…

    2022年9月16日
    0
  • rocketmq负载均衡机制_rocketmq topic

    rocketmq负载均衡机制_rocketmq topicProducer发送消息时,会首先获取Topic路由信息(通过本地+注册中心拉取),RocketMQ的架构里有多个Broker服务器,而消息队列也会存在于多个Broker服务器里,所以就需要负载均衡策略来将流量尽可能均匀的打到所有服务器上。本章节就介绍一下RocketMQ中常用的四种负载均衡策略。找到Producer发送消息时选择消息队列的逻辑,在类中定义了方法:进入到方法里:上述代码的类中定义了方法:根据源码可以很清楚地看到,默认策略就是依次选择消息队列进行发送,具体的执行细节如下:如何选一个

    2022年10月13日
    0
  • Carson带你学Android:你要的WebView与 JS 交互方式都在这里了

    Carson带你学Android:你要的WebView与 JS 交互方式都在这里了前言现在很多App里都内置了Web网页(HybridApp),比如说很多电商平台,淘宝、京东、聚划算等等,如下图上述功能是由Android的WebView实现的,其中涉及到Android客户端与Web网页交互的实现今天我将全面介绍Android通过WebView与JS交互的全面方式阅读本文前请先阅读:Android开发:最全面、最易懂的Webview详解…

    2022年6月13日
    35
  • vmware安装虚拟机失败_虚拟机无法安装系统

    vmware安装虚拟机失败_虚拟机无法安装系统虚拟机给我的编程工作确实带了很多方便,但是虚拟机的一个最大挑战是硬件赶不上,速度太慢了。最近一直在致力于虚拟机上Win7专业版平台上SQLServer2005+VisualStudio2012系统开发,最初还可以,但是越到后面速度越慢。最后决定重新启用记忆版的XP系统。记得最初接触的Windows系统是Win98,是在高中时候与其解下不解之缘的。于是,今天在茶余饭后,开启XP模式。

    2022年8月16日
    4
  • setCapture 和 releaseCapture

    setCapture 和 releaseCapturesetCapture函数的作用就是将后续的mouse事件都发送给这个对象,releaseCapture就是将鼠标事件还回去,由document、window、object之类的自行来处理。这样就保证了在拖动的过程中,不会由于经过了其它的元素而受到干扰另外,还有一个很重要的事情是,在Win32上,mousemove的事件不是一个连续的,也就是说,并不是我们每次移动1px的鼠标指针,就会发生一个mousemove,windows会周期性检查mouse的位置变化来产生mousemove的事件。所以,如

    2022年5月3日
    46

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号