栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

lua-canal实现广告缓存-畅购学习day04supplement

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

lua-canal实现广告缓存-畅购学习day04supplement

1.lua解决高并发问题,nginx可直接从redis和mysql拿数据

用户访问页面时 ,要经过广告活动微服务从mysql获取照片等资源,当大量刷网页请求时,会不断请求mysql拿数据,并发量大了,mysql会挂,解决方法加个redis。

但是Java代码是放在tomcat里,tomcat最好的并发量是上千,并发量高了后,tomcat也会挂,因此如果换个可以高并发的服务器nginx(最高并发量5w),openresty(里面包含nginx和lua函数库)可以达到10w以上。nginx和openresty又称http服务器、web服务器,只能处理静态请求,不能处理动态页面,例如nginx不能直接连接mysql获取数据,一般得通过java连接数据库获取数据,但是java要部署到tomcat,tomcat并发量不高,为了解决这个问题使用lua嵌入脚本语言,于是nginx可以直接连redis,直接连mysql获取数据。解决方式:多级缓存

2.nginx限流

nginx提供两种限流的方式:

  • 一是控制速率  -漏桶算法实现控制速率限流

  • 二是控制并发连接数 -利用连接数限制 某一个用户的ip连接的数量来控制流量

3.Canal实现同步

canal可以用来监控数据库数据的变化,从而获得新增数据,或者修改的数据。

 master-slave:master数据库将数据的变化记录在Binary log中,slave从Binary log获取变化记录,更新数据。canal模拟slave实现数据同步

 canal-server伪装成slave通过binlog与mysql进行数据同步,canal-client监听canal-server,如果canal-server数据变化则将最新的数据存储到redis中(canal-client不需要连数据库,直接通过feign调用相应微服务查就行,因为可能不能微服务连接的是不同的数据库,如果用canal-client连接数据库则可能要连好多个,没必要)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/939344.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号