可以用数据库实现进程间的通信么?

2018-08-02 12:05:41 +08:00
 koc

一个进程往数据库里写东西一个读,比如某某任务完成了就把某个值写成 1。 这样的做法有什么利弊呢? 除此之外还有什么其他的方法呢?

2283 次点击
所在节点    问与答
9 条回复
wujichao
2018-08-02 13:02:34 +08:00
感觉杀鸡用牛刀
wwqgtxx
2018-08-02 13:17:51 +08:00
用 redis 做进程间通讯的倒是不少,最大的好处是后期容易挂物理机迁移
AllOfMe
2018-08-02 13:51:59 +08:00
为什么不直接用文件存储呢?数据库消耗比较大
fiht
2018-08-02 14:12:07 +08:00
可以,redis 就可以用来做这个。
更多的用的是消息队列( message queue )
petelin
2018-08-02 14:34:30 +08:00
管道了解一下, 本地 socket 了解一下
yidinghe
2018-08-02 14:35:30 +08:00
成本高,相应慢,依赖于数据库稳定性和性能
eslizn
2018-08-02 15:58:56 +08:00
可以,但是推荐用共享内存
picture2200
2018-08-02 16:16:18 +08:00
我司很多流程系统都会如此,优势就是简单,各层次开发人员都容易掌握,后面查询也比较方便,因为各种角色都会会点 SQL,跟各种工具集成也方便。缺点就是只能做并发要求不高且模式不复杂的地方。

我司也用 rabbitmq,主要用在并发较高或者模式复杂的地方,当然架构复杂性就上去了。

一句话,看自己的场景选择最合适,如果是持续开发的项目,建议根据状况来适度升级架构。最初我司一个原始系统用的是 DB,并发上去后还是死磕原来的架构,最后反而搞得复杂无比,翻掉重新用 rabbitmq 设计了。
tilv37
2018-08-02 16:53:21 +08:00
socket 可以

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

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

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

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

© 2021 V2EX