来想象这样一个场景:你的垂直电商系统部署的 IDC 机房,在某一天发布了公告说,机房会在第二天凌晨做一次网络设备的割接,在割接过程中会不定时出现瞬间或短时间网络中断。机房网络的中断肯定会对业务造成不利的影响,即使割接的时间在凌晨(业务的低峰期),作为技术负责人的你,也要尽量思考方案来规避隔离的影响。然而不幸的是,在现有的技术架构下,电商业务全都部署在一个 IDC 机房中,你并没有好的解决办法。而            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-26 12:57:25
                            
                                18阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            通常一个产品,内部是需要很多子系统一起协助的,像有些电商系统,可能需要几百个系统一起协助。假设下面这样一种场景,假设应用a部署在机房room1,在room1的其他应用可以调用应用a的接口,然后还有很多的子系统是部署在room2这个机房的,room2中的应用也需要调用到应用a,那么这样room2中的应用调用room1中的a应用时,就有因为跨机房导致的时延问题。如果系统的qps要求很高,那么应用a最好            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-17 23:07:34
                            
                                59阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            接口级或应用级服务发现Dubbo3 默认采用 “应用级服务发现 + 接口级服务发现” 的双注册模式可以通过配置 dubbo.registry.register-mode=instance/interface/all 来改变注册行为。instance : 应用级interface : 接口级all :两者都注册(默认模式)Zookeeper增加 Maven 依赖<properties>            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-05 20:39:55
                            
                                85阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            前言紧接上文Dubbo分析之Protocol层,本文继续分析dubbo的cluster层,此层封装多个提供者的路由及负载均衡,并桥接注册中心,以Invoker为中心,扩展接口为Cluster, Directory, Router, LoadBalance;Cluster接口整个cluster层可以使用如下图片概括:各节点关系:这里的Invoker是Provider的一个可调用Service的抽象,            
                
         
            
            
            
            简介SPI 全称为 Service Provider Interface,是一种服务发现机制。SPI 的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。这样可以在运行时,动态为接口替换实现类。正因此特性,我们可以很容易的通过 SPI 机制为我们的程序提供拓展功能。SPI 机制在第三方框架中也有所应用,比如 Dubbo 就是通过 SPI 机制加载所有的组件。不过,D            
                
         
            
            
            
            一、前沿在上一节中我们分析了集群容错的第一部分 — 服务目录 Directory,服务目录在列举 Invoker 列表的过程中,会通过 Router 进行服务路由,筛选出符合路由规则的 provider,接下来我们分析集群容错的第二部分 — 服务路由 Router服务路由 Router 定义:Router 包含一条路由规则,路由规则决定了 consumer 的调用目标,即规定了 consumer            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-05 18:02:24
                            
                                168阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            上一篇博客讲了openswan的部署,现实环境中,可能会有多机房的部署使用,那么今天我就介绍一下生产环境情况,我们只用于简单的远程登录,未考虑到高可用,每个机房都部署了open***,一般是拨北京机房的open***然后通过openswan连接外地各个机房,如果openswan使用不了,就拨外地机房的open***      
    拓扑图 
           
    假设:            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-31 09:00:27
                            
                                89阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            服务路由源码解析1. 什么是服务路由服务路由包含一条(或若干条)路由规则,路由规则决定了服务消费者的调用目标,即规定了服务消费者可调用哪些服务提供者。Dubbo 目前提供了三种服务路由实现,分别为条件路由ConditionRouter、脚本路由 ScriptRouter 和标签路由 TagRouter。其中条件路由是我们最常使用的。下面将以条件路由为例来讲解服务路由的用法。2. 路由规则的设置路由            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-23 22:09:04
                            
                                6阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            dubbo如何集成路由1.默认路由是怎么设置的消费者服务启动时,会监听注册中心的变更。所以我调用下面的方法//RegistryDirectory
public synchronized void notify(List<URL> urls) {
        // 根据 URL 的分类或协议,分组成三个集合 。
       //.......省略代码
        // 2.ro            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-30 12:23:02
                            
                                56阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一、覆盖策略JVM启动-D参数优先,这样可以使用户在部署和启动时进行参数重写,比如在启动时需改变协议的端口。XML次之,如果在XML中有配置,则dubbo.properties中的相应配置项无效。Properties最后,相当于缺省值,只有XML没有配置时,dubbo.properties的相应配置项才会生效,通常用于共享公共配置,比如应用名。详见官方文档:http://dubbo.apache.            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-14 10:51:45
                            
                                30阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            文章目录一、前言1. dubbo-admin二、Router1. 调用时机三、MockInvokersSelector四、TagRouter1. 标签路由1.1 标签格式1.2 路由降级约定1.3 简单演示2. 代码实现2.1 TagRouter#notify2.2 TagRouter#route五、ConditionRouter六、多分组情况下路由失效 一、前言本系列为个人Dubbo学习笔记,            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-06 19:16:56
                            
                                102阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            配置原则JVM 启动 -D 参数优先,这样可以使用户在部署和启动时进行参数重写,比如在启动时需改变协议的端口。 XML 次之,如果在 XML 中有配置,则 dubbo.properties 中的相应配置项无效。 Properties 最后,相当于缺省值,只有 XML 没有配置时,dubbo.properties 的相应配置项才会生效,通常用于共享公共配置,比如应用名。服务检查:check值为tru            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-22 20:56:36
                            
                                54阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            从标题就知道,这次我讲的是集群容错中的第二个关键词 Router,中文意思就是 路由,这个 路由是个很有意思的词汇.因为前端的 路由和后端的 路由他们是不同的,但是思想是基本一致的.鉴于很多技术文章都有一个诟病,就是只讲 概念...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-07-30 10:02:31
                            
                                235阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            前言本文基于Dubbo2.6.x版本,中文注释版源码已上传github:xiaoguyu/dubbo今天,来聊点短的,服务路由Router,本文讲的是路由的调用路径,不讲路由的规则解析。想了解规则解析的可以去官方文档:服务路由Dubbo的路由,就是根据规则,规定了哪些服务消费者可调用哪些服务提供者。怎么用我们可以在服务治理控制台Dubbo-Admin写入路由规则。安装Dubbo-Admin我是使用            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-18 11:06:19
                            
                                124阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Dubbo源码解析 --- DIRECTORY和ROUTER今天看一下Directory和Router。我们直接从代码看起(一贯风格),先看后总结,对着总结再来看,相信会收获很多。我们先看com.alibaba.dubbo.config.ReferenceConfig的createProxy:if (urls.size() == 1) {
	invoker = refprotocol.refer(            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-25 15:22:23
                            
                                40阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            文章目录限流基本概念QPS和连接数控制传输速率黑白名单分布式环境限流方案常用算法令牌桶算法漏桶算法滑动窗口常用的限流方案Nginx限流中间件限流限流组件合法性验证限流Guava限流网关层限流从架构维度考虑限流设计具体的实现限流的手段:Tomcat限流限流基本概念对一般的限流场景来说它具有两个维度的信息:时间 限流基于某段时间范围或者某个时间点,也就是我们常说的“时间窗口”,比如对每分钟、每秒钟的时            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-21 23:59:23
                            
                                15阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Nacos服务分级存储模型一个服务对应多个实例,最初,所有的实例安放在一个机房之中,这就相当于鸡蛋放在一个篮子里,如果这个机房出现了问题,那整个服务就挂掉了。所以要将一个实例部署多个机房,容灾服务跨集群调用问题为什么要在两者之间添加集群呢,比如杭州的机房中存储有order-service服务,同时也有user-service服务, 上海的机房中存储有order-service服务,同时也有user            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-01-26 06:25:53
                            
                                165阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Ceph多机房集群是指在不同地理位置部署的多个Ceph数据中心互联组成的集群系统。这种部署方式可以保证数据的高可用性和灾备能力,提高整个系统的稳定性和可靠性。Ceph是一种开源的分布式存储系统,通过将数据划分为多个块并存储在不同的存储介质上,实现数据的冗余备份和自动平衡,以应对硬件故障和性能瓶颈。
在传统的单一数据中心部署环境下,一旦出现硬件故障或网络中断等问题,可能会导致数据不可访问或服务中断            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-03-22 09:39:25
                            
                                84阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # Kubernetes 多机房架构的简单介绍
在现代云计算的背景下,Kubernetes 已经成为了容器编排的事实标准,帮助我们更高效地管理应用程序。然而,当单个机房的资源无法满足需求或者需要实现高可用性时,使用多个机房部署 Kubernetes(Multi-Region Kubernetes)就变得必不可少。
本文将探讨 Kubernetes 的多机房架构,包括其优点、基本架构及相应的代码            
                
         
            
            
            
            专栏前面我在讲服务治理时提到过,为了实现高可用性,微服务一般要部署在多个机房,保证有一个机房因为各种不可抗力因素导致不可用时,可以把流量切换到其他可用机房来避免故障。但是,是不是只要部署到多个机房就万事大吉了呢?你有没有想过这几个问题呢?一切正常时用户请求该访问哪个机房?多个机房之间的数据如何同步?多个机房之间的数据如何确保持一致性?你看多机房部署并非看似那么轻松,里面还有不少门道。接下来,我就以            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-03 09:34:55
                            
                                137阅读