随笔分类 -  亿级流量电商详情页系统实战

摘要:1、缓存预热 缓存冷启动,redis启动后,一点数据都没有,直接就对外提供服务了,mysql就裸奔 (1)提前给redis中灌入部分数据,再提供服务(2)肯定不可能将所有数据都写入redis,因为数据量太大了,第一耗费的时间太长了,第二根本redis容纳不下所有的数据(3)需要根据当天的具体访问情况 阅读全文
posted @ 2020-05-02 10:45 尐海爸爸 阅读(501) 评论(0) 推荐(0) 编辑
摘要:讲了手写了storm wordcount程序 蕴含了很多的知识点 (1)Spout(2)Bolt(3)OutputCollector,Declarer(4)Topology(5)设置worker,executor,task,流分组 storm的核心基本原理,基本的开发,学会了 storm集群部署,怎 阅读全文
posted @ 2020-05-02 10:39 尐海爸爸 阅读(226) 评论(0) 推荐(0) 编辑
摘要:整个三级缓存的架构已经走通了 我们还遇到一个问题,就是说,如果缓存服务在本地的ehcache中都读取不到数据,那就恩坑爹了 这个时候就意味着,需要重新到源头的服务中去拉去数据,拉取到数据之后,赶紧先给nginx的请求返回,同时将数据写入ehcache和redis中 分布式重建缓存的并发冲突问题 重建 阅读全文
posted @ 2020-04-27 20:24 尐海爸爸 阅读(350) 评论(0) 推荐(0) 编辑
摘要:分发层nginx,lua应用,会将商品id,商品店铺id,都转发到后端的应用nginx /usr/servers/nginx/sbin/nginx -s reload 1、应用nginx的lua脚本接收到请求 2、获取请求参数中的商品id,以及商品店铺id 3、根据商品id和商品店铺id,在ngin 阅读全文
posted @ 2020-04-27 00:48 尐海爸爸 阅读(470) 评论(0) 推荐(0) 编辑
摘要:大家可以自己按照上一讲讲解的内容,基于OpenResty在另外两台机器上都部署一下nginx+lua的开发环境 我已经在eshop-cache02和eshop-cache03上都部署好了 我这边的话呢,是打算用eshop-cache01和eshop-cache02作为应用层nginx服务器,用esh 阅读全文
posted @ 2020-04-26 22:54 尐海爸爸 阅读(338) 评论(0) 推荐(0) 编辑
摘要:我们这里玩儿nginx,全都会在nginx里去写lua脚本,因为我们需要自定义一些特殊的业务逻辑 比如说,流量分发,自己用lua去写分发的逻辑,在分发层nginx里去写的 再比如说,要用lua去写多级缓存架构存取的控制逻辑,在应用层nginx里去写的 后面还要做热点数据的自动降级机制,也是用lua脚 阅读全文
posted @ 2020-04-26 21:42 尐海爸爸 阅读(223) 评论(0) 推荐(0) 编辑
摘要:1、缓存命中率低 缓存数据生产服务那一层已经搞定了,相当于三层缓存架构中的本地堆缓存+redis分布式缓存都搞定了 就要来做三级缓存中的nginx那一层的缓存了 如果一般来说,你默认会部署多个nginx,在里面都会放一些缓存,就默认情况下,此时缓存命中率是比较低的 2、如何提升缓存命中率 分发层+应 阅读全文
posted @ 2020-04-26 20:38 尐海爸爸 阅读(202) 评论(0) 推荐(0) 编辑
摘要:多级缓存的架构 主要是用来解决什么样的数据的缓存的更新的啊??? 时效性不高的数据,比如一些商品的基本信息,如果发生了变更,假设在5分钟之后再更新到页面中,供用户观察到,也是ok的 时效性要求不高的数据,那么我们采取的是异步更新缓存的策略 时效性要求很高的数据,库存,采取的是数据库+缓存双写的技术方 阅读全文
posted @ 2020-04-25 17:35 尐海爸爸 阅读(192) 评论(0) 推荐(0) 编辑
摘要:之前给大家讲解过,多级缓存架构,缓存数据生产服务,监听各个数据源服务的数据变更的消息,得到消息之后,然后调用接口拉去数据 将拉去到的数据,写入本地ehcache缓存一份,spring boot整合,演示过 数据写入redis分布式缓存中一份,你不断的将数据写入redis,写入redis,然后redi 阅读全文
posted @ 2020-04-25 11:05 尐海爸爸 阅读(385) 评论(0) 推荐(0) 编辑
摘要:我们讲解过,咱们的整个缓存的技术方案,分成两块 第一块,是做实时性比较高的那块数据,比如说库存,销量之类的这种数据,我们采取的实时的缓存+数据库双写的技术方案,双写一致性保障的方案 第二块,是做实时性要求不高的数据,比如说商品的基本信息,等等,我们采取的是三级缓存架构的技术方案,就是说由一个专门的数 阅读全文
posted @ 2020-04-24 00:02 尐海爸爸 阅读(636) 评论(0) 推荐(0) 编辑
摘要:马上开始去开发业务系统 从哪一步开始做,从比较简单的那一块开始做,实时性要求比较高的那块数据的缓存去做 实时性比较高的数据缓存,选择的就是库存的服务 库存可能会修改,每次修改都要去更新这个缓存数据; 每次库存的数据,在缓存中一旦过期,或者是被清理掉了,前端的nginx服务都会发送请求给库存服务,去获 阅读全文
posted @ 2020-04-21 20:47 尐海爸爸 阅读(321) 评论(0) 推荐(0) 编辑
摘要:最经典的缓存+数据库读写的模式,cache aside pattern 1、Cache Aside Pattern (1)读的时候,先读缓存,缓存没有的话,那么就读数据库,然后取出数据后放入缓存,同时返回响应 (2)更新的时候,先删除缓存,然后再更新数据库 2、为什么是删除缓存,而不是更新缓存呢? 阅读全文
posted @ 2020-04-21 20:13 尐海爸爸 阅读(187) 评论(0) 推荐(0) 编辑
摘要:我们之前的三十讲,主要是在讲解redis如何支撑海量数据、高并发读写、高可用服务的架构,redis架构 redis架构,在我们的真正类似商品详情页读高并发的系统中,redis就是底层的缓存存储的支持 从这一讲开始,我们正式开始做业务系统的开发 亿级流量以上的电商网站的商品详情页的系统,商品详情页系统 阅读全文
posted @ 2020-04-21 20:05 尐海爸爸 阅读(635) 评论(0) 推荐(0) 编辑
摘要:1、讲解redis是为了什么? topic:高并发、亿级流量、高性能、海量数据的场景,电商网站的商品详情页系统的缓存架构 商品详情页系统,大型电商网站,会有很多部分组成,但是支撑高并发、亿级流量的,主要就是其中的大型的缓存架构 在这个大型的缓存架构中,redis是最最基础的一层 高并发,缓存架构中除 阅读全文
posted @ 2020-04-21 08:31 尐海爸爸 阅读(708) 评论(0) 推荐(0) 编辑
摘要:基本讲解到现在,大家其实直接到公司里,就可以去搭建redis了 因为其实有些东西,也许没有讲解到细节的一些东西,比如一些参数的设置 不同的公司,不同的业务,不同的数据量,可能要调节的参数不同 到这里为止,大家就差不多了,按照这个思路,去搭建redis支撑高并发、高可用、海量数据的架构,部署 可以用公 阅读全文
posted @ 2020-04-21 08:20 尐海爸爸 阅读(284) 评论(0) 推荐(0) 编辑
摘要:一、节点间的内部通信机制 1、基础通信原理 (1)redis cluster节点间采取gossip协议进行通信 跟集中式不同,不是将集群元数据(节点信息,故障,等等)集中存储在某个节点上,而是互相之间不断通信,保持整个集群所有节点的数据是完整的 维护集群的元数据用得,集中式,一种叫做gossip 集 阅读全文
posted @ 2020-04-21 08:00 尐海爸爸 阅读(237) 评论(0) 推荐(0) 编辑
摘要:slave的自动迁移 比如现在有10个master,每个有1个slave,然后新增了3个slave作为冗余,有的master就有2个slave了,有的master出现了salve冗余 如果某个master的slave挂了,那么redis cluster会自动迁移一个冗余的slave给那个master 阅读全文
posted @ 2020-04-21 07:41 尐海爸爸 阅读(183) 评论(0) 推荐(0) 编辑
摘要:实验,演示过了 redis cluster模式下,不建议做物理的读写分离了 我们建议通过master的水平扩容,来横向扩展读写吞吐量,还有支撑更多的海量数据 redis单机,读吞吐是5w/s,写吞吐2w/s 扩展redis更多master,那么如果有5台master,不就读吞吐可以达到总量25/s 阅读全文
posted @ 2020-04-21 07:30 尐海爸爸 阅读(267) 评论(0) 推荐(0) 编辑
摘要:redis cluster搭建起来了 redis cluster,提供了多个master,数据可以分布式存储在多个master上; 每个master都带着slave,自动就做读写分离; 每个master如果故障,那么久会自动将slave切换成master,高可用 redis cluster的基本功能 阅读全文
posted @ 2020-04-20 23:23 尐海爸爸 阅读(790) 评论(0) 推荐(0) 编辑
摘要:redis cluster最最基础的一些知识 redis cluster: 自动,master+slave复制和读写分离,master+slave高可用和主备切换,支持多个master的hash slot支持数据分布式存储 停止之前所有的实例,包括redis主从和哨兵集群 1、redis clust 阅读全文
posted @ 2020-04-20 22:46 尐海爸爸 阅读(321) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示