本文出自头条号老王谈运维,转载请说明出处。
企业电商网站为了提高流量,往往经常开设秒杀活动,需要在几秒钟或者几分钟时间里承担几万甚至几十万的访问。高并发不仅对前端处理有要求,对后端一样有要求(例如,数据库),因此高并发的需求也是运维人员经常面对的一个问题。如何缓解该场景下的数据压力,并且给用户流畅舒适的访问体验呢?
这就是我们今天要说到的数据库读写分离技术了!
读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。
因为数据库的“写”(写10000条数据到oracle可能要3分钟)操作是比较耗时的。 但是数据库的“读”(从oracle读10000条数据可能只要5秒钟)操作非常迅速。
当业务对于数据库读与写的操作数量差距非常大时,为了避免数据库的写入影响查询的效率时,建议采用读写分离技术。
PS:数据库不一定要读写分离,如果程序使用数据库较多时,而更新少,查询多的情况下会考虑使用,利用数据库主从同步 ,可以减少数据库压力,提高性能。
读写分离带来的好处
在云计算的大环境下,企业多将自己的电商网站部署在云端。但是对于云使用不熟悉的同学,在网站秒杀活动开始后,往往会出现页面访问缓慢,页面丢失,或者用户无法下单付款的现象。同样都是使用RDS,为什么别人秒杀活动访问如此顺畅呢?
因为你忽略了云数据库本身自带的读写分离的功能,只需要在购买云数据库时开通服务即可。
“云”运维的坑点确实不少,特别对于刚刚使用云不熟悉云的同学来说,一方面会增加企业IT 开销,另一方面也会引发一些不必要的运维事故,影响业务正常运行。
推荐大家一个云运维工具——王教授,他是一个 SaaS 化的在线云计算管理及协作平台,你只需绑定对应云账号的AcessKey即可随时查看到该账户下所有资产状况,同时他还会对账号下资产“健康状况”做出诊断,并且给出优化建议。
例如:提示云服务器CPU使用率偏高
提示云数据库RDS存在慢查询,并且支出具体的存在慢SQL的语句
提示服务器出现的安全组变动,并且给出具体的变动“方向”
需要的同学可以查看工具地址使用:https://www.prof.wang/