授权协议: Apache
开发语言: Java
操作系统: 跨平台
收录时间: 2020-08-31
提 交 者: yueyakk

YUE-IM 是使用java开发,基于netty,akka 实现的即时通讯服务。并且提供极简的api,极大的降低开发难度,方便使用者二次开发。

主要特点:

  1. 支持websocket,tcp协议进行通信
  2. 支持单机部署,集群部署
  3. 提供极简api,方便开发者二次开发
  4. 得益于akka提供的能力,集群模式只需要简单配置(依赖zookeeper,用于种子节点发现),支持自组建,集群间消息通信不依赖其他消息队列及其他中间件
  5. 支持同一账号,多终端连接,多终端同时接收消息

 

软件架构

image

 

 

系统选择基于使用netty作为接入服务器,主要是考虑netty作为java里最知名的网络服务器框架,性能,对多种协议的支持,以及开发资料都有保证。

集群间通信: 系统集群间通信选择基于Akka来实现,即时通讯集群要解决的最大的问题就是如何把消息投递到目的客户端连接的节点上,目前大部分开源的即时通讯项目基本上都是基于消息队列或者redis的发布订阅来实现跨节点的通信, 或者是维护一个总的路由缓存系统来实现跨节点的通信,本系统基于Akka,通过广播,消息应答及个节点缓存路由来实现集群各节点的通信,不依赖其他系统或中间件,尽量减少不必要的设备资源消耗及网络传输次数, Akka是一套开源工具和运行时,便于构建JVM上的并发应用和分布式应用,自从了解Akka后就一直想基于Akka开发 一个程序,无奈平时并没有什么应用场景用得到,Akka本身的特性是很适合做这种消息服务的,所以选择了Akka,并且集群节点间通信使用protobuf,提高数据传输效率。

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

YUE-IM 的相关资讯

还没有任何资讯

YUE-IM 的相关博客

IM

防骗提醒 应用皆由第三方提供,与本平台无关。 点击查看「APP防骗指南」 我已了解 不再提醒

DE-9IM

Dimensionally Extended nine-Intersection Model

IM总结

发送消息UDP打洞,登录的时候HTTP。 登录成功后,会有一个TCP连接来保持在线状态。这个TCP连接的远程端口一般是80,采用UDP方式...

IM开发快速入门(一):什么是IM系统?

本文在编写时参考了博客作者“鹿呦呦”和在线课程“即时消息技术剖析与实战”的相关资料,一并表示感谢。 1、系列文章引言 IM...

YUE-IM 的相关问答

还没有任何问答,马上提问

评论 (4)

加载中
akka来处理集群问题,思路很清奇啊👍
09/15 16:19
回复
举报
能用于C#吗?
09/15 13:53
回复
举报
建议建一个群
09/15 12:28
回复
举报
留爪
09/01 22:50
回复
举报
更多评论
4 评论
70 收藏
分享
返回顶部
顶部