集合 swoole 的框架设计

为了减少理解度,我尽量的从源头开始引入

1. nsq

案例中是使用 swoole 结合一个php 框架实现的是 NSQ 订阅功能。

启动命令:

sudo bash /www/webserver/bin/swoole.sh start nsq adminexport

解释上面一个指令,使用 bash 执行一个项目中的脚本。

start 对应启动命令
nsq : 代表对应使用NSQ 服务
adminexport : 对应的是NSQ 的topic

脚本的本质,通过框架的入口文件,根据传参,进入到的不同的消息中间件,及对应的服务

php 订阅

AdminexportService 继承封装好的 SwooleService。 在init方法中,初始化 swoole服务。并且注册回调函数。

AdminexportService 在重写的 swooleWorkerStart 回调函数中,实现了NSQ 的订阅功能

NSQ 消息的处理

  1. 简单封装了重复消息的判断
  2. requeue 没有消费消息的重新投递

3. 引入 swoole

就是构造方法引入 swoole 的实例化
同时,重写 workerStart 的方法。

所以当执行脚本的时候,也就是启动了 对应的swoole 服务。启动了订阅者的客户端。
不断的消费来自nsq topic 的消息

看吧,swoole 其实也很简单。 把它当做一个工具类,拿来用就可以了。 在实现的时候引入它,通过 WorkerStart 处理分发的消息即可。

当然更好的是使用协程。
另外吹一波,协程就是厉害

以上是文章全部内容,有需要学习交流的友人请加入交流群的咱们一起,有问题一起交流,一起进步!前提是你是学技术的。感谢阅读!

点此加入该群

最新文章

  1. css小知识之伪元素
  2. Effective C++ -----条款43:学习处理模板化基类内的名称
  3. linux C 快速排序法
  4. Property type 'id<tabBarDelegate>' is incompatible with type 'id<UITabBarDelegate> _Nullable' inherited from 'UITabBar'
  5. 习题3.10 约瑟夫环 josephus问题
  6. 【原创】JPEG图像密写研究(二) 哈夫曼树的建立
  7. 深入理解计算机系统之旅(四)处理器(CPU)的体系结构
  8. 微渠道发展 BAE交通运输平台和java呼声,微信mysql数据库开发实例 --图文开发教程
  9. ZOJ 3923 Handshakes
  10. vim配置强悍来袭
  11. istio入门(00)istio的学习资源
  12. java创建线程
  13. Javascript之高级数组API的使用实例
  14. mybatis 查询单个对象,结果集类型一定要明确
  15. Codeforces Round #510 (Div. 2)(A)
  16. PyCharm 新建文件时默认添加作者时间等
  17. Hbuild开发App入门
  18. Web服务器(容器)请求常见的错误及其解决方法
  19. eclipse手动build整个project
  20. Hadoop源码分析之Configuration

热门文章

  1. ORACLE 12.2RAC之问题 ora.chad OFFLINE
  2. 表单生成器(Form Builder)之mongodb表单数据查询——统计查询求和
  3. Python+Unittest+Requests+PyMysql+HTMLReport 接口自动化框架
  4. R学习
  5. Tensorflow常用算数操作
  6. steamdb cookie
  7. 《推送开发全面盘点当前Android后台保活方案的真实运行效果》
  8. office2019专业版激活秘钥 激活码
  9. python __getattr__和 __getattribute__
  10. Thinkphp <= 5.0.10 缓存getshell复现