百万级即时通讯系统服务器框架

1概述

引用一段网上的描述:“InstantMessaging(即时通讯、实时传讯)的缩写是IM,这是一种可以让使用者在网络上建立某种私人聊天室(chatroom)的实时通讯服务。目前在互联网上受欢迎的即时通讯软件包括QQ、百度HI新浪UC、MSN Messenger等。“

2服务器

2.1系统框架

下面所有服务器组件:

内存DB:主要存储人员状态,服务器负载信息

人员信息


人员ID


人员状态


所在逻辑服务器IP


所在逻辑服务器port


1


在线


192.168.1.12


1111


2


在线


192.168.1.11


1111

服务器信息


服务器ID


服务器类型


内部通信IP


内部通信器port


外部IP


外部PORT


当前负载


最大负载


1


1


192.168.1.12


1111


192.168.1.12


1111


3


300

服务器类型:

1 代表逻辑服务器

2 代表音视频

3 代表聊天服务器

4 代表群聊服务器

中心服务器 主要功能维护每个单独服务器的状态,以及即时调整负载,并且清理内存DB服务器负载信息等等

DBServer、DB(做负载)以下为简图

DB使用负载服务器具体方案待定。

主要功能处理登录时候拉去信息的压力,缓解DB读取和存入压力。

OfflineMsgDBserverr、DB(做负载)以下为简图

DB使用负载服务器具体方案待定。

主要功能存入离线消息和拉去离线消息,缓解DB读取和存入压力。

登录网关服务器

主要是每个客户端第一次连接后返回一个逻辑服务器,没有其他逻辑。并发很大,这个都是短连接。登录网关的的逻辑负载通过内存db获得 ,没30苗调整一次。

 

逻辑服务器

主要处理登录和聊天等

1.      登录过程

客户端从网关服务器获得逻辑服务器IP和PORT。发送登录消息,内存数据通过相应算法找到压力较小DBserver获取登录信息。然后返回给客户端组织结构,并且向fflineMsgDBserver发送获取离线消息。最后想内存DB更新人员状态以及所在服务器信息。

2.      聊天消息(跨服务)

用户1 登录在逻辑服务器A上

用户2登录在逻辑服务器B上

用户1发起聊天发送到 逻辑A服务器上,逻辑服务器A通过内存DB找到用户2所在服务如果未找到 ,作为离线消息。如果找到向相应服务器发送消息。并且转发到用户2手上。

聊天服务器、群组服务器等基本逻辑相同

用户1 登录在逻辑服务器A上

用户2登录在逻辑服务器B上

 

       用户1发起聊天  通过逻辑服务器A找到一个聊天服务 发送给用户1。用户1发送消息到聊天服务器,聊天服务器通过内存DB找到用户B信息发送到逻辑服务器B上。用户B收到消息。并且连接到同一个聊天服务器上配对。至此两个用户全部拉到一个服务器上了。

 

图片服务器:略

音视频服务器:

原则上能用P2P绝对用P2P,不能点对点的。走聊天的类似流程完成把两个用户拉到一个服务器上!!

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net

原文地址:https://www.cnblogs.com/sjwudhwhhw/p/10441807.html

时间: 2024-10-09 11:25:56

百万级即时通讯系统服务器框架的相关文章

视酷即时通讯系统应用源码 V1.0

视酷即时通讯系统(原创),成熟稳定,拥有和微信一样强大的功能不再是梦,节省几个月研发时间迅速融合进项目中: 1.首家支持聊天室群聊 2.支持和微信一样的语音聊天,可以显示时长.未读状态,自动轮播未读语音:     3.支持发送图片.表情.GIF动画表情等:     4.数据库分库分表,速度极快,界面细节处理优美,bug极少.     5.另有注册用户.用户列表.加好友.好友列表等功能.     6.实现了发消息后,如接收方不在线,除了离线消息外,会自动推送通知,留了推送接口    7.安卓端和苹

【实战】如何亲手搭建一个分布式 IM(即时通讯) 系统

前言 老读者应该还记得我之前分享过一篇<设计一个百万级的消息推送系统>:虽然我在文中有贴一些伪代码,依然有些朋友希望能直接分享一些可以运行的源码:这么久了是时候把坑填上了. 目录结构: 本文较长,高能预警:带好瓜子板凳. 于是在之前的基础上我完善了一些内容,先来看看这个项目的介绍吧: CIM(CROSS-IM) 一款面向开发者的 IM(即时通讯)系统:同时提供了一些组件帮助开发者构建一款属于自己可水平扩展的 IM . 借助 CIM 你可以实现以下需求: IM 即时通讯系统. 适用于 APP 的

我的即时通讯系统发布前,先小秀一下

一.开发概要: 开发人员:本人 联系电话:18667102122 开发人数:1人 版权所有:杭州云寻觅网络科技有限公司 开发周期:2014-05-27 至今 备注:就一个人开发的,不要总是拿这个做了2,3个月的东西,跟几千人做了10多年的产品去比较,没有可比性.   所以比较的时候希望大家别失去理智! 二.架构及概述 1.总体架构图 2.服务端功能模块图 3.客户端功能模块图 4.客户端浏览器组件功能模块图 三.组成文件: 服务端:ImServer_5_0_0.exe 大小 88.6MB(含jd

GGTalk ——C#开源即时通讯系统

http://www.cnblogs.com/justnow/ GGTalk ——C#开源即时通讯系统 下载中心 GGTalk(简称GG)是可在广域网部署运行的QQ高仿版,2013.8.7发布GG V1.0版本,至今最新是5.5版本,关于GG更详细的介绍,可以查看 可在广域网部署运行的QQ高仿版 -- GGTalk总览. GGMeeting是可在广域网部署运行的视频会议系统Demo,2015.05.11发布V1.0版本,关于GGMeeting更详细的介绍,可以查看 打造自己的视频会议系统 GGM

转:移动端即时通讯系统实践

移动端即时通讯系统实践 2016-04-19 廖锦幸 iOS开发探索 在信息高度发达的今天,IM基本上已经成为了一个社交应用的标配.本文将以一个移动开发者的视角,探讨移动端即时通讯系统的技术选型和关键要点. 1 即时通讯系统的需求 任何技术系统都来源于真实业务的需求,做架构设计之前应该先设定好目标.作为一个即时通讯应用,可以参考微信的使用体验,你需要保证以下特性: 1,实时.消息的接收端应该能够及时收到并处理消息. 2,不丢.需要保证所有的消息都顺利送达. 3,不重.重复的消息对用户来说是一种糟

easy-im:一款基于netty的即时通讯系统

介绍 easy-im是面向开发者的一款轻量级.开箱即用的即时通讯系统,帮助开发者快速搭建消息推送等功能. 基于easy-im,你可以快速实现以下功能: + 聊天软件 + IoT消息推送 基本用法 项目分为easy-im-client.easy-im-server.easy-im-common三个模块. 服务端: 执行mvn package后生成easy-im-server.tar.gz,解压后至./lib目录执行命令: java -jar -Dport=8888 easy-im-server-1

区块链资产交易所搭建IM即时通讯系统开发

区块链资产交易所搭建IM即时通讯系统开发 [本文由源中瑞涂先生编辑/交易所开发VX搜索:ruiec999]随着数字资产交易市场的演进和机构投资者的参与,交易所领域创业面临的合规.安全.专业.透明等问题也逐渐成为其新的竞争力增长点.源中瑞业务涵盖:数字资产交易所开发.场外交易所开发.币币交易所开发.数字资产多币种钱包开发.数字资产抵押系统开发.IM即时通讯系统开发等各类区块链技术系统.(数字资产交易所:jy.ruiec.com)根据18年上半年全球各地交易所数量增长迅速,除传统中心化交易所以外,交

区块链IM即时通讯系统app开发,直播软件开发

区块链IM即时通讯系统是通过即时通讯技术来实现在线聊天.交流的系统软件.而区块链IM及时通讯系统则是一款集合了社交与钱包储存等多功能的一套系统. 区块链IM即时通讯开发 前面138中间2315后面3201 区块链IM即时通讯系统开发都有哪些优势呢? 1.利用本身的社群社交优势为项目方提供强大的活动方案推广 2.区块链社交直播系统,可以时时进行直播教学或者直播讲解新品,这便可以方便与客户面对面讲解,也可以很好的进行吸粉. 3.专业数字资产交易所交易功能,沟通及时,快速交易. 4.深度结合商城的模式

通证经济项目区块链社交im即时通讯系统开发

首先我们要明白"TOKEN"并不是代币的名词,所以我们常说的通证经济项目也不仅仅只是发行代币.这一点我们应该有所了解.通证经济目前是我们常常能够听到的一个名词,但它究竟是何意思呢?即时通讯系统开发微ruiec762679手机138-2311-5027通证经济简单的可以理解为在这个"大家庭"中,每个人的能力都是有限的,可能我擅长这个,你擅长这个,因此我们能够把所有人的力量集中在一个项目中,有钱的出钱,有力的出力,在这个过程中,只要你出过一份力量,系统就会根据你出的力量