1. 软件架构的演进过程软件架构的发展经历了由单体架构、垂直架构、SOA架构到微服务架构的演进过程,下面我们分别了解一下这几个架构。1.1 单体架构架构说明: 全部功能集中在一个项目内(All in one)。架构优点: 架构简单,前期开发成本低、开发周期短,适合小型项目。架构缺点: 全部功能集成在一个工程中,对于大型项目不易开发、扩展和维护。 技术栈受限,只能使用一种语言开发。 系统性能扩展只能            
                
         
            
            
            
            dubbo 重试、 多版本 、负载均衡重试设置了超时时间,在这个时间段内,无法完成服务访问,则自动断开连接。如果出现网络抖动,则这一-次请求就会失败。Dubbo提供重试机制来避免类似问题的发生。通过retries属性来设置重试次数。默认为2次//timeout 超时时间 单位毫秒  retries 设置重试次数
@Service(timeout = 3000,retries=0)//@Servic            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-02 07:46:04
                            
                                349阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            集群模式下的容错模式集群模式下,调用服务失败时的容错机制 1、默认是failover,重试机制,默认是两次。通常可用于读操作 2、failfast,快速失败模式,当调用失败时候就报错,通常用于写操作 3、failsafe,失败安全模式,当调用失败时直接忽略。通常用于写入日志等操作。 默认情况下,是failover模式,这时候可以只配retries="0"或者“2”等,来实现是重试几次还是重试0次(            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-22 20:22:24
                            
                                519阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1. Dubbo的服务请求失败怎么处理容错机制: Failover Cluster(默认) 失败自动切换,当出现失败,重试其它服务器。 通常用于读操作,但重试会带来更长延迟。Failfast Cluster 快速失败,只发起一次调用,失败立即报错。 通常用于非幂等性的写操作,比如新增记录。Failsafe Cluster 失败安全,出现异常时,直接忽略。 通常用于写入审计日志等操作。Failbac            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-25 15:11:27
                            
                                60阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1 问题分析:如何基于 dubbo 进行服务治理、服务降级、失败重试以及超时重试?服务治理,这个问题如果问你,其实就是看看你有没有服务治理的思想,因为这个是做过复杂微服务的人肯定会遇到的一个问题。服务降级,这个是涉及到复杂分布式系统中必备的一个话题,因为分布式系统互相来回调用,任何一个系统故障了,你不降级,直接就全盘崩溃?那就太坑爹了吧。失败重试,分布式系统中网络请求如此频繁,要是因为网络问题不小            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-22 12:07:27
                            
                                15阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            1 Dubbo启动时检查、集群容错、负载均衡、线程模型的设置以及选项: 
    
 启动时检查: 
 (1)Dubbo默认会在启动的时候检查依赖的服务是否可用,不可用时会抛出异常。阻止Spring初始化完成。以便上线时能及早发现问题。 
 (2)默认check="true"dubbo.properties可以直接配            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-29 12:37:17
                            
                                151阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            } else if (ProtocolUtils.isJavaGenericSerialization(generic)) { // @4
for (int i = 0; i < args.length; i++) {
if (byte[].class == args[i].getClass()) {
try {
UnsafeByteArrayInputStream is = new Uns            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-03 07:49:21
                            
                                104阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1、问题的直接表现:org.apache.dubbo.rpc.RpcException: No provider available from registry localhost:9090 for service com.hxy.boot.ticket.articles.api.ArticleService on consumer 192.168.137.1 use dubbo version            
                
         
            
            
            
            文章目录重试什么是重试测试注意本地存根什么是本地存根实现测试 重试什么是重试重试就是在调用失败时,会再次调用,如果在配置的调用次数内都失败,则认为此次请求异常,会抛出一个异常。Dubbo 在调用服务失败后,会默认重试两次。Dubbo 的路由机制确保会将超时的请求路由到其他机器上,而不是本机重试,所以 Dubbo 的重试机制也能一定程度的保证服务的质量。测试我们先将服务提供者修改一下,故意让其超时            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-19 11:21:47
                            
                                119阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            由于Dubbo底层采用Socket进行通信,自己对通信理理论也不是很清楚,所以顺便把通信的知识也学习一下。 通信理论计算机与外界的信息交换称为通信。基本的通信方法有并行通信和串行通信两种。1.一组信息(通常是字节)的各位数据被同时传送的通信方法称为并行通信。并行通信依靠并行I/O接口实现。并行通信速度快,但传输线根数多,只适用于近距离(相距数公尺)的通信。2.一组信息的各位数据被逐位顺序            
                
         
            
            
            
            在写生产者和消费者之前必须先启动监控中心和注册中心发布者案例:E:\AllCodes\gitTest\boot-dubbo-order-provider 消费者案例:E:\AllCodes\gitTest\boot-dubbo-user-consumer 二者使用到的共同模块:E:\AllCodes\gitTest\bootdubboapi (只有第一次写这个案例时,install到本地仓库即可)            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-07 21:11:12
                            
                                88阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Dubbo框架基础学习目录概述序列化地址缓存超时重试多版本负载均衡集群容错服务降级 目录概述Dubbo是阿里巴巴公司开源的一个高性能、轻量级的 Java RPC 框架。 致力于提供高性能和透明化的 RPC 远程服务调用方案,以及 SOA 服务治理方案。序列化dubbo 内部已经将序列化和反序列化的过程内部封装了,我们只需要在定义pojo类时实现Serializable接口即可,一般会定义一个公共            
                
         
            
            
            
            1.2.3 源码分析上一章简单演示了 Dubbo SPI 的使用方法,首先通过 ExtensionLoader 的 getExtensionLoader 方法获取一个 ExtensionLoader 实例,然后再通过 ExtensionLoader 的 getExtension 方法获取拓展类对象。下面我们从 ExtensionLoader 的 getExtension 方法作为入口,对拓展类对象            
                
         
            
            
            
            一、简介ribbon的重试是指consumer调用provider发生异常后,ribbon发起重试。RestTemplate和Feign使用的重试机制不一样,下面分开进行说明。二、RestTemplate重试RestTemplate都是spring-cloud来做的,内部依赖于spring-retry,增加如下配置打开重试机制:pom<dependency>
 <groupId&            
                
         
            
            
            
            前言本篇是服务暴露的最后一篇,从第一篇 服务暴露原理到现在,已经超过一个月,本篇是总结篇,将用画图的方式,总结这一个月来,究竟都讲了些什么(本篇图片较大,建议电脑上观看).插播面试题画一画服务注册与发现的流程图(本篇只涉及服务注册,服务发现的内容下周开始,关注肥朝以免错过精彩内容)目录本篇为以下内容(因为每周一篇的原则,所以也为本月内容)的总结,强烈建议先对其阅读,一些反复强调的概念本篇将不再重复            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-22 10:57:58
                            
                                13阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            在这一篇中,对一些个人开发时常用的配置参数进行记录。不保证准确,详情请见官方文档1、启动时检查简单的讲,就是如果A服务依赖了B服务,那么A在启动时会检查B服务能否提供服务,即A服务在启动时能否从注册中心拿到B服务的引用,如果拿不到,则会阻止A服务的启动,默认是开启的。在服务上线的时候,最好开启,能提早发现问题,比如A服务启动时需要通过B服务加载一些数据等,如果B服务没有启动,则A服务没办法加载到数            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-11 09:42:24
                            
                                160阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Kafka 提供了一个消息交付可靠性保障以及精确处理一次语义的实现。通常来说消息队列都提供多种消息语义保证最多一次 (at most once): 消息可能会丢失,但绝不会被重复发送。至少一次 (at least once): 消息不会丢失,但有可能被重复发送。精确一次 (exactly once): 消息不会丢失,也不会被重复发送。 默认情况下社区维护的 python-kafka 包会            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-08 21:34:51
                            
                                260阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            dubbo的负载均衡策略RandomLoadBalance 随机调用负载均衡 默认方式该类实现了抽象的AbstractLoadBalance接口,重写了doSelect方法,看方法的细节就是首先遍历每个提供服务的机器,获取每个服务的权重,然后累加权重值,判断每个服务的提供者权重是否相同,如果每个调用者的权重不相同,并且每个权重大于0,那么就会根据权重的总值生成一个随机数,再用这个随机数,根据调用者            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-04 14:26:14
                            
                                149阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            本文主要针对 dubbo-spring-boot-starter   2.7.7版本, 对应的 org.apache.dubbo 2.7.7 版本的源码。  本文主要从以下几个点来分析:服务端处理请求.时间轮(失败重试)。服务端接收数据的处理流程:  客户端请求发出去之后,服务端会收到这个请求的消息,然后触发调用。服务端这边接收消息的处理链路,也比较复杂,我们回到NettSer            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-09-16 13:30:25
                            
                                117阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            1.Dubbo启动时检查1.1提供者和消费者都会注册在注册中心,消费者需要提供者的服务地址,如果没有启动提供者,只启动了消费者,消费者找不着服务地址就会报错;1.2Dubbo默认会在启动时检查依赖的服务是否可用,不可用会抛出异常,默认chack="true",可以设置成false不检查;2.超时设置&配置覆盖关系2.1方法级优先,接口级次之,全局配置再次之2.2级别一样时,消费者优先,提供            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-29 13:16:19
                            
                                55阅读
                            
                                                                             
                 
                
                                
                    