想用 Go/Kafka/Redis/Mongo 做一个 IM 系统

2019-07-20 10:41:34 +08:00
 tbss

技术栈 Go/Kafka/Redis/Mongo 不知此方案是否成熟 能否满足轻量级的 IM 系统 包含群聊

6899 次点击
所在节点    Go 编程语言
27 条回复
darkweb
2019-07-20 11:07:47 +08:00
做吧 加油
polebug
2019-07-20 12:41:18 +08:00
为什么要用 mongo...
richzhu
2019-07-20 13:18:00 +08:00
可以带我一个吗?我是 Go 新人,给我点边边角角的活就好,不收钱只收反馈,告诉我代码哪里有需要改进的地方
securityCoding
2019-07-20 13:23:47 +08:00
可以看看 goim , B 站的架构师开源的
guyeu
2019-07-20 14:08:52 +08:00
这技术栈我也有。。。
niubee1
2019-07-20 14:11:54 +08:00
老实说, 用这个架构你根本没有这么多机器去撑连接数
lihongjie0209
2019-07-20 14:24:34 +08:00
"Go/Kafka/Redis/Mongo"

"能否满足轻量级的 IM 系统"

自己想想如果你开发出来要部署的话需要多少机器, kafaka*3 redis*3 mongodb*3, 光存储这一块就最少需要 3 台机器, 而且只会更多.

一个光部署就需要 3 个中间件, 3 台以上服务器的软件怎么可以被称为轻量呢?
misaka19000
2019-07-20 14:26:14 +08:00
你问可不可以?那当然是可以的
liulaomo
2019-07-20 15:09:32 +08:00
Kafka 太耗内存,nats 要好很多。Mongo 的必要性也不是很大。

其实只用 redis 就行,redis 5 已经支持 stream 了。
tbss
2019-07-20 16:54:17 +08:00
@polebug 需要一个关系数据库的一种替代
laravel
2019-07-20 18:25:07 +08:00
gopush-cluster、goim 我学 go 语言的时候经常看他们的代码
iamJack
2019-07-20 18:40:08 +08:00
@misaka19000 7 月加急名单
Leigg
2019-07-20 21:22:02 +08:00
最近也在构思一个 im 框架,用 ws,先看看别人的架构是怎样的,比如怎样支持海量连接数 /私聊 /群聊,怎样方便集群部署快速提高性能等等
Immortal
2019-07-20 21:28:19 +08:00
我也一直在想这个。。但一直没去做 感觉自己功力不够 期待楼主分享
pubby
2019-07-20 22:19:15 +08:00
最近刚做了一套
Go/beanstalkd/redis/mysql
ws 接入支持分布式部署
niubee1
2019-07-20 23:29:26 +08:00
呵呵, 都是老套路, 不搞一堆机器都跑不起来的, 自己玩太重(太贵),公司拿来用的话, 你是要怼微信? Slack ?拿投资了么?没投资服务器的钱都花不起吧。
crossoverJie
2019-07-20 23:57:20 +08:00
@Leigg #13 用 Java 实现过一个,可以参考下。

https://github.com/crossoverJie/cim
python
2019-07-21 01:06:50 +08:00
最近写了个单机客服系统,用的 Go,MySQL,Redis
STRRL
2019-07-21 01:50:47 +08:00
先明确要实现什么功能 再考虑用什么中间件
脱离实际需求谈组件都是耍流氓
laminux29
2019-07-21 03:18:13 +08:00
题主其实就是喜欢 Go/Kafka/Redis/Mongo 这一套技术栈,想凭借兴趣,用这一套东西,做个 IM 玩具,来玩玩罢了。

对于这种情况,建议大家支持鼓励他。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/584611

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX