一、版本介绍Nacos:1.3.1SpringCloud:2021.0.2SpringCloudgateway:3.1.2二、背景微服务下线后,网关存在短时间内转发失效服务,导致前端访问异常微服务上线后,网关没有及时刷新本地缓存的服务,导致前端可能找不到服务实例nacos的主动推送实例变化比网关自己拉取要及时的多三、网关增加订阅微服务实例变化的代码importstaticorg.springframework.cloud.loadbalancer.core.CachingServiceInstanceListSupplier.SERVICE_INSTANCE_CACHE_NAME;import
SpringCloudGateWay+RocketMQ实现API访问日志收集需求背景产品经理突然找到我说,咱们这个产品貌似没有实现之前旧的系统平台操作日志了;希望我尽快实现这个需求,以应对一些检查;因为时间关系再加上人员问题,跟我原先规划得有些背道而驰草拟方案1.写一个AOP日志Starter,再需要的模块中引入,对应方法去标记注解,工程量比较大,目前所有的模块的都得逐步去添加,个人比较懒,因此该方案备选2.在网关层通过全局拦截器Filter拦截所有请求,通过MQ记录日志,再通过监听MQ实现日志入库,因为原先的架构已经有MQ了,所以觉得这种方案更快捷,因为撸起袖子往下干具体实现(推荐使用方式1
SpringCloud高级应用-源码解析1.gateway源码解析1.1自动装配1.2核心装配1.2.1GatewayClassPathWarningAutoConfiguration1.2.2GatewayAutoConfiguration1.2.3GatewayLoadBalancerClientAutoConfiguration1.2.4GatewayRedisAutoConfiguration1.3Gateway工作机制1.3.1Gateway的三个核心组件1.3.2请求处理流程(图)1.3.3入口&流程1.3.4主要过滤器1.3.4.1RouteToRequestUrlFilter(
一:什么是SpringBoot1.SpringBoot不是一个全新的框架,而是对Spring框架的一个封装。所以,以前Spring可以做的事情,现在用SpringBoot都可以做。2.SpringBoot整合了很多优秀的框架,用来简化Spring应用搭建和开发过程,不用我们自己手动去写一堆xml进行SpringBean配置。3. 一般情况下,一个SpringBoot应用=一个微服务=一个模块。SpringBoot的核心功能:1.独立运行:SpringBoot开发的应用可以以JRA包的形式独立运行,运行一个SpringBoot应用只需通过java–jarxxxx.jar来运行;2.内嵌容器:Sp
前提介绍SpringCloud-Alibaba致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用服务的必需组件,方便开发者通过SpringCloud编程模型轻松使用这些组件来开发分布式应用服务。依托SpringCloudAlibaba,您只需要添加一些注解和少量配置,就可以将SpringCloud应用接入阿里分布式应用解决方案,通过阿里中间件来迅速搭建分布式应用系统。此外,阿里云同时还提供了SpringCloudAlibaba企业版微服务解决方案,包括无侵入服务治理(全链路灰度,无损上下线,离群实例摘除等),企业级Nacos注册配置中心和企业级云原生网关等众多产品。SpringCl
前言 spring-cloud-starter-netflix-ribbon已经不再更新了,最新版本是2.2.10.RELEASE,最后更新时间是2021年11月18日,详细信息可以看maven官方仓库:https://search.maven.org/artifact/org.springframework.cloud/spring-cloud-starter-netflix-ribbon,SpringCloud官方推荐使用spring-cloud-starter-loadbalancer进行负载均衡。我们在开发的时候,多人开发同一个微服务,都注册到同一个nacos,前端请求的时候,网
前言上一文中,我们从官方的图示了解到Nacos的服务数据结构。但我关心的是,Nacos2.x不是重构了吗?怎么还是这种数据结构?我推测,必然是为了对Nacos1.x的兼容,实际存储应该不是这样的。于是,沿着这个问题出发我们一起来翻一下源码。从NamingService的使用开始在扎入源码之前,我们需要回忆一下,我们是怎么使用Nacos的?构建NamingServiceNamingServiceserviceRegistry=NacosFactory.createNamingService(properties);实际上,这个动作的背后,意味着我们连接了Nacos服务端。注册服务serviceR
一、SpringCloud与Dubbo的区别初始定位不同:SpringCloud定位为微服务架构下的一站式解决方案;Dubbo是SOA时代的产物,它的关注点主要在于服务的调用和治理生态环境不同:SpringCloud依托于Spring平台,具备更加完善的生态体系;而Dubbo一开始只是做RPC远程调用,生态相对匮乏,现在逐渐丰富起来。调用方式:SpringCloud是采用Http协议做远程调用,接口一般是Rest风格,比较灵活;Dubbo是采用Dubbo协议,接口一般是Java的Service接口,格式固定。但调用时采用Netty的NIO方式,性能较好。组件差异比较多,例如SpringClou
SpringCloud整合Zookeeper的时候调用找不到服务首先,我们在注册中心注册了这个服务:然后我们使用RestTemplate调用的时候发现失败了:找不到这个服务:找了很多资料发现这个必须要加上负载才行 @Bean@LoadBalanced//负载publicRestTemplategetRestTemplate(){returnnewRestTemplate();}这样就可以正常的访问了
【SpringCloud负载均衡】【源码+图解】【一】LoadBalancer的HelloWorld体验目录2.LoadBalancer的配置2.1config.LoadBalancerAutoConfiguration2.2BlockingLoadBalancerClientAutoConfiguration2.3LoadBalancerEurekaAutoConfiguration2.4loadbalancer.LoadBalancerAutoConfiguration&LoadBalancerInterceptorConfig2.LoadBalancer的配置下图是User客户端启动时配