04 2020 档案

摘要:整个三级缓存的架构已经走通了 我们还遇到一个问题,就是说,如果缓存服务在本地的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 尐海爸爸 阅读(707) 评论(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) 编辑
摘要:讲解分布式数据存储的核心算法,数据分布的算法 hash算法 -> 一致性hash算法(memcached) -> redis cluster,hash slot算法 用不同的算法,就决定了在多个master节点的时候,数据如何分布到这些节点上去,解决这个问题 1、redis cluster介绍 re 阅读全文
posted @ 2020-04-18 23:46 尐海爸爸 阅读(215) 评论(0) 推荐(0) 编辑
摘要:1、单机redis在海量数据面前的瓶颈 2、怎么才能够突破单机瓶颈,让redis支撑海量数据? 3、redis的集群架构 redis cluster 支撑N个redis master node,每个master node都可以挂载多个slave node 读写分离的架构,对于每个master来说,写 阅读全文
posted @ 2020-04-18 23:23 尐海爸爸 阅读(134) 评论(0) 推荐(0) 编辑
摘要:1、哨兵节点的增加和删除 增加sentinel,会自动发现 删除sentinel的步骤 (1)停止sentinel进程(2)SENTINEL RESET *,在所有sentinel上执行,清理所有的master状态(3)SENTINEL MASTER mastername,在所有sentinel上执 阅读全文
posted @ 2020-04-18 23:06 尐海爸爸 阅读(207) 评论(0) 推荐(0) 编辑
摘要:1、哨兵的配置文件 sentinel.conf 最小的配置 每一个哨兵都可以去监控多个maser-slaves的主从架构 因为可能你的公司里,为不同的项目,部署了多个master-slaves的redis主从集群 相同的一套哨兵集群,就可以去监控不同的多个redis主从集群 你自己给每个redis主 阅读全文
posted @ 2020-04-18 21:51 尐海爸爸 阅读(297) 评论(0) 推荐(0) 编辑
摘要:1、sdown和odown转换机制 sdown和odown两种失败状态 sdown是主观宕机,就一个哨兵如果自己觉得一个master宕机了,那么就是主观宕机 odown是客观宕机,如果quorum数量的哨兵都觉得一个master宕机了,那么就是客观宕机 sdown达成的条件很简单,如果一个哨兵pin 阅读全文
posted @ 2020-04-17 23:56 尐海爸爸 阅读(239) 评论(0) 推荐(0) 编辑
摘要:1、两种数据丢失的情况 主备切换的过程,可能会导致数据丢失 (1)异步复制导致的数据丢失 因为master -> slave的复制是异步的,所以可能有部分数据还没复制到slave,master就宕机了,此时这些部分数据就丢失了 (2)脑裂导致的数据丢失 脑裂,也就是说,某个master所在机器突然脱 阅读全文
posted @ 2020-04-17 23:38 尐海爸爸 阅读(210) 评论(0) 推荐(0) 编辑
摘要:1、哨兵的介绍 sentinal,中文名是哨兵 哨兵是redis集群架构中非常重要的一个组件,主要功能如下 (1)集群监控,负责监控redis master和slave进程是否正常工作(2)消息通知,如果某个redis实例有故障,那么哨兵负责发送消息作为报警通知给管理员(3)故障转移,如果maste 阅读全文
posted @ 2020-04-17 23:30 尐海爸爸 阅读(172) 评论(0) 推荐(0) 编辑
摘要:你如果要对自己刚刚搭建好的redis做一个基准的压测,测一下你的redis的性能和QPS(query per second) redis自己提供的redis-benchmark压测工具,是最快捷最方便的,当然啦,这个工具比较简单,用一些简单的操作和场景去压测 1、对redis读写分离架构进行压测,单 阅读全文
posted @ 2020-04-17 22:43 尐海爸爸 阅读(441) 评论(0) 推荐(0) 编辑
摘要:1、启用复制,部署slave node wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gztar -xzvf tcl8.6.1-src.tar.gzcd /usr/local/tcl8.6.1/unix/./configure 阅读全文
posted @ 2020-04-17 22:33 尐海爸爸 阅读(163) 评论(0) 推荐(0) 编辑
摘要:1、复制的完整流程 (1)slave node启动,仅仅保存master node的信息,包括master node的host和ip,但是复制流程没开始 master host和ip是从哪儿来的,redis.conf里面的slaveof配置的 (2)slave node内部有个定时任务,每秒检查是否 阅读全文
posted @ 2020-04-16 23:46 尐海爸爸 阅读(186) 评论(0) 推荐(0) 编辑
摘要:1、主从架构的核心原理 当启动一个slave node的时候,它会发送一个PSYNC命令给master node 如果这是slave node重新连接master node,那么master node仅仅会复制给slave部分缺少的数据; 否则如果是slave node第一次连接master nod 阅读全文
posted @ 2020-04-16 23:40 尐海爸爸 阅读(341) 评论(0) 推荐(0) 编辑
摘要:1、redis replication的核心机制 (1)redis采用异步方式复制数据到slave节点,不过redis 2.8开始,slave node会周期性地确认自己每次复制的数据量(2)一个master node是可以配置多个slave node的(3)slave node也可以连接其他的sl 阅读全文
posted @ 2020-04-16 23:34 尐海爸爸 阅读(212) 评论(0) 推荐(0) 编辑
摘要:1、redis高并发跟整个系统的高并发之间的关系 redis,你要搞高并发的话,不可避免,要把底层的缓存搞得很好 mysql,高并发,做到了,那么也是通过一系列复杂的分库分表,订单系统,事务要求的,QPS到几万,比较高了 要做一些电商的商品详情页,真正的超高并发,QPS上十万,甚至是百万,一秒钟百万 阅读全文
posted @ 2020-04-16 23:31 尐海爸爸 阅读(554) 评论(0) 推荐(0) 编辑
摘要:1、企业级的持久化的配置策略 在企业中,RDB的生成策略,用默认的也差不多 save 60 10000:如果你希望尽可能确保说,RDB最多丢1分钟的数据,那么尽量就是每隔1分钟都生成一个快照,低峰期,数据量很少,也没必要 10000->生成RDB,1000->RDB,这个根据你自己的应用和业务的数据 阅读全文
posted @ 2020-04-16 23:01 尐海爸爸 阅读(236) 评论(0) 推荐(0) 编辑
摘要:1、AOF持久化的配置 AOF持久化,默认是关闭的,默认是打开RDB持久化 appendonly yes,可以打开AOF持久化机制,在生产环境里面,一般来说AOF都是要打开的,除非你说随便丢个几分钟的数据也无所谓 打开AOF持久化机制之后,redis每次接收到一条写命令,就会写入日志文件中,当然是先 阅读全文
posted @ 2020-04-16 22:38 尐海爸爸 阅读(190) 评论(0) 推荐(0) 编辑
摘要:1、如何配置RDB持久化机制 redis.conf文件,也就是/etc/redis/6379.conf,去配置持久化 save 60 1000 每隔60s,如果有超过1000个key发生了变更,那么就生成一个新的dump.rdb文件,就是当前redis内存中完整的数据快照,这个操作也被称之为snap 阅读全文
posted @ 2020-04-16 22:27 尐海爸爸 阅读(178) 评论(0) 推荐(0) 编辑
摘要:1、安装单机版redis wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz tar -xzvf tcl8.6.1-src.tar.gz cd /usr/local/tcl8.6.1/unix/ ./configure make 阅读全文
posted @ 2020-04-16 22:10 尐海爸爸 阅读(134) 评论(0) 推荐(0) 编辑
摘要:(1)首先在三台机器上配置对本机的ssh免密码登录ssh-keygen -t rsa生成本机的公钥,过程中不断敲回车即可,ssh-keygen命令默认会将公钥放在/root/.ssh目录下cd /root/.sshcp id_rsa.pub authorized_keys将公钥复制为authoriz 阅读全文
posted @ 2020-04-16 22:03 尐海爸爸 阅读(225) 评论(0) 推荐(0) 编辑
摘要:为什么要装perl?我们整个大型电商网站的详情页系统,复杂。java+nginx+lua,需要perl。 perl,是一个基础的编程语言的安装,tomcat,跑java web应用 yum install -y gcc wget http://www.cpan.org/src/5.0/perl-5. 阅读全文
posted @ 2020-04-16 21:37 尐海爸爸 阅读(174) 评论(0) 推荐(0) 编辑
摘要:卸载centos7自带openjdk 找出openjdk文件 rpm -qa|grep java 删除 rpm -e --nodeps java-1.8.0-openjdk-devel-1.8.0.242.b08-0.el7_7.x86_64 rpm -e --nodeps java-1.8.0-o 阅读全文
posted @ 2020-04-16 21:28 尐海爸爸 阅读(240) 评论(0) 推荐(0) 编辑
摘要:vim /etc/hosts 本机ip eshop-cache01 重启reboot 阅读全文
posted @ 2020-04-16 21:08 尐海爸爸 阅读(311) 评论(0) 推荐(0) 编辑

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