zoukankan      html  css  js  c++  java
  • 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服务器缓存区域更新为最新修改的广告内容。

    数据监控微服务实现


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

    运营微服务

  • 相关阅读:
    git 常用命令速查表
    Git常用命令备忘
    display:inline-block
    JS 封装的结构关系
    IE6,7,8 CSS HACK
    JS 观察者模式
    JS 数组迭代方法
    JS 单例模式
    JS Closure 闭包
    Currying and Uncurrying Js
  • 原文地址:https://www.cnblogs.com/maomaodesu/p/12702746.html
Copyright © 2011-2022 走看看