之前没用过消息队列系统,第一次接触,目前在做一个API接口系统,考虑到接口调用频繁的问题,想采用队列机制实现, 环境PHP+Mysql+Redis/MongoDB。
目的:不实时操作Mysql数据库,而是进入Redis队列, 当满足条件(自定义条件,长度大小时间等)同步到Mysql。
问题1:Redis中存储数据结构如何设计? (我想的是队列key对应存储:库+表+SQL语句这些信息 )
问题2:触发方式如何选择?(我想到的:1、每次请求判断队列大小(条件成立则触发同步) 2、服务器后台脚本(定时同步) )
问题3:如果是队列KEY存储:库/表/sql语句这些信息,在数据同步时则需连接不同数据库,操作不同的表这种设计合理吗?
建议用专业的消息队列,https://www.aliyun.com/product/rocketmq?spm=5176.14414305.J_8058803260.385.3ec65960K5Guu8
问题1:第一个也行,不过不建议这样,最好还是保存具体和业务相关的数据,而不是直接的sql
问题2:触发方式如何选择,建议消费者端实现,也就是 服务器后台脚本
问题3:和问题1的处理方式有关系,但是不管怎么说还是把不同的业务分到不同的队列之中去
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/