写在后面

Open-IM是由前微信技术专家打造的开源的即时通讯组件。Open-IM包含IM服务端和客户端SDK,实现了高性能、轻量级、易扩大等重要个性。开发者通过集成Open-IM组件,并私有化部署服务端,能够将即时通讯、实时网络能力疾速集成到本身利用中,并确保业务数据的安全性和私密性。

开创团队来自前微信高级架构师、IM/WebRTC专家团队,咱们致力于用开源技术发明服务价值,打造轻量级、高可用的IM架构,开发者只需简略调用 SDK,即可在利用内构建多种即时通讯及实时音视频互动场景。

IM作为外围业务数据,平安的重要性毋庸置疑,OpenIM开源以及私有化部署让企业能更放心使用。

现在IM云服务商免费高企,如何让企业低成本、平安、牢靠接入IM服务,是OpenIM的历史使命,也是咱们后退的方向。

理解更多原创文章:

【OpenIM原创】开源OpenIM:轻量、高效、实时、牢靠、低成本的音讯模型

【OpenIM原创】C/C++调用golang函数,golang回调C/C++函数

【OpenIM原创】简略轻松入门 一文解说WebRTC实现1对1音视频通信原理

【OpenIM扩大】OpenIM服务发现和负载平衡golang插件:gRPC接入etcdv3

【开源OpenIM】高性能、可伸缩、易扩大的即时通讯架构

如果您有趣味能够在文章结尾理解到更多对于咱们的信息,期待着与您的交换单干。

1.克隆

git clone https://github.com/OpenIMSDK/Open-IM-Server.git

2.装置

cd Open-IM-Serverdocker-compose pull

3.启动

docker-compose up

4.查看

docker-compose ps

如图所示,示意失常启动。

源码部署

装置组件

Open-IM-Server依赖五大开源组件:EtcdMySQLMongoDBRedisKafka,在应用源码部署Open-IM-Server 前,请确保五大组件已装置。如果没有装置以上组件,倡议应用上文的docker部署。

1.克隆我的项目

git clone https://github.com/OpenIMSDK/Open-IM-Server.git

2.批改config.yaml,配置五大组件的连贯参数

cd Open-IM-Servervim config.yaml
  • 批改 Etcd 配置项
etcd:  etcdAddr: [ 127.0.0.1:2379 ]
  • 批改MySQL配置项
mysql:  dbAddress: [ 127.0.0.1:3306 ]  dbUserName: root   dbPassword: openIM
  • 批改MongoDB配置项
 mongo:   dbAddress: [ 127.0.0.1:27017 ]   dbUserName:    dbPassword: 
  • 批改 Redis配置项
 redis:  dbAddress: [ 127.0.0.1:6379 ]  dbPassWord: openIM
  • 批改 Kafka 配置项
kafka:  ws2mschat:    addr: [ 127.0.0.1:9092 ]  ms2pschat:    addr: [ 127.0.0.1:9092 ]

保留config.yaml退出即可。

每种RPC数量默认为1,如果须要调整RPC数量,批改config.yaml中的配置项rpcport对应的port信息,port个数代表对应rpc服务的过程数。比方openImUserPort: [ 10100,10101 ]示意本机会启动两个open_im_user,port别离为10100,10101

3.构建

cd Open-IM-server/scriptchmod +x *.sh./build_all_service.sh

4.启动

./start_all.sh

5.查看

./check_all.sh

如图所示,示意失常启动。

集群部署(源码)

本大节次要解说通过源码形式如何部署Open-IM-Server集群

(1)在集群的每台机器(比方A、B两台机器)上执行源码部署。

(2)A、B机器都提供了IM能力,在nginx做一个路由转发即可。

OpenIM github开源地址:

https://github.com/OpenIMSDK/...

OpenIM官网 :https://www.rentsoft.cn

OpenIM官方论坛:https://forum.rentsoft.cn/

咱们致力于通过开源模式,为寰球企业/开发者提供简略、易用、高效的IM服务和实时音视频通信能力,帮忙开发者升高我的项目的开发成本,并让开发者掌控业务的外围数据。