百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

调试个开源Java 轻量级高性能IM,单机支持几十万至百万在线用户

lipiwang 2024-10-15 18:44 13 浏览 0 评论

开篇

商城里面的即时通讯大概大家都知道,基本上客服功能是不可缺少的在任何电子商务系统中。之前我调试过一个开源的IM了,不过,我这两天又发现了一个不错的开源的IM系统。晚上下班回来就来调试一把,把整个过程记录下来,如果需要开源源码的,请移步至文章末尾,可以获取开源地址,此文重在调试觉得有用可以关注转发一下。我调试了很多开源项目,可以到我头条主页去看看。

项目介绍

此款IM是基于JAVA语言,基于t-io开发的轻量、高性能、单机支持几十万至百万在线用户IM,主要目标降低即时通讯门槛,快速打造低成本接入在线IM系统,通过极简洁的消息格式就可以实现多端不同协议间的消息发送如内置(Http、Websocket、Tcp自定义IM协议)等,并提供通过http协议的api接口进行消息发送无需关心接收端属于什么协议,一个消息格式搞定一切!就问你厉害不厉害。

项目特点如下当然更具体的可以到开源主页上去看:

1、高性能(单机可支持几十万至百万人同时在线)
 2、轻量、可扩展性极强
 3、支持集群多机部署
 4、支持SSL/TLS加密传输
 5、消息格式极其简洁(JSON)
 6、支持多种协议(Socket自定义IM协议、Websocket、Http),可分别独立部署。
 7、内置消息持久化(离线、历史、漫游),保证消息可靠性,高性能存储
 8、各种丰富的API接口。
 9、零成本部署,一键启动。

核心调试

1、用git clone 从开源地址导入IDEA项目

2、导入后大概是这个样子的。

3、启动项目,当然配置文件里面可以定义端口,类似spring boot项目,不过这个例子不是,下载源码自己看就知道了。

4、启动成功后,按你自己配的端口访问,当然我这里配置的是8888,如上面的配置。这里我就访问的是localhost:8888。当然这里有重点来了你本机最好弄两个浏览器,每个都访问,如下图,我用的是三六零的和chrome浏览器。然后你就可以测群聊和单聊了。

当然了,这里的用户名和密码是自动按时间戳生成的,自己可以根据自己的业务去进行改造。

以下是聊天界面,感兴趣的自己拿源码自己调试吧。

结语

IM已经是各大电商平台不可或缺的组件了,如果还不了解im是怎么实现的,这款开源的,可以来研究一下的。当然,这个项目里面的例子是可以作为参考的,参考例子很简单,如果想在自己的项目中运用,还需要根据自己的业务改造。最后有需要开源地址的同学,关注转发收藏吧,私信"20191112"会自动发你开源地址。

我其他调试的开源项目

双十一光棍节调试一个商城必备功能,Java Springboot开源秒杀系统

Java 的单个 Spring boot 项目快速瘦身到几十k至1M以下

1024程序员节 花了三个小时调试 集合近50种常用小工具 开源项目

Java 开源的Springboot 即时通讯 IM 聊天系统调试实战

调试个开源的 Java Springboot 微服务 架构的角色权限管理系统

Java 分布式架构的 开源的支付项目 调试实战

Java Springboot 开源微服务架构管理后台搭建实战

Java 开源的基于微服务 Spring cloud 快速开发脚手架调试实战

当然不止这些,感兴趣可以到我主页看看哦

相关推荐

软件测试|MySQL CROSS JOIN:交叉连接的详细解析

简介在MySQL数据库中,CROSSJOIN是一种用于生成两个或多个表的笛卡尔积的连接方法。CROSSJOIN不需要任何连接条件,它将左表的每一行与右表的每一行进行组合,从而生成一个包含所...

「MySQL笔记」left join-on-and 与 left join-on-where 的区别

1.摘要关于这两种写法的重要知识点摘要如下:left-join时,即使有相同的查询条件,二者的查询结果集也不同,原因是优先级导致的,on的优先级比where高on-and是进行韦恩运算连接...

MySQL中的JOIN——联合查询的基本语法

MySQL中的JOIN指令用来将两个或多个表中的数据进行联合查询,根据连接条件来匹配记录,从而得到需要的结果集。在MySQL中,常见的JOIN类型包括INNERJOIN、LEFTJOIN和RIGH...

MySQL 中的 CROSS JOIN:强大的连接工具

CROSSJOIN在MySQL里是一种挺特别的连接操作,它能弄出连接表的笛卡尔积。这就是说,要是表A有m行,表B有n行,那ACROSSJOINB的结果就会有m*n...

大厂必问:MySQL 三表 JOIN 操作的解析与性能优化,效率又如何?

大厂必问:MySQL三表JOIN操作的解析与性能优化策略,效率又如何?点击关注,开启技术之旅!大家好,这里是互联网技术学堂,无论你是一名程序员、设计师、还是对技术充满好奇心的普通人,都欢迎你加入...

面试题:MySQL 的 JOIN 查询优化(mysql查询优化方法)

MySQL的JOIN查询优化是提升数据库性能的关键环节。以下是综合多个技术文档的核心优化策略,按优先级和实现难度分类:一、索引优化:性能提升的基础为连接字段建立索引确保参与JOIN的列(通常...

Flink中处理维表关联技术实现路径

在Flink中处理维表关联大体氛围TableSQLLookupJoin和DataStream算子函数,主要技术实现路径:I.FlinkSQL/TableAPI中的Lookup...

深入剖析Zookeeper原理(一)整体设计

1.ZK集群架构设计与特性1.ZK集群架构设计:ZK主要分为三种角色:Leader(领导者):一个Zookeeper集群同一时间只会有一个实际工作的Leader,它会发起并维护与各Follwer及...

多种负载均衡算法及其Java代码实现

首先给大家介绍下什么是负载均衡负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。负载均衡,英...

一分钟了解SpringCloud中的ribbon到底是什么,原理是啥?

1.概念ribbon是一款客户端负载均衡器,用于微服务之间的负载均衡。首先,什么是客户端负载均衡?如图,ribbon可以通过注册中心获取服务列表,然后自己执行自己的负载均衡策略来决定要访问哪个微服务,...

Step by Step之腾讯云短信-验证码实践

在商城小程序和前端上线用了一阵子之后,用户提出了体验提升的需求,如忘记密码、绑定用户、快捷注册等,作为业界最佳实践的短信验证码登录、重置密码和注册等功能开发也就提上日程了,本文就以重置密码为例,将验证...

10分钟入门响应式:Springboot整合kafka实现reactive

Springboot引入Reactor已经有一段时间了,笔者潜伏在各种技术群里暗中观察发现,好像scala圈子的同仁们,似乎对响应式更热衷一点。也许是因为他们对fp理解的更深吧,所以领悟起来障碍性更少...

使用java随机生成有个性的用户名,LOL地名+水浒传,合计2808个

*随机生成用户名*取水浒传108好汉名字*取LOL地名26个,组合而成*一共可以生成2808个不同特色的用户名如果你在上网的时候,用户名难取的话,这里有很多可选择的用户名,现提供100个...

深入理解Math.random()的概率分布特性

直接上源码/***Returnsa{@codedouble}valuewithapositivesign,*返回一个带符号的double类型的数字,说人话就是返回一个非负...

编程英文 - 创建/生成/构建 (create/generate/build)

在软件开发中,create、generate和build这三个词经常被用到,它们都与"创造"或"产生"某些东西有关,但在具体使用场景和含义上有所不同。基本含义creat...

取消回复欢迎 发表评论: