项目性能优化经验--ZY(三)
- - 行业应用 - ITeye博客读写分离,不是想做就做的,说分就分的,随便找个中间件把请求一转发就OK的. 比如,在项目中有个模块是购物车(现在的电子商务一般都需要存储购物车内容,因为存在PC,MOBILE等不同的终端),客户先点击添加购物车,然后结算(这时候会做个判断购物车是否有商品),在大并发情况下,mysql的读库和写库的同步(beanlog)严重的delay,导致购物车一直判断为空,订单无法下.
1. 关于读写分离
读写分离,不是想做就做的,说分就分的,随便找个中间件把请求一转发就OK的
比如,在项目中有个模块是购物车(现在的电子商务一般都需要存储购物车内容,因为存在PC,MOBILE等不同的终端),客户先点击添加购物车,然后结算(这时候会做个判断购物车是否有商品),在大并发情况下,mysql的读库和写库的同步(beanlog)严重的delay,导致购物车一直判断为空,订单无法下
最后的解决方式是:从前台直接把购物车发到后台,不用验证了
读写分离是需要策略的,是需要根据需求来区分,哪些实时性很强的数据(可以一个库),哪些实时性不强的数据(支持分离),项目用了ameoba,应该是支持根据路径来转发不同的请求
2. 最大的问题,网络及硬件
之前说道的其实都是代码,逻辑,db的问题,这些其实都是好解决的,因为毕竟都是非常成熟的技术,也没有很大的性能要求,过得去就行了
网络才是最难搞的
见组网图:
出现的一个问题就是,网络节点太多,一次从sd的登陆,居然跳转了30多个节点,然后登陆整个很慢,带宽网速感觉都是问题
系统拓扑图:
接下来更多的是,Ngnix调优配置,mysql配置调优,日志监控等