1背景在互联网业务的实际应用场景中,消息的延时处理是非常必要的。例如,在金融交易系统中,某些交易的确认可能需要一段时间才能完成。又如,在物流跟踪系统中,货物的运输状态需要一段时间才能更新。而MQ作为中间件的角色专门来处理消息媒介,实际也具备了使用消息的延时处理来保证信息的及时性的能力。这边举两个具体的例子:火车票订购,提交了订单就把车票给占位了,这时候可以发送一个延时确认的消息,15m未付款,就要把...
1关于Redis的PubSubRedis的发布订阅(PubSub)模式是一种消息传递机制,它允许在发送者和接收者之间建立松耦合的通信关系。在这种模式中,发送者(发布者)将消息发布到一个指定的频道或模式,而接收者(订阅者)可以订阅一个或多个频道,以便接收发布的消息。以下是Redis发布订阅模式的主要组件:发布者(Publisher):发布者是产生并发布消息的实体。它可以将消息发送到指定的频道或模式。订阅者(Subscriber):订阅者是接收...
1介绍在互联网电商场景中,我们经常会遇到有计划的流量洪峰,比如双11、618购物节,积分竞拍和定时抢购的疯狂场景。这种是在预期内的,知道会发生并有一定的准备。而那些预期之外的突发流量异常,才是真正给我们带来挑战的部分,比如:硬件故障:如服务器宕机,机房断电,光纤被挖断等。缓存击穿:一般发生在应用重启导致的缓存失效,以及短时间内大量缓存过期失效时。大量的无法命中,使请求直击后端服务,造成服务提供者超负...
1介绍1.1数据一致性的概念缓存与数据库的数据一致性指的是,缓存中存储的数据与数据库中存储的数据需保持一致。即缓存中存有数据,缓存的数据值数据库中的值;缓存中没有该数据,数据库中的值最新值。数据一致性主要包含以下两种情况:缓存中有数据,那么缓存中的值需要和数据库中值相同。缓存中本身没有数据,那么,数据库中的值必须是最新值。如果存在以下情况,则说明存在不一致性情况:缓存中有数据,但是缓存中的数据与数...
1介绍在复杂的互联网场景中,不可避免的会因为一些内在或者外在的因素,导致出现请求超时的情况。而典型的业务超时场景主要有如下:网络延迟或者抖动或者丢包,从而导致响应时间变长。容器甚至云主机资源瓶颈情况:如CPU使用率过高、内存使用是否正常、磁盘IO压力情况、网络时延情况等资源使用情况异常,也可能导致响应时间变长。负载均衡性问题:多实例下分配的流量不均衡,目前看云基础场景,这个情况不多见。突发洪峰请求:...
1介绍上一期我们介绍了Redis系列19:LRU淘汰内存淘汰算法分析,大致了解了LRU(LeastRencentlyUsed)的算法原理,即将最近最久未使用的算法进行数据淘汰。但是这样的算法也有一些比较明显缺陷:稳定性和性能问题:LRU算法认为最近最少使用的数据是最该被淘汰的,但是这可能导致某些数据被频繁地淘汰和加载,因为它们可能只在某个时间段内被使用一次,而在其他时间段内则不会被使用。这会使得缓存的效率降低,增加了CPU...
1介绍上一期我们介绍了Redis系列18:过期数据的删除策略,但是无论是惰性删除还是定期删除,都可能存在删除不尽的情况,无法删除完全,比如每次删除完过期的key还是超过25%,且这些key再也不会被客户端访问。这样的话,定期删除和堕性删除可能都彻底的清理掉。如果这种情况长时间持续下去,可能会导致内存耗尽,所以Redis必须有一个完善的内存淘汰机制来保障。这就是我们这一篇的重点,Redis内存自动淘汰机制。2Redis...
1背景在复杂的互联网场景中,不可避免的会出现请求失败的情况。从程序的的响应结果来看,一般是Response返回5xx状态的错误;从用户的角度去看,一般是请求结果不符合预期,即操作失败(如转账失败、下单失败、信息获取不到等)。偶发的不可避免的5xx请求错误,产生的原因有很多种,比如:网络延迟或者抖动服务器资源不足(CPU、内存走高、连接池满)服务器故障符合某些特定条件下的服务程序bug(大都非必现)2系统稳定性等级划...
1介绍通过前面的章节,我们知道,Redis是一个kv型数据库,我们所有的数据都是存放在内存中的,但是内存是有大小限制的,不可能无限制的增量。想要把不需要的数据清理掉,一种办法是直接删除,这个咱们前面章节有详细说过;另外一种就是设置过期时间,缓存过期后,由Redis系统自行删除。这边需要注意的是,缓存过期之后,并不是马上删除的,那Redis是怎么删除过期数据的呢?主要通过两个方式惰性删除通过定时任务,定期选取部分...
1微服务的基本流量策略微服务提供了一些技术来实现对微服务的流量的管理,其中最典型的就是对流量进行拆分和转发。具体体现在金丝雀发布(灰度发布)、ABTesting以及流量染色等策略方案上。2流量策略实现流控的本质云原生基础场景下,如果想要实现流控和调度,需要具备以下几个条件:请求的流量中,需要附带某些特征,如流量的请求的Header、Cookies、queryParams等中带有某些信息。部署在kubernetes上的服务(svc)的实例(pod...
1介绍布隆过滤器(BloomFilter)是Redis4.0版本提供的新功能,我们一般将它当做插件加载到Redis服务器中,给Redis提供强大的去重功能。它是一种概率性数据结构,可用于判断一个元素是否存在于一个集合中。相比较之Set集合的去重功能,布隆过滤器空间上能节省90%+,不足之处是去重率大约在99%左右,那就是有1%左右的误判率,这种误差是由布隆过滤器的自身结构决定的。优点:空间效率和查询时间都比一般的算法要好的多缺点:有一...
1BloomFilter介绍布隆过滤器(BloomFilter)是Redis4.0版本提供的新功能,我们一般将它当做插件加载到Redis服务器中,给Redis提供强大的去重功能。它是一种概率性数据结构,可用于判断一个元素是否存在于一个集合中。相比较之Set集合的去重功能,布隆过滤器空间上能节省90%+,不足之处是去重率大约在99%左右,那就是有1%左右的误判率,这种误差是由布隆过滤器的自身结构决定的。优点:空间效率和查询时间都比一般的算法要好的多...
1背景我们在前面两个章节中,介绍了消息组件如何保证可靠性传输和顺序行消费,参考上面系列的11、12章节。比如在消息生产阶段,如何保证消息发出的稳定性和可靠性;在消息服务器处理阶段,如何保证消息从生产到发送出去,经过网络传输,再到达Broker服务器并被接收的这整个阶段的可靠性,即如何使用ACK机制来保证消息传递的可靠性;还有就是消息消费的可靠性,Broker作为消息服务器,消息接收并持久化消息并消费的整个过程的可...
1介绍我们上一篇介绍了如何使用List实现消息队列么,但是我们也看到很多局限性,如下:不支持消息确认机制,没有很好的ACK应答不支持消息回溯,无法排查问题和做消息分析List遵循FIFO机制,所以存在消息堆积的风险。查询效率低,作为线性结构,List中定位一个数据需要进行遍历,O(N)的时间复杂度。不存在消费组(ConsumerGroup)的概念,无法进行分组消费和批量消费Redis中有三种消息队列模式:名称简要说明List不支持消息确认...
1介绍消息的有序性在很多业务场景中占有很重要的位置。比如购物场景,需要按照创建订单>订单付款>完成订单顺序执行。又比如出行场景,接单>接送到达目的地>付款>完成订单。这种是严格按照顺序执行的,这样的顺序消费才不会出问题,而且各个订单之间是互相独立和并行执行的。所以,在MQ中,如何稳定地保证顺序性消息处理,是一个不可避免的话题。2消息的有序性说明消息的有序执行,一般不是单个组件的能力。而是整个消息从生产,...
1介绍在分布式系统中,很重要的一个能力就是消息中间件。我们通过消息队列实现功能解耦、消息有序性、消息路由、异步处理、流量削峰等能力。目前主流的Mq主要有RabbitMQ、RocketMQ、kafka,可以参考这篇《MQ系列2:消息中间件技术选型》。那除了这些主流MQ之外,咱们的这一节要说的Redis也具备实现消息队列的能力。我们来看看消息队列主要要实现哪些能力,原理是什么,以及如何在Redission中应用。2关于消息队列2.1...
1背景在大型互联网场景中,数据库的高可用性显得尤为重要,为了保证稳定性,一般需要采用强化的架构模式,以保证数据层能够提供持续有效的稳定支撑。2高可用架构的基本演进过程2.1基本的数据库架构每个服务对应一个存储服务实例(基本是数据库单实例模式),使用IP+Port进行连接和调用,这就是大家常见的数据库直连。用户计算服务(svc)配置IP+端口指向数据库实例地址,进行访问和操作。2.2ScaleUp+ScaleOut模式互联网场景下,...
如果将人工智能按照用途进行简单分类的话,人工智能可以划分为决策式AI以及生成式AI两类。所谓决策式AI就是通过学习训练数据的中的条件概率分布情况来进行判断决策,判断样本属于指定目标的概率,比如人脸识别就是典型的决策式AI,终端设备根据摄像头获取到的人脸图像来进行特征信息匹配,和后台系统中的人脸特征库进行对比来判断当前人脸信息是否在系统人脸特征库中或者是否有权限执行操作。而以ChatGPT为代表的生成式AI通过对...
2023-07-04 12:32:41 389浏览 0点赞 0回复 0收藏
“变则通,通则久。”《周易系辞》2023年3月27日,马老师现身他创办的杭州云谷学校,在外云游一年的马老师终于回国了。相隔一天,3月28日阿里巴巴董事局主席张勇发全员信,宣告了阿里有史以来最大规模组织架构调整。阿里将按照“1+6+N”的组织结构进行拆分,“1”就是一个阿里巴巴上市公司主体相当于母公司或者控股公司,“6”代表六个业务集团,分别是淘宝天猫集团、阿里云智能集团、本地生活集团、菜鸟集团、国际数字商业集团...
2023-07-04 12:32:24 638浏览 0点赞 0回复 0收藏
最近“进淄赶烤”成为了五一旅游新时尚,各种关于淄博烧烤的新闻每天像连续剧一样换着花样的出现在微博、抖音等各大媒体平台之上。大家开玩笑的说淄博上次这么火的时候还是在齐桓公时代。正所谓一叶落知天下秋,表面上看是淄博烧烤闻达于天下,但是实际上是背后城市管理、人文建设、综合营销等各类因素综合作用的结果。但是作为旁观者的我们要好好思考它火起来的原因到底是什么?IT互联网行业或者其他行业从中有什么值得我们学...
2023-07-04 12:32:04 263浏览 0点赞 0回复 0收藏