不是很懂redis,有个关于架构的问题问一下

qq_43042352 2019-02-15 09:35:19
公司项目是类似于群晖做linux服务相关的,
因为涉及太多linux命令,原来项目linux操作部份是直接php调shell命令完成 ,

现在公司想重构一下, 用c++来处理linux部份,还想加个redis, 用redis的发布订阅功能来解耦php与c++,

最终打算

php做请求转发,需要调linux命令时就向redis的c++频道发布操作参数, c++订阅收到处理后向php频道发布操作结果,php收到再记录数据库

我感觉这样设计的话,因为php请求都是操作命令后马上向前端返回数据,这样就导致需要发布给c++后写长连接等待结果才返回前端。

不能很清楚redis的发布订阅这样设计合适吗,不知道再会有什么隐患,各位有经验的吧友,这样设计有问题吗。
...全文
194 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
黄袍披身 2019-02-16
  • 打赏
  • 举报
回复
一个请求要跑很久吗 之前也接触过C++的服务器端的东西,这个逻辑其实不是要用什么服务器端的问题 而是C++如果快速的响应请求并且返回结果.也就是异步应该在C++处理,处理结束后怎么去通知前端输出给用户。
qq_43042352 2019-02-15
  • 打赏
  • 举报
回复
引用 4 楼 _xiaoxiao程序员 的回复:
谢邀。可以考虑异步通知的方式吗,PHP在执行完写参数后,立刻返回结果告知等待,C++执行完成后再CallBack
php订阅到信息后已经找不到http对应返回了结果 异步的话只能做保存数据库的操作等不用与前端交互的操作 可前端请求大部份都是需要马上获取结果的 非要异步只能再前端定时轮询结果,这样更麻烦
异次元程序员 2019-02-15
  • 打赏
  • 举报
回复
谢邀。可以考虑异步通知的方式吗,PHP在执行完写参数后,立刻返回结果告知等待,C++执行完成后再CallBack
qq_43042352 2019-02-15
  • 打赏
  • 举报
回复
引用 2 楼 黄袍披身 的回复:
能用PHP 调用SHELL处理的东西要用到C++来处理么?我建议你考虑其他语言,开发成本怎么样都比C++舒坦。
我是做php的, C++成本就不是我考虑的了 换成其它语言处理linux命令,也可能提出要搞个redis来解耦 公司有两个系统,1个centos6, 1个centos7,就改了前端 据说是版本差异会影响到原先shell的命令, 再加上一个很大原因招不到运维的人:), 领导就打算用C++来封装一下shell命令, 再这样背景下又要加入redis来解耦,redis发布订阅好像没有同步功能, 导致我这边php发个指令都需要有个长链接等结果, 理论可以,但感觉有点怪。上网又找不到有这种例子, 不想搞特殊化,就过来请教下这样架构合适吗,总感觉有点坑
黄袍披身 2019-02-15
  • 打赏
  • 举报
回复
能用PHP 调用SHELL处理的东西要用到C++来处理么?我建议你考虑其他语言,开发成本怎么样都比C++舒坦。
chujian270 2019-02-15
  • 打赏
  • 举报
回复
mark,关注这问题

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧