SpringCloud
文章平均质量分 75
springCloud
优惠券已抵扣
余额抵扣
还需支付
¥9.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
不死鸟.亚历山大.狼崽子
太极计算机股份有限公司系统架构师,从事ios、.net、flex、java等开发
展开
-
SpringCloud(38):Spring Cloud Nacos discovery Starter配置项信息说明
使用Map格式配置,用户可以根据自己的需要自定义一些和服务相关的元数据信息。当IP未配置时,注册的IP为此网卡所对应的IP地址,如果此项也未配。常用场景之一是不同环境的注册的区分隔离,例如开发测试环境和生。地域的某个服务的入口域名,通过此域名可以动态地拿到服务端地。产环境的资源(如配置、服务)隔离等。是否开启Nacos Watch。置,则默认取第一块网卡的地址。是否集成Ribbon。原创 2023-10-06 19:41:31 · 270 阅读 · 0 评论 -
SpringCloud(37):Spring Cloud Alibaba 综合集成架构演示
前面说到,Spring Cloud是一个较为全面的微服务框架集,集成了如服务注册发现、配置中心、消息总线、负载均衡、断路器、API网关等功能实现。而在网上经常会发现Spring Cloud与阿里巴巴的Dubbo进行选择对比,这样做其实不是很妥当,前者是一套较为完整的架构方案,而Dubbo只是服务治理与RPC实现方案。Dubbo在国内有着非常大的 户群体,但是其周边设施与组件相对来说并不那么完善。原创 2023-10-03 16:44:56 · 548 阅读 · 0 评论 -
SpringCloud(36):Nacos服务发现基础应用
Nacos数据(如配置和服务)描述信息,如服务版本、权重、容灾策略、负载均衡策略、鉴权配置、各种自定义标签 (label),从作用范围来看,分为服务级别的元信息、集群的元信息及实例的元信息。Nacos在经过阿里内部多年生产经验后提炼出的数据模型,则是一种服务-集群-实例的三层模型,这样基本可以满足服务在所有场景下的数据存储和管理。服务实例的集合,服务实例组成一个默认集群, 集群可以被进一步按需求划分,划分的单位可以是虚拟集群,相同集群下的实例才能相互感知。提供给客户端的软件功能,通过预定义接口网络访问。原创 2023-09-04 10:30:08 · 870 阅读 · 0 评论 -
SpringCloud(35):Nacos 服务发现快速入门
Feign是Netflix开发的声明式、模板化的HTTP客户端, Feign可以帮助我们更快捷、优雅地调用HTTP API。Feign的英文表意为“假装,伪装,变形”, 可以理解为将HTTP报文请求方式伪装为简单的java接口调用方式。我们使用Feign实现这个过程,代码如下:原创 2023-09-04 00:53:50 · 719 阅读 · 0 评论 -
SpringCloud(34):Nacos服务发现
在微服务架构中,整个系统会按职责能力划分为多个服务,通过服务之间协作来实现业务目标。这样在我们的代码中免不了要进行服务间的远程调用,服务的消费方要调用服务的生产方,为了完成一次请求,消费方需要知道服务生产方的网络位置(IP地址和端口号)。我们的代码可以通过读取配置文件的方式读取服务生产方网络位置,如下:Service B(服务生产者)@GetMapping(value = "/service") //暴露服务Service A(服务消费者)//调用服务# 服务生产方地址。原创 2023-09-03 17:55:40 · 804 阅读 · 0 评论 -
SpringCloud(33):Nacos集群部署
在所有nacos目录的conf目录下,有文件 cluster.conf.example ,将其命名为 cluster.conf ,并将每行配置成ip:port。(请配置3个或3个以上节点)如果服务器有多个ip也要指定具体的ip地址,如:nacos.inetutils.ip-address=127.0.0.1。我们可以复制之前已经解压好的nacos文件夹,分别命名为nacos、nacos1、nacos2。3个或3个以上Nacos节点才能构成集群。(1)安装3个以上Nacos。(2)配置集群配置文件。原创 2023-08-14 10:14:52 · 272 阅读 · 0 评论 -
SpringCloud(32):Nacos配置管理应用于分布式系统
每一个业务模块都使用独立的服务完成,这种微服务架构模式也影响了应用和数据库之间的关系,不像传统多个业务模块共享一个数据库,微服务架构每个服务都有自己的数据库。尽管也是模块化逻辑,但是最终它还是会打包并部署为单体式应用,这种将所有功能都部署在一个web容器中运行的系统就叫做单体架构(也叫:巨石型应用)。其思路不是开发一个巨大的单体式的应用,而是将应用分解为小的、互相连接的微服务。Web应用程序发展的早期,大部分web工程师将所有的功能模块打包到一起并放在一个web容器中运行,所有功能。原创 2023-08-07 11:45:38 · 130 阅读 · 0 评论 -
SpringCloud(31):Nacos配置管理基础应用
配置分组是对配置集进行分组,通过一个有意义的字符串(如 Buy 或 Trade )来表示,不同的配置分组下可以有相同的配置集(Data ID)。例如可以隔离开发环境、测试环境和生产环境,因为它们的配置可能各不相同,或者是隔离不同的用户,不同的开发人员使用同一个nacos管理各自的配置,可通过namespace隔离。配置集中包含的一个个配置内容就是配置项。在系统中,一个配置文件通常就是一个配置集,一个配置集可以包含了系统的各种配置信息,例如,一个配置集可能包含了数据源、线程池、日志级别等配置项。原创 2023-08-07 10:55:32 · 130 阅读 · 1 评论 -
SpringCloud(30):Nacos快速入门
(3)修改${nacoshome}/conf/application.properties文件,增加支持mysql数据源配置(目前只支持mysql),添加mysql数据源的url、用户名和密码。本教程下载curl的windows版本:curl-7.66.0_2-win64-mingw,下载地址:https://curl.haxx.se/windows/(2)初始化mysql数据库,新建数据库nacos_config,数据库初始化文件:${nacoshome}/conf/mysql-schema.sql。原创 2023-08-07 10:02:57 · 147 阅读 · 0 评论 -
SpringCloud(29):Nacos简介
1.1 什么是配置应用程序在启动和运行的时候往往需要读取一些配置信息,配置基本上伴随着应用程序的整个生命周期,比如:数据库连接参数、启动参数等。配置是独立于程序的只读变量配置对于程序是只读的,程序通过读取配置来改变自己的行为,但是程序不应该去改变配置配置伴随应用的整个生命周期配置贯穿于应用的整个生命周期,应用在启动时通过读取配置来初始化,在运行时根据配置调整行为。比如:启动时需要读取服务的端口号、系统在运行过程中需要读取定时策略执行定时任务等。配置可以有多种加载方式。原创 2023-08-06 22:11:42 · 257 阅读 · 0 评论 -
SpringCloud(28):动态规则扩展实现
前面不管是通过Java代码还是通过Sentinel控制台的方式去设置限流规则,都属于手动方式,不够灵活。这种方式一般仅用于测试和演示,生产环境上一般通过动态规则源的方式来动态管理限流规则。也就是说,很多时候限流规则会被存储在文件、数据库或者配置中心当中。Sentinel的 DataSource 接口给我们提供了对接任意配置源的能力。原创 2023-05-24 09:24:05 · 140 阅读 · 0 评论 -
SpringCloud(27):授权控制实现
很多时候,我们需要根据调用来源来判断该次请求是否允许放行,这时候可以使用 Sentinel 的来源访问控制(黑白名单控制)的功能。来源访问控制根据资源的请求来源(origin)判断资源访问是否通过,若配置白名单则只有请求来源位于白名单内时才可通过;若配置黑名单则请求来源位于黑名单时不通过,其余的请求通过。这里演示实现Ip地址白名单和黑名单配置规则授权控制规则设置有两种方式。原创 2023-05-24 09:23:39 · 1081 阅读 · 0 评论 -
SpringCloud(26):系统自适应保护实现
Sentinel 系统自适应限流从整体维度对应用入口流量进行控制,结合应用的 Load、CPU 使用率、总体平均 RT、入口 QPS 和并发线程数等几个维度的监控指标,通过自适应的流控策略,让系统的入口流量和系统的负载达到一个平衡,让系统尽可能保持最大吞吐量的同时保证系统整体的稳定性。系统保护规则是应用整体维度的,而不是资源维度的,并且仅对入口流量生效。入口流量指的是进入应用的流量(EntryType.IN),比如 Web 服务或 Dubbo 服务端接收的请求,都属于入口流量。系统规则支持以下的模式。原创 2023-05-24 09:21:48 · 541 阅读 · 0 评论 -
SpringCloud(25):熔断降级实现
熔断降级会在调用链路中某个资源出现不稳定状态时(例如调用超时或异常比例升高),对这个资源的调用进行限制,让请求快速失败,避免影响到其它的资源而导致级联错误。当资源被降级后,在接下来的降级时间窗口之内,对该资源的调用都自动熔断(默认行为是抛出 DegradeException )。原创 2023-05-24 09:18:10 · 520 阅读 · 0 评论 -
SpringCloud(24):流量控制实现
Sentinel 的所有规则都可以在内存态中动态地查询及修改,修改之后立即生效。同时 Sentinel 也提供相关 API,供您来定制自己的规则策略。原创 2023-05-24 09:17:05 · 1191 阅读 · 0 评论 -
SpringCloud(23):Sentinel对Spring Cloud Gateway的支持
在sentinel控制台中增加流控规则,其中API类型选择“Route ID”,API名称为网关配置的路由id,QPS阀值设置为2。之后,在浏览器中输入http://localhost:9013/hello,慢速刷新,则持续显示”Hello Sentinel”;快速刷新则会交替出现”Hello Sentinel”和“系统繁忙,请稍候”。这说明对资源限流成功。原创 2023-05-24 09:14:19 · 561 阅读 · 0 评论 -
SpringCloud(22):Sentinel对Feign的支持
Sentinel 适配了 Feign组件。创建sentinel_parent、eureka_server、sentinel_feign_provider、sentinel_feign_client工程,并在。实现sentinel_feign_client微服务通过Feign访问sentinel_feign_provider微服务的流量控制。sentinel_feign_client中使用feign访问sentinel_feign_provider服务。原创 2023-05-09 16:50:21 · 1270 阅读 · 0 评论 -
SpringCloud(21):Sentinel和SpringCloud整合
为了减少开发的复杂程度,我们对大部分的主流框架,例如 Web Servlet、Dubbo、Spring Cloud、gRPC、Spring WebFlux、Reactor 等都做了适配。您只需要引入对应的依赖即可方便地整合 Sentinel。如果要实现SpringCloud和Sentinel的整合,可以通过引入 Spring Cloud Alibaba Sentinel来更方便地整合Sentinel。Spring Cloud Alibaba是阿里巴巴提供的,致力于提供微服务开发的一站式解决方案。原创 2023-05-09 13:55:32 · 231 阅读 · 0 评论 -
SpringCloud(20):Sentinel原理
和资源池隔离的方法不同,Sentinel 通过限制资源并发线程的数量,来减少不稳定资源对其它资源的影响。这样做的好处是资源和资源之间做到了最彻底的隔离。Sentinel 和 Hystrix 的原则是一致的: 当检测到调用链路中某个资源出现不稳定的表现,例如请求响应时间长或异常比例升高的时候,则对这个资源的调用进行限制,让请求快速失败,避免影响到其它的资源而导致级联故障。针对这个情况,Sentinel 提供了对应的保护机制,让系统的入口流量和系统的负载达到一个平衡,保证系统在能力范围之内处理最多的请求。原创 2023-02-11 12:29:08 · 593 阅读 · 0 评论 -
SpringCloud(19):Sentinel定义资源的方式
Sentinel中的SphU包含了try-catch风格的API。用这种方式,当资源发生了限流之后会抛出 BlockException。try (Entry entry = SphU.entry("Hello")){//限流入口//被保护的资源return "系统繁忙,请稍候";//被限流或者降级的处理上一篇已经详细讲解过这个案例,这里就不在详细讲解了。Sentinel中的SphO 提供 if-else 风格的 API。原创 2023-02-10 19:28:28 · 804 阅读 · 0 评论 -
SpringCloud(18):Sentinel流控降级入门
这里我们定义OPS类型的限流规则,每秒可接受的请求最多为2个,超过则返回给页面“系统繁忙,请稍候”,不超过则返回给页面“Hello Sentinel!1.创建springboot项目,名称为sentinel_quick_start。2.在项目的pom.xml文件中引入sentinel-core的依赖坐标。单元测试我们不需要,所以将单元测试的依赖坐标和单元测试类删除。3.创建TestController,定义使用限流规则。原创 2023-02-10 17:53:38 · 846 阅读 · 0 评论 -
SpringCloud(17):Sentinel简介
1.1 流量控制简介拿旅游景点举个示例,每个旅游景点通常都会有最大的接待量,不可能无限制的放游客进入,比如故宫每天只卖八万张票,超过八万的游客,无法买票进入,因为如果超过八万人,景点的工作人员可能就忙不过来,过于拥挤的景点也会影响游客的体验和心情,并且还会有安全隐患;只卖N张票,这就是一种限流的手段。流量控制在网络传输中是一个常用的概念,它用于调整网络包的发送数据。在网络传输时,任意时间到来的请求往往是随机不可控的,而系统的处理能力是有限的。我们需要根据系统的处理能力对流量进行控制。1.2 熔断降级简介。原创 2023-02-10 00:02:26 · 431 阅读 · 0 评论 -
SpringCloud(16):Zuul网关服务整合Swagger接口文档
手写Api文档的几个痛点。原创 2023-01-21 15:31:27 · 1634 阅读 · 0 评论 -
SpringCloud(15):实现分布式配置中心高可用集群实战讲解
在微服务架构中,宗旨就是要实现服务的高可用,配置中心也必须满足这个条件;所以我们将配置中心也注册到注册中心,这样,服务端就可以以调用服务的方式来访问配置中心的配置了。原创 2023-01-21 13:10:45 · 167 阅读 · 0 评论 -
SpringCloud(14):Config服务集成Bus实现动态更新配置
当配置中心的配置文件修改后,客户端不会马上更新,需要调用指定的方法发送消息来更新。原创 2023-01-20 22:30:54 · 133 阅读 · 0 评论 -
SpringCloud(13):分布式配置中心
在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,所以需要分布式配置中心组件。在Spring Cloud中,有分布式配置中心组件spring cloud confifig ,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中。在spring cloud confifig 组件中,分两个角色,一是config server,二是config client。原创 2023-01-20 18:24:33 · 897 阅读 · 0 评论 -
SpringCloud(12):Zuul路由网关
服务网关是微服务架构中一个不可或缺的部分。通过服务网关统一向外系统提供REST API的过程中,除了具备服务路 由、均衡负载功能之外,它还具备了权限控制等功能。Spring Cloud Netflflix 中的 Zuul 就担任了这样的一个角色,为 微服务架构提供了前门保护的作用,同时将权限控制这些较重的非业务逻辑内容迁移到服务路由层面,使得服务集群主体能够具备更高的可复用性和可测试性。原创 2023-01-19 12:49:46 · 1446 阅读 · 0 评论 -
SpringCloud(11):Hystrix请求合并
如图,多个客户端发送请求调用(消费者)项目中的findOne方法,这时候在这个项目中的线程池中会发申请与请求数量相同的线程数,对EurekaServiceProvider(服务提供者)的getUserById方法发起调用,每个线程都要调用一次,在高并发的场景下,这样势必会对服务提供者项目产生巨大的压力。请求合并就是将单个请求合并成一个请求,去调用服务提供者,从而降低服务提供者负载的,一种应对高并发的解决办法。原创 2023-01-19 11:55:35 · 1938 阅读 · 0 评论 -
SpringCloud(10):Hystrix请求缓存
访问接口测试,可以发现,在cachekey相同的情况下,返回的值是相同的。如果要清除缓存,直接调用clearRequestCache方法。修改getUser2为。原创 2023-01-18 17:56:09 · 1031 阅读 · 0 评论 -
SpringCloud(9):Hystrix依赖隔离
【代码】SpringCloud(9):Hystrix依赖隔离。原创 2023-01-18 16:45:24 · 219 阅读 · 0 评论 -
SpringCloud(8):Hystrix请求熔断与服务降级实战详解
添加User类UserController类添加方法添加pom文件添加实体类 启动类中开启添加fallback类feign注解添加yml开启hystrix功能当停止生产者服务后访问http://localhost:8811/orde2会发现结果如下: 当停止生产者服务后访问http://localhost:8811/order?name=%E7%86%8A%E9%B9%8F&id=1结果如下:原创 2022-12-04 18:11:12 · 170 阅读 · 0 评论 -
SpringCloud(7):Hystrix详解
比如说,一个服务调用两外两个服务,你如果调用两个服务都用一个线程池,那么如果一个服务卡在哪里,资源没被释放,后面的请求又来了,导致后面的请求都卡在哪里等待,导致你依赖A服务把你卡在哪里,耗尽了资源,也导致了你另外一个B服务也不可用了。服务与服务之间的依赖性,故障会传播,会对整个微服。4. 请求缓存:比如一个请求过来请求我userId=1的数据,你后面的请求也过来请求同样的数据,这时我不会继续走原来的那条请求链路了,而是把第一次请求缓存过了,把第一次的请求结果返回给后面的请求。原创 2022-10-13 13:06:59 · 348 阅读 · 0 评论 -
SpringCloud(6):feign详解
Feign是Netflix开发的声明式、模板化的HTTP客户端, Feign可以帮助我们更快捷、优雅地调用HTTP API。Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只需要创建一个接口并注解。Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果。简而言之:Feign 采用的是基于接口的注解。...原创 2022-08-04 15:47:01 · 342 阅读 · 0 评论 -
SpringCloud(5):Ribbon详解
同服务端负载均衡的架构类似,在客户端负载均衡中也需要心跳去维护服务端清单的健康性,默认会创建针对各个服务治理框架的Ribbon自动化整合配置,比如Eureka中的org.springframework.cloud.netflflix.ribbon.eureka.RibbonEurekaAutoConfifiguration,Consul中的org.springframework.cloud.consul.discovery.RibbonConsulAutoConfifiguration。......原创 2022-08-03 16:36:09 · 369 阅读 · 0 评论 -
SpringCloud(4):生产者和消费者注册及调用演示
1.创建用户服务1.1添加pom文件2.创建订单服务原创 2020-08-10 20:29:46 · 682 阅读 · 0 评论 -
SpringCloud(3):搭建eureka注册中心
1. 使用idea创建多模块的工程首先新建一个empty project然后创建一个module(父工程)原创 2020-08-10 02:17:57 · 218 阅读 · 0 评论 -
SpringCloud(2):Eureka服务注册与发现
1.为什么需要服务中心过去,每个应用都是一个CPU,一个主机上的单一系统。然而今天,随着大数据和云计算时代的到来,任何独立的程序都可以运行在多个计算机上。并且随着业务的发展,访问用户量的增加,开发人员或小组的增加,系统会被拆分成多个功能模块。拆分后每个功能模块可以作为一个独立的子系统提供其职责范围内的功能。而多个子系统中,由于职责不同并且会存在相互调用,同时可能每个子系统还需要多个实例部署在多台服务器或者镜像中,导致了子系统间的相互调用形成了一个错综复杂的网状结构。用几幅图说明一下:单体应用:原创 2020-08-09 20:16:22 · 193 阅读 · 0 评论 -
SpringCloud(1):SpringCloud介绍
1.微服务介绍1.1 什么是微服务?微服务是一种架构风格,也是一种服务; 微服务的颗粒比较小,一个大型复杂软件应用由多个微服务组成,比如Netflix目前由500多个的微服务组成; 它采用UNIX设计的哲学,每种服务只做一件事,是一种松耦合的能够被独立开发和部署的无状态化服务(独立扩展、升级和可替换)。1.2微服务架构图1.3 微服务的好处技术异构性:在一个由多个服务相互协作的系统中,可以在不同的服务中使用最适合该服务的技术。 弹性:如果系统中的一个组件不可用了,但...原创 2020-07-28 01:50:22 · 253 阅读 · 0 评论