免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: mik
打印 上一主题 下一主题

大家讨论一下 IM 的实现结构和方案 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-07-06 14:23 |只看该作者
原帖由 xhl 于 2009-7-6 14:19 发表



协议是根据需求来的, 加密如果不考虑效率, 用tls就可以了,

考虑效率, 是动态换的, 就是每几天, 就update 一下加密模块, 只有通过这个方法, 才能解决被挂。

呵呵。




[ 本帖最后由 鬼才小科 于 2009-7-6 14:57 编辑 ]

论坛徽章:
0
12 [报告]
发表于 2009-07-06 15:05 |只看该作者
原帖由 xhl 于 2009-7-6 14:05 发表
我给你举个最简单的好友系统分区的设计把。


假设有两个大区, A, B,  用户注册的时候, 按一定规则, 被分配到不同的区内了.

现在有两个用户a, b, 他们分别在A, B内, 现在当a, b想户相加好朋友的时候, ...


这个和那个什么DHT  KAD 什么的有什么关系

论坛徽章:
0
13 [报告]
发表于 2009-07-06 15:18 |只看该作者
原帖由 aobai 于 2009-7-6 15:05 发表


这个和那个什么DHT  KAD 什么的有什么关系



dht kad 是分布hash表, 是用来做广义p2p用的,  主要就是个k桶算法为基础, 在public上用最简单的方法根据一个guid找到一个对应的资源。

我说的分布系统, 主要是db跟程序的分布, 不是只p2p的那个意思。

因为当用户到达一定数量及的时候, 不可能靠中心server来维护, db也承受不起, 所以要根据用户的规则, db分库, 分表, 程序分区。

但这样做还要保证同一个db, 同一组server环境下同样的服务, 就实现起来难度很大了。

论坛徽章:
0
14 [报告]
发表于 2009-07-06 15:24 |只看该作者
原帖由 xhl 于 2009-7-6 15:18 发表



dht kad 是分布hash表, 是用来做广义p2p用的,  主要就是个k桶算法为基础, 在public上用最简单的方法根据一个guid找到一个对应的资源。

我说的分布系统, 主要是db跟程序的分布, 不是只p2p的那个意 ...

集群不光是im系统所需要的,大型的网络应用都能用到集群系统。

论坛徽章:
0
15 [报告]
发表于 2009-07-06 15:33 |只看该作者
恩, 但我接触的领域里, im跟网络游戏的集群系统是最复杂的, 因为他们都是重逻辑类型的应用。 而且最关键的是 "Instant" 这个会对集群带来很大挑战。。。

我理解的instant 就是notify, 就是是服务触发, 不是用户触发。

所以大型im 或者网络游戏的集群或者叫分区系统的实现难度, 远比web应用或则mail应用的集群要复杂的多。

这贴有些跑题了, 也是因为最近工作闲, 跑来灌水。

lz 只是想了解im如何做,其实最简单的, 先做个tcp relay的, 然后在讨论结构, 如果说结构, jabber  那套也还可以, gtalk是用它做的

关于jabber的资料, 到处都是。开放原代码的server也有很多版本, java, c++的都有。

[ 本帖最后由 xhl 于 2009-7-6 15:49 编辑 ]

论坛徽章:
0
16 [报告]
发表于 2009-07-06 16:06 |只看该作者

论坛徽章:
0
17 [报告]
发表于 2009-07-06 16:17 |只看该作者
分布式就是复杂

论坛徽章:
0
18 [报告]
发表于 2009-07-06 16:32 |只看该作者
原帖由 xhl 于 2009-7-6 15:33 发表
恩, 但我接触的领域里, im跟网络游戏的集群系统是最复杂的, 因为他们都是重逻辑类型的应用。 而且最关键的是 "Instant" 这个会对集群带来很大挑战。。。

我理解的instant 就是notify, 就是是服务触发, 不 ...


Instant 的确是个非常有挑战的问题,就我以前的开发,这个直接导致了很多设计让位于优化。
我不知道我理解得是不是和你一样只是表述不同,因为我觉得instant应该是对用户输入的响应和反馈,然后以及对该事件相关的个体的通知。
不知我理解得是否存在问题?

论坛徽章:
0
19 [报告]
发表于 2009-07-06 17:51 |只看该作者
原帖由 swxlion 于 2009-7-6 16:32 发表


Instant 的确是个非常有挑战的问题,就我以前的开发,这个直接导致了很多设计让位于优化。
我不知道我理解得是不是和你一样只是表述不同,因为我觉得instant应该是对用户输入的响应和反馈,然后以及对该事 ...


对牙, 我说的服务触发的意思是, 当a有状态变化的时候, b会收到这个变化的通知, 对于a, 可能是用户触发的, 但对于b, 是服务触发的。 因为b没做任何动作, 也会收到这个通知。

及时性系统与非及时性的系统的主要区别在于, b是否要主动去get才能获得这个通知。

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:53:172015亚冠之水原三星
日期:2015-06-02 16:34:202015年亚冠纪念徽章
日期:2015-10-19 18:13:37程序设计版块每日发帖之星
日期:2015-11-08 06:20:00
20 [报告]
发表于 2009-07-06 18:45 |只看该作者
原帖由 xhl 于 2009-7-6 14:05 发表
我给你举个最简单的好友系统分区的设计把。


假设有两个大区, A, B,  用户注册的时候, 按一定规则, 被分配到不同的区内了.

现在有两个用户a, b, 他们分别在A, B内, 现在当a, b想户相加好朋友的时候, ...


如果一个用户在A区,他的经常通信的好友都在B区, 会不会把它迁移到B区呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP