给点建议!开源项目架构选择!仿腾讯IM后端项目!InChat!
希望各位猿类给点建议或者提一些新的方案思路!
前言
小弟无心插柳的聊天项目InChat(一开始叫SBToNettyChat)在广大互联网朋友的积极推动下,慢慢步入正轨,目前2个月(一周4小时开发时间的速度····)迭代着,已经50Star,对于小弟也是很大的肯定,小弟今年7月开始在GitHub做开源,对于开源还不太了解,不过想借助这个InChat项目正式开启开源之路。
项目地址:https://github.com/UncleCatMy...
项目的核心目标也做了转变,目前的大方向就是仿造腾讯IM服务端,以接口的形式提供给中小型团队做IM服务。项目核心是基于Netty改造的。
项目中还添加了Iot的物联网通信功能,这个不是本文重点就略过。
问题环境
项目预想环境:在用户量极大的情况下,将InChat配置为多台服务器,集群的环境,则可能存在用户连接实例在不同的服务器上,则需要如何将Server-One的用户A 发的消息发给 Server-Two的用户B,单台服务器下的点对点发送是简单的,但是跨服务器的话,连接实例只能存放在本服务器中。
猜想一
这种是用到了分发器的思路
集群环境下多个用户在不同服务器登陆后,会将所用用户的登陆信息与服务器位置统一存放到Redis中,前端通过API调用,json格式A发送给B message时,由分发器去查询Redis中B的服务器是one还是two,然后向其中发送message
猜想二
使用消息队列,处理直接放到每台InChat中
接口服务器只负责生产投递消息
交流与问题
以上两种是我想到的方式,是否还有更好的形式,我会后期整理更新到项目中(开一个新的分支)
项目QQ群交流:628793702
给点建议!开源项目架构选择!仿腾讯IM后端项目!InChat!相关推荐
- antd 嵌套子表格_大型前端项目架构优化探索之路腾讯文档表格
腾讯文档表格是一个非常复杂的业务,它实现了传统 excel 的大部分核心功能,包括函数计算.条件格式.图表.智能分列等:除此之外还支持高效的多人协同编辑:它的代码量百万级别,启动也流程多达十几步.在前 ...
- T31项目架构选型方案
服务选型 曾经的技术选型 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GjyeLuSg-1636378253985)(C:\Users\Zyf\Desktop\T31 ...
- springcloud微服务项目架构搭建第一天
springcloud微服务项目架构搭建第一天 (一).项目简介 1.准备工作:idea创建springboot模板 2.后台应该涉及的技术(后期可能会有删改) Spring Framework 容器 ...
- Vue仿饿了么app项目总结
前言 这是我的第一个基于Vue项目的作品,目的是把之前的前端知识累积加上目前流行的前端框架,以项目的形式展示出来. 大家在学习Vue的时候,可以将此项目作为学习Vue框架的一个模板 Vue仿饿了么ap ...
- 项目结构设计 java_Java项目架构设计
传统项目架构设计问题 说明:由于单体项目将所有的模块都写到了一起,将来如果其中一个模块出了问题,将导致整个项目不能正常的运行! 分布式架构设计 分布式介绍 由于传统项目导致各个模块之间的耦合性较高,所 ...
- 宇贸电商二期-项目架构搭建
Hello,大家好,我是 Steafan ,本片博文为大家带来宇贸电商平台二期项目的架构搭建.在上篇博文中,我为大家介绍了宇贸电商平台二期需要演变的架构,以及二期需要实现的功能模块,那么接下来就让我们 ...
- Qt仿腾讯视频简易播放器 【源码开源】
Qt仿腾讯视频简易播放器1.0.0.0 开源 文章目录 Qt仿腾讯视频简易播放器1.0.0.0 开源 (一).控件介绍 (二).效果图 工程代码 Qt交流群 结尾 (一).控件介绍 Qt仿腾讯视频简易 ...
- 2021年数据库课设该怎么做?一个超市管理系统,简单的前后端分离项目,带你从概要设计走到项目发布!(Vue.js+SpringBoot+MybatisPlus)
由于本文格式原来是word,所以文中有些格式不太对.如果这篇文章对你有帮助,麻烦点赞评论一下谢谢!源码和word文档可私聊领取~ 目录 一.相关技术介绍 1.1 RDBMS: 1.2应用程序开发环境: ...
- 如何做一个自己的开源聊天项目?(仿微信)
篇幅较长,感谢阅读. 万事开头难 在我决定做开源是因为自身工作接触到大多数的项目都是基于开源大佬写的框架,自觉惭愧,工作以来一直忙于业务与功能实现,多多少少做过的几个项目也没能抽出部分好一点的功能业务 ...
最新文章
- 京东某女程序员求助:刚入职就意外怀孕,纠结还能不能过试用期?网友:职场女性太难!...
- ccna第十课 IGRP路由协议
- mac osx linux,Linux 、Mac OSX 常见问题 及 笔记
- SAP CRM附件上传的一种增强实现
- 西门子博图的FB块_西门子S7-300/400PLC OB-FB-FC-DB块介绍
- 使用Speedment 3.0.17及更高版本简化了事务
- 【youcans 的 OpenCV 例程200篇】125. 形态算法之提取连通分量
- 打包bat等文件成exe,双击运行不显示dos窗口,exe不报毒
- 程序员懂算法玩“淮安掼蛋”是否更有优势?
- ubuntu16.04 kinetic外接Intel Realsense D435i配置教程
- Python numpy基础知识
- android使用lombok_Android Studio 使用Lombok
- DAY8-打卡第八天-2018-1-18
- 如何快速清空一个文件内容
- 图像坐标球面投影_PostGIS空间数据库SRID背景知识 - 地理坐标系(球面坐标系)和投影坐标系(平面坐标系)...
- 为设计师写的色彩对比指南,让你真正了解色彩对比
- 基于DLP4500的结构光3DScan应用手册
- 手把手带你撸一个校园APP(四):APP功能设计及主页面框架
- Vuepress Reco主题备忘
- 重积分 | 第二类曲面积分投影法正负判断
热门文章
- 微信小程序android 校园班车乘车预约系统ssm+uniapp
- 移动端、后台管理、大屏可视化等项目rem适配(postcss-pxtorem、amfe-flexible)。已自测
- 大学生如何进行个人理财
- 混在中国,财富保值的必要性,读《金砖四国之梦:通向2050之路》有感
- 计算机组成原理作业1王诚,计算机组成原理 王诚 郭超峰 计算机组成第1章
- hrbust 1558 小背包(简单01背包)水坑
- 洛谷P3237 [HNOI2014]米特运输 题解
- 宋鸿兵 《货币战争》风暴制造者
- 帝国往昔--中国的附属国
- 2021年昆明师专附中高考成绩查询,云南省昆明市云南师范大学附属中学2020-2021学年高三高考适应性月考卷(一)语文试题...