Canal广告缓存实现(工作队列模式)

缓存方式

把数据从mysql中拿出并存入redis

浏览器发送请求:http://192.168.200.128/addredis
请求执行mysql2redis.lua()这个lua脚本
nginx调用lua脚本,lua脚本来操作数据库,redis,nginx内存空间。

把数据从redis非关系型数据库中拿出存入nginx开辟的缓存空间

类似操作系统原理中的快表和慢表

广告缓存更新实现

实现原理


1)MySql内部【广告表】发送数据变化,数据监控微服务根据canal服务获取到最新更新的数据。
2)提取数据监控微服务广告位置key(position值),并且把这个值发到rabbitmq
3)rabbitmq接收到消息并保存到自己内存中,运营微服务rabbitmq内存中监听到消息(position值)。
4)运营微服务调用nginx服务器更新redis数据功能(由lua脚本完成)。
5)redis数据和nginx服务器缓存区域更新为最新修改的广告内容。

数据监控微服务实现


只有一个消费者接收到消息

运营微服务

posted @ 2020-04-15 02:49  卯毛  阅读(310)  评论(0编辑  收藏  举报