首页
下载
文档
问答社区
视频
捐赠
源代码
AI 助理
赞助商
CRMEB
Apipost
腾讯云
微擎
禅道
51Talk
商业产品
Swoole AI 智能文档翻译器
Swoole-Compiler PHP 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
为什么不只把swoole当作socket服务器用?
最近想做个socket服务器,看了下文档和论坛 , 不知道为什么看起来好像大伙都是把业务逻辑写到socket里面 还没具体实现我要做的东西,只是画了个图 不过。。这论坛居然不能传图片。。 大致流程如此 用户-> lvs -> socket 服务器层 -> 队列层(任务队列) -> 任务处理层 -> 队列层(结果队列) -> 转发层 -> socket 服务器层 -> 用户 socket服务器层只需要保证稳定的长连接即可 业务逻辑让后面处理不就好了? 把业务逻辑写到socket server的task中跑。这种强耦合,后期完全没办法维护的吧
发布于7年前 · 0 次浏览 · 来自
提问
I
IT人士
最近想做个socket服务器,看了下文档和论坛 , 不知道为什么看起来好像大伙都是把业务逻辑写到socket里面 还没具体实现我要做的东西,只是画了个图 不过。。这论坛居然不能传图片。。 大致流程如此 用户-> lvs -> socket 服务器层 -> 队列层(任务队列) -> 任务处理层 -> 队列层(结果队列) -> 转发层 -> socket 服务器层 -> 用户 socket服务器层只需要保证稳定的长连接即可 业务逻辑让后面处理不就好了? 把业务逻辑写到socket server的task中跑。这种强耦合,后期完全没办法维护的吧
赞
0
分享
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
评论
2017-05-31
V
Victor
你的思路是对的,从架构层面全部使用socket通信是非常好的选择。`task`功能设计之初并不是为了执行业务逻辑。实际上`task`是为了辅助Swoole的异步Worker完成一些`慢速的`的代码。如 foreach大循环、广播、必须要阻塞的任务等等。但在实际的服务器程序场景中,`Task`承担了更多的责任,比如使用Task做为任务分配、Task实现Redis代理存储功能、Task实现应用程序内的`Map-Reduce` 如你所说业务逻辑处理使用消息队列构造生产者消费者模型是很好的方案。一个`GateW
赞
0
回复
微信公众号
热门内容
暂无回复的问答
- CodeGalaxy K3s 轻量集群节点之间如何实现负载均衡
- 关于openssl CURL WARNING swSSL_connect: SSL_connect(fd=69) failed. Error: error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small[1|394]
- 多个模型如何进行事务异常回退?
- websocket开启wss报错
- 协程tcp服务器如何使用多进程?recv()方法接收信息,打印出来的pid一直是同一个。没用使用到多进程啊。