【Spring Cloud Alibaba】
文章平均质量分 76
Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。Nacos、Sentinel、RocketMQ、Seata、SMS、Dubbo SpringCloud组件,为了技术栈中完整,又加入了SpringCloud的Gateway和Slueth。
小小工匠
show me the code ,change the world
展开
-
Spring Cloud Alibaba - 利用Nacos实现高效动态线程池管理
随着现代应用程序的复杂性不断增加,动态线程池管理成为了构建可靠和高效系统的关键之一。而Nacos作为一个优秀的服务发现和配置中心,能够帮助我们实现动态线程池的灵活管理。我们这里将介绍如何利用Nacos来实现高效的动态线程池管理,并探讨其在分布式系统中的应用。在软件开发中,线程池是一种管理和重用线程的机制,它能够有效地控制并发执行的线程数量,避免资源耗尽和性能下降。动态线程池则是在传统线程池的基础上,能够根据系统负载和资源需求动态调整线程数量的一种改进型线程池管理方式。原创 2024-02-25 22:06:51 · 4022 阅读 · 0 评论 -
每日一博 - 闲聊Microservice Architecture
典型微服务架构通常包括以下组件:负载均衡器(Load Balancer):用于将传入的流量分发到多个API网关实例以提高可用性。内容分发网络(CDN,Content Delivery Network):CDN是一组地理分布的服务器,用于存储静态内容,以加快内容的交付速度。客户端首先在CDN中查找内容,然后再访问后端服务。API网关(API Gateway):处理传入的请求并将其路由到相关的服务。它与身份提供者和服务发现进行通信。原创 2023-09-16 10:30:00 · 6745 阅读 · 0 评论 -
Spring Cloud Alibaba - 27 Gateway源码解析
文章目录How it works入口源码流程How it workshttps://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/3.x版本入口按照boot的套路,找两个地方:注解 (Gateway没有呢…)pom中的jar包 对应的 spring.factories 中的EnableAutoConfiguration类那就 先找pom的starter然后找这个spring.factories原创 2022-05-01 11:04:25 · 68002 阅读 · 0 评论 -
Spring Cloud Alibaba - 26 Gateway-自定义谓词工厂RoutePredicateFactory
文章目录需求需求我们看了官方提供的几个例子,如果都不满足呢?举个例子: 实现一个类似 12306订票管控的需求: 早上6点到23点,才允许业务进行。原创 2022-02-14 00:05:59 · 34197 阅读 · 2 评论 -
Spring Cloud Alibaba - 25 Gateway-路由断言工厂Route Predicate Factories谓词工厂示例及源码解析
文章目录官网官网https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#gateway-request-predicates-factories原创 2022-02-13 09:43:29 · 34398 阅读 · 1 评论 -
Spring Cloud Alibaba - 24 Gateway-路由、断言(Predicate)、过滤器(Filter)初体验
文章目录核心概念路由Predicate(断言)Filter(过滤器)核心概念路由网关的基本构建模块,它是由ID、目标URl、断言集合和过滤器集合定义,如果集合断言为真,则匹配路由。Predicate(断言)这是java 8的一个函数式接口predicate,可以用于lambda表达式和方法引用,输入类型是:Spring Framework ServerWebExchange,允许开发人员匹配来自HTTP请求的任何内容,例如请求头headers和参数paramersFilter(过滤器)这些原创 2022-02-11 21:41:17 · 34180 阅读 · 0 评论 -
Spring Cloud Alibaba - 23 Gateway初体验
文章目录概述概述Spring Cloud Gateway是Spring Cloud官方推出的第二代网关框架,用于取代Zuul网关。基于Netty,WebFlux . 由于不是Sevlet容器,不能打成war包, 只支持SpringBoot2.X,不支持1.x基于Netty,WebFlux . 由于不是Sevlet容器,不能打成war包, 只支持SpringBoot2.X,不支持1.x基于Netty,WebFlux . 由于不是Sevlet容器,不能打成war包, 只支持SpringBoot2.原创 2022-02-10 22:35:11 · 34508 阅读 · 1 评论 -
Spring Cloud Alibaba源码 - 22 Feign 源码解析
文章目录Feign 源码 核心思想Feign 源码 核心思想原创 2022-02-06 12:11:32 · 34396 阅读 · 0 评论 -
Spring Cloud Alibaba源码 - 21 Ribbon 源码解析
文章目录Ribbon调用流程Ribbon调用流程原创 2022-02-05 06:10:19 · 34019 阅读 · 0 评论 -
Spring Cloud Alibaba - 20 Nacos StandAlone模式下的数据存储(Derby)及新增登录用户
文章目录StandAlone模式下的数据查看 (Derby)StandAlone模式下的数据查看 (Derby)原创 2022-02-04 18:44:22 · 35272 阅读 · 0 评论 -
Spring Cloud Alibaba - 19 Nacos Config配置中心加载不同微服务的通用配置的两种方式
文章目录Pre实现方式一 通过 shared-dataids 方式方式二 通过 ext-config方式PreSpring Cloud Alibaba - 18 Nacos Config配置中心加载相同微服务的不同环境下的通用配置 这里说了相同的服务,不同环境下的配置。那如果是 不同的微服务下相同的配置呢?实现方式一 通过 shared-dataids 方式方式二 通过 ext-config方式...原创 2022-02-04 14:23:02 · 37234 阅读 · 1 评论 -
Spring Cloud Alibaba - 18 Nacos Config配置中心加载相同微服务的不同环境下的通用配置
文章目录需求实现Step 1 Nacos Config 新增公共配置Step 2 验证配置文件优先级源码需求举个例子,同一个微服务,通常我们的servlet-context 都是相同的,不区分生产环境、测试环境, 那类似这样公共的配置,我们可以每个自己单独配置一份,有没有更好的方式呢?实现我们继续使用 Spring Cloud Alibaba - 17 Nacos Config 配置中心 应用篇的工程为例子 ,实现上面的需求,我们需要创建一个通用配置文件:order-center.yml配置那原创 2022-02-04 14:04:56 · 33722 阅读 · 0 评论 -
Spring Cloud Alibaba - 17 Nacos Config 配置中心 应用篇
文章目录配置中心 (Configuration)配置管理 (Configuration Management)配置服务 (Configuration Service)配置中心 (Configuration)在系统开发过程中通常会将一些需要变更的参数、变量等从代码中分离出来独立管理,以独立的配置文件的形式存在。目的是让静态的系统工件或者交付物(如 WAR,JAR 包等)更好地和实际的物理运行环境进行适配。配置管理一般包含在系统部署的过程中,由系统管理员或者运维人员完成这个步骤。配置变更是调整系统运行时原创 2022-02-04 10:35:47 · 35376 阅读 · 0 评论 -
Spring Cloud Alibaba - 15 微服务之间使用Feign实现参数的透传
文章目录业务场景实现自定义拦截器业务场景服务A 获取到Token值后,要传递给 服务B进行校验 。在微服务架构下如何实现呢?实现自定义拦截器artisan-feign-api 子模块 增加 拦截器import feign.RequestInterceptor;import feign.RequestTemplate;import org.springframework.web.context.request.RequestContextHolder;import org.spr原创 2022-02-04 01:18:56 · 34017 阅读 · 0 评论 -
Spring Cloud Alibaba源码 - 16 Nacos 注册中心源码解析
文章目录Nacos核心功能Nacos核心功能服务注册Nacos Client会通过发送REST请求的方式向Nacos Server注册自己的服务,提供自身的元数据,比如ip地址、端口等信息。Nacos Server接收到注册请求后,就会把这些元数据信息存储在一个双层的内存Map中。服务心跳在服务注册后,Nacos Client会维护一个定时心跳来持续通知Nacos Server,说明服务一直处于可用状态,防止被剔除。默认5s发送一次心跳。服务健康检查Nacos Ser原创 2022-02-03 22:10:54 · 33943 阅读 · 1 评论 -
Spring Cloud Alibaba - 14 OpenFeign自定义配置 + 调用优化 + 超时时间
文章目录打印Feign日志打印Feign日志默认情况下,Feign的调用式不打印日志,我们需要通过自定义来打印我们的Feign的日志, 生产环境推荐basic原创 2022-02-03 19:33:40 · 33955 阅读 · 0 评论 -
Spring Cloud Alibaba - 13 OpenFeign应用篇
文章目录What's FeignWhat’s FeignFeign是Netflix开发的声明式、模板化的HTTP客户端,其灵感来自Retrofit、JAXRS2.0以及WebSocket。Feign可帮助我们更加便捷、优雅地调用HTTP API.在Spring Cloud中,使用Feign非常简单——只需创建接口,并在接口上添加注解即可。Feign支持多种注解,例如Feign自带的注解或者JAXRS注解等。Spring Cloud对Feign进行了增强,使其支持SpringMVC注解,另外原创 2022-02-03 17:36:05 · 33310 阅读 · 0 评论 -
Spring Cloud Alibaba - 12 使用Nacos的元数据实现金丝雀发布功能
文章目录需求需求新功能要上线了 , order-center 存在二个版本 V1(老版本) V2(新版本),product-center也存在二个版本V1(老版本) V2新版本 现在需要做到的是order-center(V1)---->product-center(v1),order-center(V2)---->product-center(v2)。v2版本是小面积部署的,用来测试用户对新版本功能的。若用户完全接受了v2。我们就可以把V1版本卸载完全部署V2版本。...原创 2022-02-03 09:40:04 · 34958 阅读 · 0 评论 -
Spring Cloud Alibaba - 11 Ribbon 自定义负载均衡策略(同集群优先权重负载均衡算法)
文章目录Pre需求分析源码PreSpring Cloud Alibaba - 05 Nacos 领域模型_NameSpac/Group/Cluster中提到了同一个Namespace下 + 同一个Group下, 不同Cluster 内的服务,可以互相访问.如果我们要想实现一个 同集群优先权重负载均衡算法, 怎么办呢?需求举个例子: 有两个微服务artisan-order-center, artisan-product-center 。我们在北京机房部署一套artisan-order-c原创 2022-02-03 00:45:11 · 33213 阅读 · 0 评论 -
Spring Cloud Alibaba - 10 Ribbon 自定义负载均衡策略(权重算法)
文章目录Pre工程首先屏蔽细粒度配置然后通过代码设置一个全局配置 指定 GlobalRibbonConfigGlobalRibbonConfig 设置负载均衡策略开发自定义策略 (权重访问)验证源码Pre我们看下Nacos Server上的服务详情中有个权重Spring Cloud Alibaba - 07 Ribbon 应用篇及内置的负载均衡算法没有根据权重访问的策略, 自己写个行不 ?假设我们一个微服务部署了三台服务器A,B,C.其中A,B,C三台服务的性能不一,A的性能最牛逼,B原创 2022-02-03 00:32:36 · 33187 阅读 · 0 评论 -
Spring Cloud Alibaba - 09 Ribbon 饥饿加载及其他配置参数解读
文章目录解决Ribbon 第一次调用耗时高的配置超时时间相关参数并发参数重试源码解决Ribbon 第一次调用耗时高的配置开启饥饿加载# ribbon 饥饿加载 解决第一次耗时多的问题ribbon: eager-load: enabled: true clients: artisan-pay-center,artisan-product-center # #可以指定多个微服务用逗号分隔超时时间相关参数Ribbon 中有两种和时间相关的设置,分别是请求连接的超时时间和请原创 2022-02-02 23:35:14 · 32738 阅读 · 0 评论 -
Spring Cloud Alibaba - 08 Ribbon 两种方式实现细粒度自定义配置控制微服务的负载均衡策略
文章目录需求java代码实现细粒度配置 (不推荐)配置实现细粒度配置 (推荐)需求假设我们有个场景:Order-Center 需要采用随机算法调用产品中心 , 而采用轮询算法调用其他中心微服务java代码实现细粒度配置 (不推荐) 注意事项: PayCenterRibbonConfig,ProductCenterRibbonConfig不能被放在我们主启动类所在包以及子包下,不然就起不到细粒度配置【支付中心对应的Ribbon访问策略】package com.globalconfig;原创 2022-02-02 21:17:38 · 32042 阅读 · 0 评论 -
Spring Cloud Alibaba - 07 Ribbon 应用篇及内置的负载均衡算法
文章目录Ribbon整合三部曲Ribbon整合三部曲我们这里通过Ribbon组件来实习负载均衡 【默认的负载均衡算法是 轮询】原创 2022-02-02 18:10:01 · 32543 阅读 · 0 评论 -
Spring Cloud Alibaba - 06 RestTemplate 实现自定义负载均衡算法
文章目录负载均衡分类分析工程负载均衡分类服务端负载均衡 ,比如我们常见的ng客户端负载均衡 ,比如微服务体系中的ribbonspring cloud ribbon是 基于NetFilix ribbon 实现的一套客户端的负载均衡工具,Ribbon客户端组件提供一系列的完善的配置,如超时,重试等。通过Load Balancer(LB)获取到服务提供的所有机器实例,Ribbon会自动基于某种规则(轮询,随机)去调用这些服务。Ribbon也支持自定义负载均衡算法分析我们前面原创 2022-02-02 16:30:20 · 32987 阅读 · 2 评论 -
Spring Cloud Alibaba - 05 Nacos 领域模型_NameSpac/Group/Cluster
文章目录新增命名空间工程改造小结新增命名空间新增dev 和 prod , 记住命名空间ID工程改造artisan-cloud-nacosclient-orderartisan-cloud-nacosclient-product小结NameSpace(默认的NameSpace是”public“ NameSpace可以进行资源隔离,比如dev环境下的NameSpace下的服务是调用不到prod的NameSpace下的微服务。 当然了,dev和prod最好不要共用一套nacos 注原创 2022-02-02 09:44:33 · 33356 阅读 · 2 评论 -
Spring Cloud Alibaba - 04 Nacos 领域模型划分
文章目录基本架构领域模型数据模型服务领域模型配置领域模型基本架构https://nacos.io/zh-cn/docs/architecture.html领域模型数据模型Nacos 数据模型 Key 由三元组唯一确定, Namespace默认是空串,公共命名空间(public),分组默认是 DEFAULT_GROUP。服务领域模型配置领域模型围绕配置,主要有两个关联的实体,一个是配置变更历史,一个是服务标签(用于打标分类,方便索引),由 ID 关联。...原创 2022-02-02 02:02:09 · 32127 阅读 · 0 评论 -
Spring Cloud Alibaba - 03 注册中心Nacos 应用篇
文章目录注册中心的演进V1注册中心的演进V1原创 2022-02-01 16:46:04 · 31959 阅读 · 0 评论 -
Spring Cloud Alibaba - 02 SpringCloud 、 SpringCloud Alibaba 、SpringBoot的生产版本选择
文章目录Spring Cloud 生态圈概览Spring CloudSpring Cloud AlibabaSpring Cloud 生态圈概览Spring Cloudhttps://spring.io/projects/spring-cloudSpring Cloud Alibabahttps://github.com/alibaba/spring-cloud-alibaba/blob/master/README-zh.md...原创 2022-02-01 14:35:37 · 32565 阅读 · 0 评论 -
Spring Cloud Alibaba - 01漫谈传统架构和微服务架构
文章目录单体架构 VS 微服务架构单体架构微服务架构单机架构扩展与微服务扩展单体架构 VS 微服务架构单体架构简而言之 : war包打天下 。我们来分析一下优缺点:优点:架构简单开发测试部署简单缺点:随着业务扩展,代码越来越复杂,代码质量参差不齐,开发人员的水平不一,修改每一个小bug都是心惊胆战的由于单体架构,功能复杂,部署慢扩展成本高,根据单体架构图 假设模块A是一个CPU密集型的模块 ,而模块B是一个IO密集模块。单体架构上,无法针对单个功能模块进原创 2022-02-01 12:00:23 · 33953 阅读 · 1 评论