开源IM项目OpenIM新版本发布-生产环境需更新
项目简介
Android体验地址:https://www.pgyer.com/OpenIM
注册后自动加入组织,和群聊
群聊页面
工作台
工作台,业务可以通过jssdk自由扩展自身业务
工作圈
工作圈:增加办公动态
组织架构
业务系统打通组织架构
最近一个月,OpenIM团队主要精力集中在线上bug修复、性能优化、新特性开发:
重大bug修复
bug描述 描述 原因 修复方式
消息发送失败 踢人下线较多时,所有消息发送转圈,并最终失败。只有重启才能解决 在网络堵塞时,如果踢人下线,会导致服务端死锁风险 对于踢人,直接关闭连接,并把token置为踢出状态;
消息发送失败 某个时刻,无任何征兆,所有消息发送转圈,并最终失败。只有服务端才能解决 kafka客户端包github.com/Shopify/sarama v1.32.0有bug 用1.29.0替换。
etcd获取连接为空 在异常情况下,会有空指针导致进程挂掉 增加日志,定位原因 增加了容错保护,避免进程挂掉
感谢几位客户提供日志以及现场情况,这些问题才得以彻底解决,大家放心用于生成环境。
性能优化
优化方案 描述 优点
redis集群 用go-redis替换原有的redis库,支持redis集群模式, 系统容量以及并发能力进一步提升
消息入库大小循环模型 对于新消息入库redis,对于老消息延迟批量写入mongodb 提升消息时效性,每秒上万次并发。由于批量入库mongodb,能减少mongodb的压力;
群聊已读可配置 增加已读配置项给业务更多选择 群聊已读会增加消息量,影响性能,业务可以自由选择
新特性发布
新特性 描述 场景
用户强制下线 后台api让用户token失效,强制下线 运营需求
增加群管理员 群管理员有踢人,禁言权限等 扩展群管理能力
全局免打扰 消息能接收,但不提醒 消息设置能力
组织架构 组织架构api业务对接能力和已有业务系统打通,本地存储及实时更新能力 政企办公能力
工作圈 同一组织内可以查看、点赞,评论等, 政企办公互动
项目成果
从服务端到客户端SDK开源即时通讯(IM)整体解决方案,可以轻松替代第三方IM云服务,并能根据业务需求高度自定义和二次开发,打造具备聊天、社交、办公功能的app。
OpenIM继续领跑开源IM领域,在广大开发者的大力支持下,目前github star突破9k。在数据泄露、信息外泄、隐私滥用的今天,IM私有化部署需求旺盛,全面拥抱软件国产化。其中,政企协同办公对IM需求猛增,随着信息化技术的迭代升级以及信创产业加速落地和实践,协同办公软件的发展潜力将进一步被释放。“安全可控“逐步成为第一要素。希望OpenIM成为各位私有化IM的第一选择。
github地址:https://github.com/OpenIMSDK/Open-IM-Server
开发者中心:https://doc.rentsoft.cn/#/
我们的团队
创始团队来自资深IM技术团队,我们致力于用开源技术创造服务价值,打造轻量级、高可用的IM架构,开发者只需简单调用 SDK,即可在应用内构建多种即时通讯及实时音视频互动场景。相比于其他云服务商,OpenIM有其优势:开源,安全,可靠,低成本。对于信息安全重视的电子政务,企业协同办公,OpenIM都是非常好的选择。从公司成立之初就将“开源”作为核心战略来推进,以公司化运营打造开源IM,充分体现了自由、平等、分享的互联网精神。
OpenIM邀请全球技术极客参与技术优化,让开发者轻松集成,让每一个应用都具备IM功能,同时考虑企业的接入成本、服务器资源以及最重要的数据安全性和私密性。
开源IM项目OpenIM新版本发布-生产环境需更新的更多相关文章
- asp.net core 2.2 生产环境直接更新View页面并立即生效
有的时候我们会直接在生产环境上更新页面文件,比如更改了JS代码,CSS代码或页面的文案,布局等.这种没有改到后台代码的情况一般就是直接发布页面文件了,在asp.net core 2.2以前的版本(没有 ...
- vue cli脚手架项目利用webpack给生产环境和发布环境配置不同的接口地址或者不同的变量值。
废话不多说,直接进入正题,此文以配置不同的接口域名地址为例子 项目根目录下有一个config文件夹,基础项目的话里面至少包括三个文件, 1.dev.env.js 2.index.js 3.prod.e ...
- vue-cli生成的项目配置开发和生产环境不同的接口
vue-cli生成的项目,vue项目配置了不同开发环境的接口地址,axios.defaults.baseURL如何引用这个地址,这是在我发布项目的时候考虑的,于是想到了 方法一: config下配置文 ...
- spring 项目分开发和生产环境
1.pom 文件修改 <profile> <!-- 本地开发环境 --> <id>dev</id> <properties> <pro ...
- https://www.cnblogs.com/beileixinqing/p/7724779.html vue-cli生成的项目配置开发和生产环境不同的接口 vue-cli生成的项目,vue项目配置了不同开发环境的接口地址,axios.defaults.baseURL如何引用这个地址,这是在我发布项目的时候考虑的,于是想到了
方法二:(集热心网友提供的方案) 一般项目webpack会有两个或多个配置文件,如: webpack.prod.conf.js 对应线上打包 webpack.dev.conf.js 对应开发环境 使用 ...
- linux日志审计项目案例实战(生产环境日志审计项目解决方案)
所谓日志审计,就是记录所有系统及相关用户行为的信息,并且可以自动分析.处理.展示(包括文本或者录像) 推荐方法:sudo配合syslog服务,进行日志审计(信息较少,效果不错) 1.安装sudo命令. ...
- Dubbo Mesh 在闲鱼生产环境中的落地实践
本文作者至简曾在 2018 QCon 上海站以<Service Mesh 的本质.价值和应用探索>为题做了一次分享,其中谈到了 Dubbo Mesh 的整体发展思路是“借力开源.反哺开源” ...
- Vue3能不能用到生产环境?
最近,有不少朋友问我:"十三,看你写了几个Vue3的项目,你觉得Vue3能用到生产环境了吗?"结合自己的想法和尤大直播说的话,给一点建议. 别问我!没结果,除非花手摇过我. 我不是 ...
- .NET持续集成与自动化部署之路第三篇——测试环境到生产环境的一键部署策略(Windows)
Jenkins测试环境到生产环境的一键部署策略(Windows) 一.前言 前面我们已经初步实现了开发集成环境.测试环境的持续集成(自动化构建.自动化测试.自动化部署).但生产环境自动化部署迟 ...
- angular 配置开发环境、测试环境、生产环境
1. 配置开发环境.测试环境.生产环境 (1). environment.ts - 开发环境: 用于程序开发 (创建项目时自动生成) export const environment = { prod ...
随机推荐
- 对话 BitSail Contributor | 姚泽宇:新生火焰,未来亦可燎原
2022 年 10 月,字节跳动 BitSail 数据引擎正式开源.同期,社区推出 Contributor 激励计划第一期,目前已有 12 位开发者为 BitSail 社区做出贡献,成为了首批 Bit ...
- 用ChatGPT 玩转哔哩哔哩
用ChatGPT 玩转哔哩哔哩 哔哔终结者 BibiGPT 哔哩哔哩 BiliGPT,一款智能AI工具,帮助用户一键总结 哔哩哔哩视频内容,非常省心,软件基于GPT-3.5 AI,如果无法使用,可以使 ...
- 【django-vue】登录、注册前端实现 redis介绍 redis安装 python操作redis redis连接池 Redis之字符串类型
目录 上节回顾 今日内容 1 登录前台 多方式登录 短信登录 Login.vue 2 注册前台 注册功能 Header.vue 3 redis介绍 3.1 redis应用场景 3.2 redis安装 ...
- 【网络爬虫学习】第一个Python爬虫程序 & 编码与解码详解 & Pythonの实现
本节编写一个最简单的爬虫程序,作为学习 Python 爬虫前的开胃小菜. 下面使用 Python 内置的 urllib 库获取网页的 html 信息.注意,urllib 库属于 Python 的标准库 ...
- Codeforces Round #617 (Div. 3) A~E
比赛链接:Here 1296A. Array with Odd Sum 题意:给了 \(n\) 个数,现在就是说可以选择两个数让其中一个的值等于另一个的值. 这种操作无限次 问是不是能让这n个数操作后 ...
- Codeforce :466C. Number of Ways (数学)
https://codeforces.com/problemset/problem/466/C 解题说明:此题是一道数学题,若平分分成若干种情况,应当整体(sum)考虑,对sum/3进行分析.它是区分 ...
- 2020年第十一届蓝桥杯省赛 第二场(10月17日)B组个人题解
A 找出来1到2020之间数位为2的数量. 不用特别去考虑,直接循环即可 B 求分子分母最小因子为1的. 跑两个for循环,写一个gcd就可以了 答案:2481215 int main() { // ...
- 《深入理解计算机系统》(CSAPP)读书笔记 —— 第六章 存储器层次结构
在计算机系统模型中,CPU执行指令,而存储器系统为CPU存放指令和数据.实际上,存储器系统是一个具有不同容量.成本和访问时间的存储设备的层次结构. 如果你的程序需要的数据是存储在CPU寄存器中 ...
- C#格式化输入数据为货币格式
private void btn_Get_Click(object sender, EventArgs e) { double P_dbl_value;//定义double类型变量 if (doubl ...
- python进阶(4)--字典
文档目录: 一.一个简单的字典二.字典-增删改三.遍历字典四.字典嵌套 ---------------------------------------分割线:正文------------------- ...