![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
分布式架构
文章平均质量分 91
JackieZhengChina
70'码农,CSDN博客专家,信息系统项目管理师,工商管理硕士,采购评审专家,自驾爱好者,近20年教育类产品研发及管理经历,曾任教育科技公司联合创始人兼产品VP、科技公司产研VP。
职业标签:产品、项目、技术、运营、管理、战略。
展开
-
[转]谈谈 Dapr 的优缺点,应用场景,以及未来的发展趋势,生态成熟度
简化开发:使用 dapr 可以简化微服务和分布式系统的开发,提供了一组通用的功能,这些功能包括服务发现,状态管理,消息传递,事件驱动等。生态成熟度:dapr 已经具备一定的生态,其中包括支持的编程语言和框架,以及社区中的各种贡献。未来,dapr 的生态会越来越成熟。复杂度:dapr 为开发者提供了丰富的功能,但也增加了系统的复杂度,需要开发者花费更多的时间和精力来学习和使用。解耦系统:dapr 的设计主张解耦系统中各部分的代码,从而提高代码可维护性和可扩展性,降低了各部分之间的耦合。转载 2024-04-11 15:37:37 · 119 阅读 · 0 评论 -
微服务全做错了!谷歌提出新方法,成本直接降9倍!
一位DataDog的客户收到6500万美元的云监控账单的消息,也再次让业界无数人惊到了。事实上有些团队在将集中式单体应用拆分为微服务时,首先进行的往往不是建立领域模型,而只是按照业务功能将原来单体应用的一个软件包拆分成多个所谓的“微服务”软件包,而这些“微服务”内的代码高度耦合,逻辑边界不清晰,长期以来,不管大厂还是小厂,微服务都被认为是云原生服务应用程序架构的事实标准,然而2023,不止那位37signals的DHH决心下云,放弃微服务,就连亚马逊和谷歌等这些云巨头,正在带头开始革了微服务的命。转载 2024-04-10 19:28:05 · 14 阅读 · 0 评论 -
[转]什么情形下应该使用BFF?带你了解BFF的优势,即服务于前端的后端
BFF是一种Web架构,全名为Backends For Frontends,即为服务于前端的后端。这个词来源于Sam。BFF一般指的是在前端与后端之间加增加一个中间层。为什么要在前端和后端之间增加一个BFF层呢?计算机科学中的所有问题都可以通过加一层来解决。因此,需要使用BFF的场景,肯定是普通的前后端开发模式遇到了部分问题。例如在Sam Newman的文章中就描述了BFF解决多个展示端的场景。转载 2024-04-05 16:46:35 · 27 阅读 · 0 评论 -
[转]大数据---20.Hive基础介绍
HiveHive:由Facebook开源用于解决海量结构化日志的数据统计工具。Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。hive是基于Hadoop构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop分布式文件系统中的数据:可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能;转载 2024-04-05 16:22:36 · 10 阅读 · 0 评论 -
[转]ElasticSearch从入门到精通,史上最全
ElasticSearch:智能搜索,分布式的搜索引擎是ELK的一个组成,是一个产品,而且是非常完善的产品,ELK代表的是:E就是ElasticSearch,L就是Logstach,K就是kibanaE:搜索和分析的功能L:Logstach搜集数据的功能,类似于flume(使用方法几乎跟flume一模一样),是日志收集系统K:Kibana数据可视化(分析),可以用图表的方式来去展示,文不如表,表不如图,是数据可视化平台。转载 2024-04-05 16:21:20 · 94 阅读 · 0 评论 -
[转]网关Ocelot
网关(Gateway)在微服务架构中至关重要,可以将其理解为是外部客户端(前端、MVC后台等调用方)与后台服务的连接点,通过这层可以做统一的处理,比如路由、身份认证和授权、服务治理等;网关的好处:统一入口,调用方(客户端)不在为调哪个服务而头大,统一入口即可,由网关路由到对应后台服务;统一处理公共逻辑,比如认证和授权,避免相同逻辑多处实现,易于维护;对后台服务可以做负载均衡,根据指定的负载算法找到合适的后台服务调用,而这些细节调用方都不用理会,只管调就行啦;初步过滤非法请求。转载 2024-04-05 16:12:55 · 61 阅读 · 0 评论 -
[转]Envoy学习和实战
前面表格中也说明了Envoy是数据面的实现部分,数据控制面是用来控制当前节点中的所有网络出入请求的,那这是怎么实现的,我们能想到用来控制网络出入请求的只有防火墙,而防火墙是怎么实现的,采用的是内核的netfilter,envoy也是采用netfilter实现的,只是netfilter是内核的,要调用该软件采用的是用户软件iptables,该软件来调用netfilter,那netfilter是啥,以及怎么控制的,以前写过一点文章,这里重新介绍下。转载 2024-04-05 16:08:08 · 41 阅读 · 0 评论 -
[转]【微服务篇】深入理解分布式消息队列系统
是一种在多个服务器、应用或服务之间进行消息传递的技术。它使得各个独立的组件可以通过异步消息进行通信,提高了系统的可扩展性、解耦性和可靠性。转载 2024-04-04 10:05:32 · 23 阅读 · 0 评论 -
[转]字节三面:如何设计一个高并发系统
大家好,我是田螺。记得很久之前,去面试过字节跳动。如何设计一个高并发系统。当时我回答得比较粗糙,最近回想起来,所以整理了设计高并发系统的15个锦囊,相信大家看完会有帮助的。转载 2024-04-02 10:35:16 · 36 阅读 · 0 评论 -
[转]命令查询职责分离(CQRS)模式:提高微服务架构的可扩展性和性能
CQRS模式是一种将应用程序的读写操作分离的设计模式,通过使用不同的数据模型来优化读取和写入操作,可以提高系统的可扩展性、性能、可维护性和灵活性。然而就像任何技术架构一样,CQRS也有其局限性和适用场景。以下是一些需要考虑的因素:•增加了系统复杂性:使用CQRS需要开发人员具备更高的技术水平和设计能力,因为需要处理多个数据模型和异步通信。此外,系统中的各个部分需要进行协调和一致性处理,这也增加了系统的复杂性。转载 2024-03-28 21:13:06 · 27 阅读 · 0 评论 -
[转]Docker技术 ( 容器虚拟化技术 )
一款产品从开发到上线,从操作系统,到运行环境,再到应用配置。作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各种版本的迭代之后,不同版本环境的兼容,对运维人员都是考验。Docker之所以发展如此迅速,也是因为它对此给出了一个标准化的解决方案。环境配置如此麻烦,换一台机器,就要重来一次,费力费时。很多人想到,能不能从根本上解决问题,软件可以带环境安装?也就是说,安装的时候,把原始环境一模一样地复制过来。转载 2024-03-28 20:06:04 · 38 阅读 · 0 评论 -
一文把RabbitMQ讲透了,佩服!
常见的消息队列很多,主要包括RabbitMQ、Kafka、RocketMQ和ActiveMQ,相关的选型可以看我之前的系列,这篇文章只讲RabbitMQ,先讲原理,后搞实战。不BB,直接上思维导图消息队列目前主要2种模式,分别为“点对点模式”和“发布/订阅模式”。一个具体的消息只能由一个消费者消费,多个生产者可以向同一个消息队列发送消息,但是一个消息在被一个消息者处理的时候,这个消息在队列上会被锁住或者被移除并且其他消费者无法处理该消息。单个消息可以被多个订阅者并发的获取和处理。...转载 2022-07-26 10:17:19 · 297 阅读 · 0 评论 -
实现生成订单30分钟未支付,则自动取消
这样可以看出定时轮由个3个重要的属性参数,ticksPerWheel(一轮的tick数),tickDuration(一个tick的持续时间)以及timeUnit(时间单位),例如当ticksPerWheel=60,tickDuration=1,timeUnit=秒,这就和现实中的始终的秒针走动完全类似了。结合以上两个特性,就可以模拟出延迟消息的功能,具体的,我改天再写一篇文章,这里再讲下去,篇幅太长。因此,方案二不是太推荐。对上述的任务,我们给一个专业的名字来形容,那就是延时任务。...转载 2022-07-23 11:41:22 · 269 阅读 · 0 评论 -
Caffine Cache 及在SpringBoot中的使用
这一篇我们将要谈到一个新的本地缓存框架它也是站在巨人的肩膀上-GuavaCache,借着他的思想优化了算法发展而来。本篇博文主要介绍CaffineCache的使用方式,以及CaffineCache在SpringBoot中的使用。转载 2022-07-19 09:17:37 · 494 阅读 · 0 评论 -
分库分表和 NewSQL 到底怎么选?
目录背景分表分库分库分表的成本NewSQLNewSQL 平滑接入方案NewSQL 真的有那么好吗?NewSQL 的应用分库分表和 NewSQL 到底怎么选?背景曾几何时,“并发高就分库,数据大就分表”已经成了处理 MySQL 数据增长问题的圣经。面试官喜欢问,博主喜欢写,候选人也喜欢背,似乎已经形成了一个闭环。但你有没有思考过,分库分表真的适合你的系统吗?分表在业务刚刚发展起来的时候,流量全部打到了一个 MySQL 上,用户信息全落到了 user 表。后来,user 表的数...转载 2022-07-14 08:34:42 · 154 阅读 · 0 评论 -
聊聊接口性能优化的11个小技巧
接口性能优化对于从事后端开发的同学来说,肯定再熟悉不过了,因为它是一个跟开发语言无关的公共问题。该问题说简单也简单,说复杂也复杂。有时候,只需加个索引就能解决问题。有时候,需要做代码重构。有时候,需要增加缓存。有时候,需要引入一些中间件,比如mq。有时候,需要需要分库分表。有时候,需要拆分服务。等等……导致接口性能问题的原因千奇百怪,不同的项目不同的接口,原因可能也不一样。本文我总结了一些行之有效的,优化接口性能的办法,给有需要的朋友一个参考。接口性能优化大家第一个想到的可能是:。没错,优化索引的成本是最小转载 2022-07-13 15:14:43 · 906 阅读 · 0 评论 -
Thrift基本原理及使用
参考文章RPC 基本原理与 Apach Thrift 初体验 RPC(Remote Procedure Call),远程过程调用,大部分的RPC框架都遵循如下三个开发步骤:RPC通信过程如下图所示通信过程包括以下几个步骤:所有这些步骤的效果是,将客户过程对客户桩发出的本地调用转换成对服务器过程的本地调用,而客户端和服务器都不会意识到有中间步骤的存在。这个时候,你可能会想,既然是调用另一台机器的服务,使用 RESTful API 也可以实现啊,为什么要选择 RPC 呢?我们可以从两个方面对比:转载 2022-07-08 08:40:54 · 579 阅读 · 0 评论 -
Nginx 面试 40 问
Nginx是一款轻量级的Web服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。那么关于 Nginx 的核心技术点有哪些呢?Nginx是一个 轻量级/高性能的反向代理Web服务器,用于 HTTP、HTTPS、SMTP、POP3 和 IMAP 协议。他实现非常高效的反向代理、负载平衡,他可以处理2-3万并发连接数,官方监测能支持5万并发,现在中国使用nginx网站用户有很多,例如:新浪、网易、 腾讯等。Nginx 有哪些优点?跨平台、配置简单。非阻塞、高并发连接:处理转载 2022-06-29 18:33:59 · 125 阅读 · 0 评论 -
基于redis实现的扣减库存
理论上即使是这样由于MySQL事务的特性,这种方法只能降低超卖的数量,但是不可能完全避免超扣。因为数据库默认隔离级别是repeatable read,假如库存是5,有A、B两个请求分别创建了事务并且都没有提交,当A事务提交了,改了库存为4,但是因为是事务隔离级别是可重复读的,所有B看不到A事务改的库存。到时B看到的库存还是5,所以B修改库存为4,这样就出现了超扣问题。所以我们扣库存的时候需要将事务隔离级别设置成read commit才可以。(我自己测试没有出现这种情况)MySQL自身对于高并发的处理性能就会转载 2022-06-28 21:37:08 · 1037 阅读 · 0 评论 -
4种分布式session解决方案
cookie是本地客户端用来存储少量数据信息的,保存在客户端,用户能够很容易的获取,安全性不高,存储的数据量小session是服务器用来存储部分数据信息,保存在服务器,用户不容易获取,安全性高,储存的数据量相对大,存储在服务器,会占用一些服务器资源,但是对于它的优点来说,这个缺点可以忽略了在一次客户端和服务器为之间的会话中,客户端(浏览器)向服务器发送请求,首先cookie会自动携带上次请求存储的数据(JSESSIONID)到服务器,服务器根据请求参数中的JSESSIONID到服务器中的session库中转载 2022-06-28 10:50:35 · 836 阅读 · 0 评论 -
分布式id解决方案
所谓id就是能够用作唯一标识的记号。在我们日常的设计中,对于单体架构,我们一般使用数据库的自增Id来作为表的主键,但是对于一个分布式系统,就会出现ID冲突,所以对于分布式ID而言,也需要具备分布式系统的特点:高并发,高可用,高性能等特点。我们先看看常见的分布id解决方案以及各自特点的对比下面我们具体看看这些方案的对比:上面提到了五种解决方案,目前流行的分布式ID解决方案有两种:「号段模式」和「雪花算法」。这种方式很简单,在每次需要新增数据的时候,先生成一个uuid我们需要专门创建一个表来存放id,原创 2022-06-28 10:40:38 · 350 阅读 · 0 评论 -
Kafka 安装详解
首先下载安装包,在linux及Windows都可以使用。将下载好的安装包上传至服务器解压 后台启动zookeeperkafka需要依赖ZK,安装包中已经自带了一个ZK,也可以改成指定已运行的ZK。 如果改成指定的ZK需要修改修改 kafka 安装目录下的 config/server.properties 文件中的zookeeper.connect 。这里使用自带的ZK。 检查zookeeper是否启动成功: 修改相关配置 Broker ID启动以后就不能改了转载 2022-06-27 07:45:50 · 575 阅读 · 0 评论 -
Kafka高性能高吞吐的原因总结
保证了消息的堆积 顺序读写 磁盘会预读,预读即在读取的起始地址连续读取多个页面,主要时间花费在了传输时间,而这个时间两种读写可以认为是一样的。 随机读写 因为数据没有在一起,将预读浪费掉了,需要多次寻道和旋转延迟,而这个时间可能是传输时间的许多倍。避免CPU将数据从一块存储拷贝到另外一块存储的技术 传统的数据复制: 零拷贝: 磁盘文件 → 内核空间读取缓冲区 → 网卡接口 → 消费者进程 Kafka的message消息实际上是分布式存储在一个一 个小的seg原创 2022-06-25 11:00:37 · 587 阅读 · 0 评论 -
深入浅出聊布隆过滤器(Bloom Filter)
之前在网上看到过这么一段话👇这段话的大意就是:数据结构没有什么不同,在应用程序中他们就像是可以组织数据的书架,不同的数据结构将为您提供不同的便利和好处,你需要仔细权衡自己的需求之后妥善的使用它们。布隆过滤器就是践行这句话的代表,那么今天就和大家深入浅出的聊聊布隆过滤器(Bloom Filter)。还是老规矩,学习一个新知识之前,我们需要了解他的基本概念👇我们在布隆过滤器的基本概念中可以看到这么一句话,布隆过滤器可以用于检索一个元素是否在一个集合中。有些小伙伴可能会问:我们直接用......转载 2022-06-22 11:49:11 · 502 阅读 · 0 评论 -
Dubbo中的SPI机制
即 SPI,是JDK内置的一种服务提供发现机制,可以用来启用框架扩展和替换组件。可以让不同的厂商针对统一接口编写不同的实现SPI实际上是“接口+策略模式+配置文件”实现的动态加载机制。在系统设计中,模块之间通常基于接口编程,不直接显示指定实现类。一旦代码里指定了实现类,就无法在不修改代码的情况下替换为另一种实现。为了达到动态可插拔的效果,java提供了SPI以实现服务发现。SPI机制的应用场景有很多,我们比较常用的就是JDBC,Dubbo等在谈Dubbo的SPI机制前我们需要先了解一下Java原生的SPI机转载 2022-06-20 17:09:01 · 2331 阅读 · 0 评论 -
ZAB协议
ZooKeeper 最核心的作用就是保证分布式系统的数据一致性,而无论是处理来自客户端的会话请求时,还是集群 Leader 节点发生重新选举时,都会产生数据不一致的情况。ZAB 协议算法(Zookeeper Atomic Broadcast ,Zookeeper 原子广播协议)是 ZooKeeper 专门设计用来解决集群最终一致性问题的算法,它的两个核心功能点是崩溃恢复和原子广播协议。当接收到来自客户端的事务性会话请求后,系统集群采用主服务器来处理该条会话请求,经过主服务器处理的结果会通过网络发送给集群中其转载 2022-06-18 09:49:08 · 524 阅读 · 0 评论 -
Raft算法详解
Raft算法属于Multi-Paxos算法,它是在Multi-Paxos思想的基础上,做了一些简化和限制,比如增加了日志必须是连续的,只支持领导者、跟随者和候选人三种状态,在理解和算法实现上都相对容易许多从本质上说,Raft算法是通过一切以领导者为准的方式,实现一系列值的共识和各节点日志的一致Raft算法支持领导者(Leader)、跟随者(Follower)和候选人(Candidate)3种状态:Raft算法是强领导者模型,集群中只能有一个领导者在初始状态下,集群中所有的节点都是跟随者状态 Raft算法实现转载 2022-06-14 21:26:04 · 782 阅读 · 0 评论 -
Paxos算法详解
Paxos、Raft分布式一致性算法应用场景一文讲述了分布式一致性问题与分布式一致性算法的典型应用场景。作为分布式一致性代名词的Paxos算法号称是最难理解的算法。本文试图用通俗易懂的语言讲述Paxos算法。Paxos算法是Lamport宗师提出的一种基于消息传递的分布式一致性算法,使其获得2013年图灵奖。Paxos由Lamport于1998年在《The Part-Time Parliament》论文中首次公开,最初的描述使用希腊的一个小岛Paxos作为比喻,描述了Paxos小岛中通过决议的流程,并以此命转载 2022-06-13 20:18:40 · 306 阅读 · 0 评论 -
Docker与k8s
其实 Docker 和 k8s 并非直接的竞争对手,它俩相互依存。Docker 是一个容器化平台,而 k8s 是 Docker 等容器平台的协调器。虚拟化技术已经走过了三个时代,没有容器化技术的演进就不会有 Docker 技术的诞生。 (1)物理机时代:多个应用程序可能会跑在一台机器上。 (2)虚拟机时代:一台物理机器安装多个虚拟机(VM),一个虚拟机跑多个程序。 (3)容器化时代:一台物理机安装多个容器实例(container),一个容器跑多个程序。 容器化解决了软件开发过程中一个令人非常头疼的问题,用一转载 2022-06-13 10:41:24 · 7516 阅读 · 1 评论 -
SpringData JPA、Hibernate、Mybatis三者的区别
SpringData JPA只是接口,一种规范,具体的实现还是ORM做的Hibernate是完备的 ORM 框架,是符合 JPA 规范的,Hibernate 使用 JPA 就可以无需考虑数据库的兼容性问题。MyBatis不完备的ORM框架,比单纯写 JDBC 肯定是方便一点,但无可避免还是要写SQL,且无法做到跨数据库 。......原创 2022-06-13 09:44:35 · 387 阅读 · 0 评论 -
简述:分布式CAP理论和BASE理论
“all nodes see the same data at the same time”,即更新操作成功并返回客户端后,所有节点在同一时间的数据完全一致,这就是分布式的一致性。一致性的问题在并发系统中不可避免,对于客户端来说,一致性指的是并发访问时更新过的数据如何获取的问题。从服务端来看,则是更新如何复制分布到整个系统,以保证数据最终一致。可用性指“Reads and writes always succeed”,即服务一直可用,而且是正常响应时间。好的可用性主要是指系统能够很好的为用户服务,不出现用户转载 2022-06-12 20:48:41 · 255 阅读 · 0 评论 -
消息队列选型手册
前言消息队列中间件重要吗?面试必问问题之一,你说重不重要。我有时会问同事,为啥你用 RabbitMQ,不用 Kafka,或者 RocketMQ 呢?他给我的回答:“因为公司用的就是这个,大家都这么用”,如果你去面试,直接就被 Pass,今天这篇文章,告诉你如何回答。这篇文章,我重点突出消息队列选型,弱化每种队列内部的实现细节,精华提炼,可读性更强!常用的消息队列主要这 4 种,分别为 Kafka、RabbitMQ、RocketMQ 和 ActiveMQ,主要介绍前三,不 BB,上思维导图!消息队列基础| 什转载 2022-06-10 08:38:59 · 435 阅读 · 0 评论 -
「Docker入门指北」容器很难理解?带你从头到尾捋一遍
在计算机技术中,虚拟化(Virtualization) 是一种资源管理技术。 虚拟化的目的是在一台计算机上运行多个系统或应用,从而提高资源的利用率,节约成本。将单台服务器中的各种资源,如网络、CPU及内存等,整合转换为一台或多台虚拟机,用户就可以从多个方面充分利用计算资源。 由下图可以看出,一台物理机可以拥有多台虚拟机,而这些虚拟机都是基于物理机运行。 其中,物理机又叫作虚拟机的宿主机(可简称为主机),只要它处于正常运行状态,就可以一直承载虚拟机的运行。 由于虚拟机基于物理机运行,硬件设备都转载 2022-06-07 12:37:33 · 162 阅读 · 0 评论 -
什么是Maven快照(SNAPSHOT)
构建的时候会先在本地仓库中查找是否已经有了这个依赖库,若是没有的话才会去远程仓库中去拉取。假设项目中现在依赖"abc-1.0",在第一次构建的时候会把该库从远程仓库中下载到本地仓库缓存,之后再次构建都不会去访问远程仓库了。如果远程仓库中代码进行了修改,但版本号依旧叫"abc-1.0",那么此依赖没法获得最新更新。只有版本号更新后(如"abc-1.1")才能拉取到最新代码。每次构建时,会优先去远程仓库中查看是否有最新的"abc-1.0-SNAPSHOT.jar",若是有则下载下来使用。即便本地仓库中已经有了"转载 2022-06-05 15:07:19 · 2396 阅读 · 0 评论 -
SpringCloud必会知识点大全
微服务的特点: 常见的远程调用方式有以下几种:2.1.认识RPCRPC调用流程图:2.2.认识HTTP2.3.如何选择?3.1.简介Spring Cloud是Spring旗下的项目之一,官网地址:点我进入Spring最擅长的就是集成,把世界上最好的框架拿过来,集成到自己的项目中。Spring Cloud也是一样,它将现在非常流行的一些技术整合到一起,实现了诸如:配置管理,服务发现,智能路由,负载均衡,熔断器,控制总线,集群状态等等功能。其主要涉及的组件包括:Netflix以上只是其中一部分,架构图: 3.2.转载 2022-06-05 09:15:34 · 1355 阅读 · 1 评论 -
微服务:注册中心ZooKeeper、Eureka、Consul 、Nacos对比
服务注册中心本质上是为了解耦服务提供者和服务消费者。对于任何一个微服务,原则上都应存在或者支持多个提供者,这是由微服务的分布式属性决定的。更进一步,为了支持弹性扩缩容特性,一个微服务的提供者的数量和分布往往是动态变化的,也是无法预先确定的。因此,原本在单体应用阶段常用的静态LB机制就不再适用了,需要引入额外的组件来管理微服务提供者的注册与发现,而这个组件就是服务注册中心。CAP理论是分布式架构中重要理论关于P的理解,我觉得是在整个系统中某个部分,挂掉了,或者宕机了,并不影响整个系统的运作或者说使用,而可用性转载 2022-06-03 21:05:42 · 257 阅读 · 0 评论 -
源码深度剖析Eureka与Ribbon服务发现原理
本文基于 spring cloud dalston,同时文章较长,请选择舒服姿势进行阅读。Eureka 与 Ribbon 都是 Netflix 提供的微服务组件,分别用于服务注册与发现、负载均衡。同时,这两者均属于 spring cloud netflix 体系,和 spring cloud 无缝集成,也正由于此被大家所熟知。Eureka 本身是服务注册发现组件,实现了完整的 Service Registry 和 Service Discovery。Ribbon 则是一款负载均衡组件,那它和服务发现又有什么转载 2022-06-03 19:33:43 · 331 阅读 · 0 评论 -
zuul集成ribbon完成服务通信和负载均衡
目录Zuul2服务通信超时相关默认超时配置自定义超时配置负载均衡描述:zuul2通过Ribbon完成客户端负载均衡以及与服务器群集进行通信。zuul2的通信是集成Ribbon实现的,在Origin中集成Ribbon基本配置(例如IClientConfig)以完成功能接入,在loadbanace层将ribbion与netty结合用来抉择下层客户端服务器。zuul2集成ribbon core结构图:zuul2集成 ribbon loadbalanacer结构图: 可以在ribbon源码中找到相应配置信息:转载 2022-06-03 19:30:07 · 454 阅读 · 0 评论 -
[转]高并发架构设计之--「服务降级」、「服务限流」与「服务熔断」
目录服务降级1 、简介2 、使用场景3 、核心设计3.1 分布式开关3.2 自动降级分类3.3 配置中心3.4 处理策略 3.5 降级分类3.6 服务降级要考虑的问题4 、高级特性4.1 分级降级4.2 降级权值5 、总结与展望服务限流一、为什么要做服务限流设计?二、服务限流应该怎么做?三、服务限流的注意事项服务熔断服务熔断和服务降级比较熔断器雪崩效应熔断器(CircuitBreaker)HystrixHystrix特性1.断路器机制2.Fallback3.资源隔离Hystrix能做什么?Hystrix设计转载 2022-06-03 16:23:06 · 1065 阅读 · 0 评论 -
Hystrix 原理
Hystrix是Netflix开源库,这是一个针对分布式系统的延迟和容错库。Hystrix 供分布式系统使用,提供延迟和容错功能,隔离远程系统、访问和第三方程序库的访问点,防止级联失败,保证复杂的分布系统在面临不可避免的失败时,仍能有其弹性。Netflix称,在分布式环境中,不可避免会造成一些服务的失败。Hystrix 库旨在控制分布式服务中提供更大容限和服务失败之间的相互关系。Hystrix 通过隔离访问远程系统、服务和第三方库的点,阻止级联故障,从而使复杂的分布式系统更具弹性。Hystrix是一个用于处转载 2022-06-03 14:35:21 · 269 阅读 · 0 评论