
架构师进阶-微服务架构
文章平均质量分 97
SpringCloud、SpringCloud Gateway、Apollo、SpringCloud Alibaba、SpringSecurity、Skywalking、Admin监控&Sleuth
道友老李
提供工业机器视觉解决方案(涵盖光源、相机、镜头、结构、视觉技术等)和自研接近开关传感器(衰减系数1)产品,联系方式:18271933684(同vx)。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
微服务链路追踪:Sleuth&Zipkin
现存问题是什么?Sleuth&Zipkin:SpringCloud中的一个组件,专门链路追踪SkyWalking:Apache组织下的一个开源框架,并且是个顶级项目阿里鹰眼:没玩过~~美团Cat:没玩过~~Sleuth&Zipkin对比SkyWalking相同点,都是链路追踪框架Sleuth是收集信息,Zipkin是图形化展示。SkyWalking一锅端~~SkyWalking的报表展示比Sleuth&Zipkin更丰富。原创 2025-04-14 05:00:00 · 44488 阅读 · 11 评论 -
拥有故障诊断能力的分布式链路追踪系统:Skywalking
Skywalking是由国内开源爱好者吴晟开源并提交到Apache孵化器的产品,它同时吸收了Zipkin /Pinpoint /CAT 的设计思路。特点是:支持多种插件,UI功能较强,支持非侵入式埋点。目前使用厂商最多,版本更新较快。数据存储支持:Elasticsearch、MySQL、H2、TiDB。默认是H2,而且是存到内存。实际我们一般将其存到ES。在默认情况下Skywalking是没有记录我们的业务方法的,如果需要添加业务方法的链路监控我们就需要添加如下的依赖</</</</原创 2025-04-14 05:00:00 · 44498 阅读 · 13 评论 -
【微服务架构】SpringSecurity核心源码剖析+jwt+OAuth(十二):SpringSecurity中OAuth2.0的实现(OAuth2.0实战案例【下】)
所有要使用当前项目资源的项目,都是我们的客户端。比如我们之前举的例子,A服务打印照片,B服务存储照片。A服务要使用B服务的资源,那么A服务就是B服务的客户端。这里要区分用户的信息和客户端信息,用户信息是用户在B服务上注册的用户信息,在sys_user表中。客户端信息是A服务在B服务中注册的账号,在OAuth2的oauth_client_details表中。由于上面用户已经登录过了,所以无需再次登录,其实和上面是有登录步骤的,这时,浏览器直接返回了token。和source项目的一样。原创 2025-04-13 05:00:00 · 45008 阅读 · 11 评论 -
【微服务架构】SpringSecurity核心源码剖析+jwt+OAuth(十二):SpringSecurity中OAuth2.0的实现(OAuth2.0实战案例【上】)
Spring Security 是一个功能强大且高度可配置的安全框架,用于为 Java 应用程序提供身份验证和授权功能。前面我们是采用单点登录的方式解决了这个问题,那么今天我们把这个资源交给。即便是用OAuth2管理资源,也一样需要认证,这两个对象还是需要的。复制前面介绍的JWT中的相关代码(GitHub地址会提供)本案例同样通过maven的聚合工程来实现。来管理,使用通行的token来访问资源。接下来创建我们的资源项目。原创 2025-04-13 05:00:00 · 44688 阅读 · 13 评论 -
【微服务架构】SpringSecurity核心源码剖析+jwt+OAuth(十二):SpringSecurity中OAuth2.0的实现(OAuth2.0介绍)
先说OAuth,OAuth是Open Authorization的简写。OAuth协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAuth的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAuth是安全的。OAuth2.0是OAuth协议的延续版本,但不向前兼容(即完全废止了OAuth1.0)。原创 2025-04-12 05:00:00 · 45078 阅读 · 10 评论 -
【微服务架构】SpringSecurity核心源码剖析+jwt+OAuth(十一):SpringSecurity基于JWT实现Token的处理
在SpringSecurity中的认证是通过UsernamePasswordAuthenticationFilter来处理的,现在我们要通过JWT来处理,那么我们就需要重写其中几个处理的方法然后就是当客户端提交请求,我们需要拦截请求检查header头中是否携带了对应的Token信息,并检查是否合法。/*** 校验Token是否合法的Filter*/@Override//如果携带错误的token,则给用户提示请登录!resultMap.put("msg", "请登录!");原创 2025-04-12 05:00:00 · 47971 阅读 · 13 评论 -
【微服务架构】SpringSecurity核心源码剖析+jwt+OAuth(十):单点登录原理及JWT实现
官方:JSON Web Token (JWT) is an open standard (RFC 7519HMACRSAorECDSAJSON Web 令牌(JWT)是一种开放标准(RFC 7519) ,它定义了一种紧凑和自包含的方式,用于作为 JSON 对象在各方之间安全地传输信息。可以验证和信任此信息,因为它是数字签名的。JWTs 可以使用 secret (使用 HMAC 算法)或使用 RSA 或 ECDSA 的公钥/私钥对进行签名。原创 2025-04-11 05:00:00 · 45739 阅读 · 10 评论 -
【微服务架构】SpringSecurity核心源码剖析+jwt+OAuth(九):SpringSecurity核心过滤器-SecurityContextPersistenceFilter
首先用户的认证状态Authentication是存储在SecurityContext中的,而每个用户的SecurityContext是统一存储在HttpSession中的。首先来看看在spring-security-core中的SecurityContextHolder,这个是一个非常基础的对象,存储了当前应用的上下文SecurityContext,而在SecurityContext可以获取Authentication对象。基于上面讲解的三者的关系我们在项目中如此来获取当前登录的用户信息了。原创 2025-04-11 05:00:00 · 45921 阅读 · 13 评论 -
【微服务架构】SpringSecurity核心源码剖析+jwt+OAuth(八):SpringSecurity中的核心过滤器-CsrfFilter
跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的 Web 应用程序上执行非本意的操作的攻击方法。跟跨网站脚本(XSS)相比,XSS利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。原创 2025-04-10 05:00:00 · 46603 阅读 · 10 评论 -
【微服务架构】SpringSecurity核心源码剖析+jwt+OAuth(七):SpringSecurity中的权限管理
最常用的,也是SpringSecurity中默认的 FilterSecurityInterceptor实例中 AccessDecisionManager默认的投票器,它其实就是 http.authorizeRequests()基于 Spring-EL进行控制权限的授权决策类。首先是obtainSecurityMetadataSource()方法,该方法的作用是根据当前的请求获取对应的需要具备的权限信息,比如访问/login.jsp需要的信息是 permitAll 也就是可以匿名访问。原创 2025-04-10 05:00:00 · 47707 阅读 · 13 评论 -
【微服务架构】SpringSecurity核心源码剖析+jwt+OAuth(六):深入理解SecurityConfigurer
SecurityConfigurerAdapter 实现了 SecurityConfigurer 接口,我们所使用的大部分的xxxConfigurer 也都是 SecurityConfigurerAdapter 的子类。SecurityConfigurerAdapter 在 SecurityConfigurer 的基础上,还扩展出来了几个非常好用的方法。在前面的内容中曾经多次提到过,Spring Security 过滤器链中的每一个过滤器,都是通过 xxxConfigurer 来进行配置的,而这些。原创 2025-04-09 05:00:00 · 46896 阅读 · 11 评论 -
【微服务架构】SpringSecurity核心源码剖析+jwt+OAuth(五):深入理解HttpSecurity的设计
然后我们再来看看AbstractConfiguredSecurityBuilder这个抽象类,他其实是SecurityBuilder的实现,在这儿需要搞清楚他们的关系。类型作用声明了build方法提供了获取对象的方法以及控制一个对象只能build一次除了提供对对象细粒度的控制外还扩展了对configurer的操作然后对应的三个实现类。首先 AbstractConfiguredSecurityBuilder 中定义了一个枚举类,将整个构建过程分为 5 种状态,也可/*** 还没开始构建*/原创 2025-04-09 05:00:00 · 47321 阅读 · 14 评论 -
【微服务架构】SpringSecurity核心源码剖析+jwt+OAuth(四):SpringSecurity初始化的本质(解析配置文件的过程)
接下来我们来分析下Spring初始化的时候是如果解析SpringSecurity的配置文件的,并且存储在哪了?而SpringSecurity的解析是先进入import中,然后进入到parseCustomElement()方法来解析。在上面的步骤基础上我们进入registerBeanDefinitions方法中来看看是如何具体实现配置文件的解析操作。在SecurityNamespaceHandler中的 parsers中保存的就是 节点对应的解析器。到这http标签的解析就差不多了。原创 2025-04-08 05:00:00 · 49821 阅读 · 13 评论 -
【微服务架构】SpringSecurity核心源码剖析+jwt+OAuth(三):SpringSecurity请求流转的本质
过滤器链的代理对象:增强过滤器链(具体处理请求的过滤器还不是FilterChainProxy ) 根据客户端的请求匹配合适的过滤器链链来处理请求。ExceptionTranslationFilter是我们看的过滤器链中的倒数第二个,作用是捕获倒数第一个过滤器抛出来的异常信息。当我们的Web服务启动的时候,SpringSecurity做了哪些事情?当系统启动的时候,肯定会加载我们配置的web.xml文件。分析SpringSecurity的核心原理,那么我们从哪开始分析?以及我们要分析哪些内容?原创 2025-04-08 05:00:00 · 47764 阅读 · 14 评论 -
【微服务架构】SpringSecurity核心源码剖析+jwt+OAuth(二):SpringSecurity的源码初探(核心组件、认证流程)
首先来看看在spring-security-core中的SecurityContextHolder,这个是一个非常基础的对象,存储了当前应用的上下文SecurityContext,而在SecurityContext可以获取Authentication对象。attemptAuthentication方法的作用是获取Authentication对象其实就是对应的认证过程,我们进入到UsernamePasswordAuthenticationFilter中来查看具体的实现。来存储对应的信息的。原创 2025-04-07 05:00:00 · 48921 阅读 · 39 评论 -
【微服务架构】SpringSecurity核心源码剖析+jwt+OAuth(一):SpringSecurity的初次邂逅(概念、认证、授权)
Spring Security 是一个功能强大且高度可配置的安全框架,用于为 Java 应用程序提供身份验证和授权功能。以下是对它的详细介绍:## 核心功能* **身份验证**:支持多种身份验证方式,如用户名 / 密码、OAuth、LDAP 等。可以方便地与各种身份验证源集成,如数据库、LDAP 目录、OAuth 提供商等。例如,在一个 Web 应用中,用户可以通过输入用户名和密码进行登录,Spring Security 会验证用户提供的凭据是否有效。* **授权**:提供了细粒度的授权控原创 2025-04-07 05:00:00 · 50538 阅读 · 65 评论 -
【微服务架构】SpringCloud Alibaba(九):分布式事务Seata使用和源码分析(TCC模式、Saga模式)
TCC相关注解如下:@LocalTCC 适用于SpringCloud+Feign模式下的TCC,@LocalTCC一定需要注解在接口上,此接口可以是寻常的业务接口,只要实现了TCC的两阶段提交对应方法便可@TwoPhaseBusinessAction 注解try方法,其中name为当前tcc方法的bean名称,写方法名便可(全局唯一),commitMethod指向提交方法,rollbackMethod指向事务回滚方法。原创 2025-04-06 05:00:00 · 49760 阅读 · 11 评论 -
【微服务架构】SpringCloud Alibaba(九):分布式事务Seata使用和源码分析(多数据源、接入微服务应用、XA模式设计思路)
我们对应的service 上都是有@Datasource注解,这个注解DynamicDataSourceAspect会在方法调用的时候进行拦截,在方法之间会解析@Datasource中的值,会将其设置到ThreadLocal里面,这里面DynamicDataSourceContextHolder,然后调用mybatis时候获取链接的时候时候会带调用上面的类determineCurrentLookupKey获取对应的key,我们通过这个key可以获取对应的数据源。会有阻塞模式 ,降低性能。原创 2025-04-06 05:00:00 · 49054 阅读 · 16 评论 -
【微服务架构】SpringCloud Alibaba(九):分布式事务Seata使用和源码分析(Seata介绍、搭建、AT模式设计思路)
概念:Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。AT模式:提供无侵入自动补偿的事务模式XA模式:支持已实现XA接口的数据库的XA模式TCC模式:TCC则可以理解为在应用层面的2PC,是需要我们编写业务逻辑来实现。SAGA模式:为长事务提供有效的解决方案。原创 2025-04-05 05:00:00 · 49683 阅读 · 12 评论 -
【微服务架构】SpringCloud Alibaba(九):Seata使用和源码分析(数据库事务ACID、分布式事务典型场景、基础理论、协议)
分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。原创 2025-04-05 05:00:00 · 49532 阅读 · 16 评论 -
【微服务架构】SpringCloud Alibaba(八):Nacos 2.1.0 作为配置中心(源码分析)
增量dump就是捞取最近六小时的新增配置(包括更新的和删除的),先按照这批数据刷新一遍内存和文件,再根据内存里所有的数据全量去比对一遍数据库,如果有改变的再同步一次,相比于全量dump的话会减少一定的数据库IO和磁盘I0次数。总结:分析我们发送请求是从缓存文件中获取到的,这里带出两个问题,1、因为我们是从缓存中获取的,那我们直接修改数据库应该是不起作用的 2、缓存一定是从数据库中获取的,那什么时候设置进去的呢。如果正常情况下应该是放到队列里面,那就应该有取的地方,全文搜索对应的queue。原创 2025-04-04 05:00:00 · 50111 阅读 · 12 评论 -
【微服务架构】SpringCloud Alibaba(八):Nacos 2.1.0 作为配置中心(Nacos的使用)
官方文档:Nacos 提供用于存储配置和其他元数据的 key/value 存储,为分布式系统中的外部化配置提供服务器端和客户端支持。使用 Spring Cloud Alibaba Nacos Config,您可以在 Nacos Server 集中管理你 Spring Cloud 应用的外部属性配置。原创 2025-04-04 05:00:00 · 50038 阅读 · 14 评论 -
【微服务架构】SpringCloud Alibaba(七):Nacos 2.1.0 作为注册中心(源码分析之GRPC)
Spring Cloud Alibaba是阿里巴巴提供的一站式微服务解决方案,是Spring Cloud体系中的一个重要分支,它将阿里巴巴在微服务领域的实践经验和开源技术进行了整合,为开发者提供了一系列便捷的工具和组件,用于构建分布式微服务应用。我们想我们Springmvc处理请求的时候,我们是根据路径判断对应的controller,这里我们的请求应该是那个具体的handler呢?总结:我们处理实例就是用的监听器来获取对应的所有实例,然后以map处理,所有请求从这map中拿取对应的对象。原创 2025-04-03 05:00:00 · 50675 阅读 · 11 评论 -
【微服务架构】SpringCloud Alibaba(七):Nacos 2.1.0 作为注册中心(源码分析之心跳机制、数据同步)
这里集群同步时候,我们采用的异步处理,这里和我们服务变更推送类似。原创 2025-04-03 05:00:00 · 50332 阅读 · 13 评论 -
【微服务架构】SpringCloud Alibaba(七):Nacos 2.1.0 作为注册中心(源码分析之服务发现、服务订阅、服务变更推送)
服务启动时候读取磁盘中数据放到缓存读取磁盘数据 如果没有则发送请求获取数据,然后写到缓存读取磁盘数据,如果有则判断时间是否过期,过期则发送请求,写到缓存读取数据是一个定时任务每6秒执行一次,如果失败就会延长,但最大时长是1分钟这里主要是从注册表中获取数据,所以理解这里需要看一下我们的注册表中,各个数据之间的关系。原创 2025-04-02 05:00:00 · 50932 阅读 · 12 评论 -
【微服务架构】SpringCloud Alibaba(七):Nacos 2.1.0 作为注册中心(源码分析之服务启动入口、实例注册、注册表)
找入口的方式:自动装配类 spring.factories事件驱动:NacosAutoServiceRegistration实现了applicationListener接口判断变量 1、 debug 2、 全文搜索 定位赋值位置通过ephemeral的值判断是grpc通信,还是http通信,通过这我们能判断ap模式是用的grpc模式,cp模式是用http通信。原创 2025-04-02 05:00:00 · 50906 阅读 · 13 评论 -
【微服务架构】SpringCloud Alibaba(六):SpringCloud Gateway网关(过滤器工厂配置)
pre : Gateway转发请求之前post : Gateway转发请求之后自定义过滤器工厂-方式1继承: AbstractGatewayFilterFactory参考示例:org.springframework.cloud.gateway.filter.factory.RequestSizeGatewayFilterFactoryspring:cloud:gateway:routes:filters:args:# 单位字节自定义过滤器工厂-方式2。原创 2025-04-01 05:00:00 · 52190 阅读 · 12 评论 -
【微服务架构】SpringCloud Alibaba(六):SpringCloud Gateway网关(网关介绍、路由谓词工厂配置)
网关作为流量的入口,常用的功能包括路由转发,权限校验,限流等。Spring Cloud Gateway 是Spring Cloud官方推出的第二代网关框架,定位于取代 Netflix Zuul。相比 Zuul 来说,Spring Cloud Gateway 提供更优秀的性能,更强大的有功能。Spring Cloud Gateway 是由 WebFlux + Netty + Reactor 实现的响应式的 API 网关。它不能在传统的 servlet 容器中工作,也不能构建成 war 包。原创 2025-04-01 05:00:00 · 51803 阅读 · 14 评论 -
【微服务架构】SpringCloud Alibaba(五):服务容错 Sentinel(规则持久化、RestTemplate和Feign整合Sentinel、限流算法)
假设我们仍然设定1秒内允许通过的请求是200个,但是在这里我们需要把1秒的时间分成多格,假设分成5格(格数越多,流量过渡越平滑),每格窗口的时间大小是200毫秒,每过200毫秒,就将窗口向前移动一格。图中将窗口划为5份,每个小窗口中的数字表示在这个窗口中请求数,所以通过观察上图,可知在当前时间快(200毫秒)允许通过的请求数应该是70而不是200(只要超过70就会被限流),因为我们最终统计请求数时是需要把当前窗口的值进行累加,进而得到当前请求数来判断是不是需要进行限流。但是在实际情况下,流量往往是突发的。原创 2025-03-31 05:00:00 · 15411 阅读 · 12 评论 -
【微服务架构】SpringCloud Alibaba(五):服务容错 Sentinel(降级规则、热点规则、授权规则、系统规则、集群规则)
如果依赖的服务出现了不稳定的情况,请求的响应时间变长,那么调用服务的方法的响应时间也会变长,线程会产生堆积,最终可能耗尽业务自身的线程池,服务本身也变得不可用。)内请求数目大于设置的最小请求数目,并且慢调用的比例大于阈值,则接下来的熔断时长内请求会自动被熔断。Spring Cloud Alibaba是阿里巴巴提供的一站式微服务解决方案,是Spring Cloud体系中的一个重要分支,它将阿里巴巴在微服务领域的实践经验和开源技术进行了整合,为开发者提供了一系列便捷的工具和组件,用于构建分布式微服务应用。原创 2025-03-31 05:00:00 · 16174 阅读 · 14 评论 -
【微服务架构】SpringCloud Alibaba(五):服务容错 Sentinel(sentinel使用、流控规则)
/ 务必保证 finally 会被执行try {// 资源名可使用任意有业务语义的字符串,注意数目不能太多(超过 1K),超出几千请作为参数传入而不要直接作为资源名// EntryType 代表流量类型(inbound/outbound),其中系统规则只对 IN 类型的埋点生效entry = SphU.entry("自定义资源名");// 被保护的业务逻辑// 资源访问阻止,被限流或被降级// 进行相应的处理操作// 若需要配置降级规则,需要通过这种方式记录业务异常。原创 2025-03-30 05:00:00 · 15607 阅读 · 11 评论 -
【微服务架构】SpringCloud Alibaba(五):服务容错 Sentinel(常见容错方案、sentinel基本操作)
Sentinel (分布式系统的流量防卫兵) 是阿里开源的一套用于服务容错的综合性解决方案。它以流量为切入点, 从流量控制、熔断降级、系统负载保护等多个维度来保护服务的稳定性。丰富的应用场景:Sentinel承接了阿里巴巴近 10 年的双十一大促流量的核心场景, 例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。完备的实时监控:Sentinel提供了实时的监控功能。原创 2025-03-30 05:00:00 · 16662 阅读 · 14 评论 -
【微服务架构】SpringCloud Alibaba(四):深入讲解 Feign
到这⾥我们基本上可以知道:⽐如当服务B的getById⽅法被调⽤时、会调⽤服务A的getById⽅法,⽽服务A这⾥因为是通过Feign声明式调⽤的,肯定会先通过服务A的Feign动态代理FeignInvocationHandler,从动态代理中的Map<Method, MethodHandler>中、找到具体某个⽅法的SynchronousMethodHandler,然后执⾏该SynchronousMethodHandler中的invoke⽅法来处理⽅法的逻辑。原创 2025-03-29 05:00:00 · 15550 阅读 · 11 评论 -
【微服务架构】SpringCloud Alibaba(三):负载均衡 LoadBalance
Spring Cloud LoadBalancer是Spring Cloud官方自己提供的客户端负载均衡器,抽象和实现,用来替代Ribbon(已经停更),import org// 服务列表 private ObjectProvider < ServiceInstanceListSupplier > serviceInstanceListSupplierProvider;} /*** 使用随机数获取服务* @return。原创 2025-03-29 05:00:00 · 16559 阅读 · 14 评论 -
【微服务架构】SpringCloud Alibaba(三):负载均衡 Ribbon
这个拦截器里面就是上面弄的LoadBalancerInterceptor。request.getURI(), 这个不用我多解释了吧,restTemplate就是发送http请求,这里获取他的请求链接,然后获取他的host,他的host是什么就是nx-stock,就是serviceName,然后将这serviceName传递到我们的execute里面,我们推想这里很可能对我们serviceName进行解析,从我们的nacos注册中心获取注册列表,然后通过负均衡选择一个合适的地址,进行调用。原创 2025-03-28 05:00:00 · 15176 阅读 · 12 评论 -
【微服务架构】SpringCloud Alibaba(二):Nacos作为配置中心(Config数据模型、集成SpringBoot、动态刷新原理)
这个也是在之前的图中讲到,他是将客户端每次请求都会放到这个quene里面,放到这里面就是,当页面或者通过api调用修改了配置,修改配置之后会发送一个消息,订阅消息一端就会遍历我们刚刚这个allSubs队列当中,看看这个队列里面请求的配置发生了变化,如果发生变化的配置和请求的客户端监听的配置匹配上之后,就会立即将变更的内容发挥给客户端。这里面的代码就是将客户端请求,进行个返回,那返回之前他会干什么,他会进行比较, 他会比较我们监听的配置和我本身的配置是否发生了变化,他的执行的代码在他的run当中,原创 2025-03-28 05:00:00 · 16007 阅读 · 12 评论 -
【微服务架构】SpringCloud Alibaba(一):Nacos作为注册中心(集群搭建)
Nacos集群通常由多个Nacos Server节点组成,这些节点通过网络相互连接并协同工作。客户端与Nacos集群进行通信,获取服务列表、配置信息等。原创 2025-03-27 05:00:00 · 15793 阅读 · 12 评论 -
【微服务架构】SpringCloud Alibaba(一):Nacos作为注册中心(注册中心原理、源码解析)
Spring Cloud Alibaba是阿里巴巴提供的一站式微服务解决方案,是Spring Cloud体系中的一个重要分支,它将阿里巴巴在微服务领域的实践经验和开源技术进行了整合,为开发者提供了一系列便捷的工具和组件,用于构建分布式微服务应用。以下是其详细介绍:首先服务在启动的时候会将数据注册到注册中心,这样就服务只要启动就可以对外提供服务了, 那么同时他也要维持一个心跳,心跳的意义就是某个服务挂掉,我肯定让注册中心知道,如果服务挂了还没有告诉注册中心,原创 2025-03-27 05:00:00 · 16979 阅读 · 16 评论 -
【微服务架构】SpringCloud Alibaba(一):Nacos作为注册中心(安装以及编译、领域模型、使用)
我们可以设想这样的一个场景,比方阿里只在杭州部署一个淘宝的集群,那我们北方的人民去访问,是不是就会相对较慢,一般都会再南方和北方都设置两个集群。当北方人民访问的时候一般我们都访问北京这个集群的服务,其他的服务都会在北京的集群里面互相调用,而不会垮cluster进行访问,这样在同一个数据中心访问都是比较快的。Instance: 这个就是实例,并且是多实例的,这样防止单点问题,从而实现高可用,当北京集群坏了,他会可以访问上海的集群。当一个实例挂掉,另一个实例会替代,当一个集群挂掉,另一个集群会替代上。原创 2025-03-26 05:00:00 · 15611 阅读 · 13 评论 -
【微服务架构】SpringCloud(八):网关 SpringCloud Gateway
网关是一个服务,是访问内部系统的唯一入口,提供内部服务的路由中转,额外还可以在此基础上提供如身份验证、监控、负载均衡、限流、降级与应用检测等功能。MDB:ribbon:// 各种逻辑~~~~ System . out . println("xxoo");// 各种逻辑~~~~ System . out . println("xxoo");// 各种逻辑~~~~ System . out . println("xxoo");原创 2025-03-26 05:00:00 · 16025 阅读 · 18 评论