Spring Cloud
文章平均质量分 75
最新 SpringCloud + SpringCloud Alibaba 讲解
他 他 = new 他()
毕业于内蒙古科技大学(包头师范学院),本科,大学专业计算机科学与技术,毕业之后从事Java开发,虽然我是18年毕业的,但是入行之后有很多前辈带着一起走,工作之余学到了很多学校接触不到的东西,在这里分享给大家
展开
-
Spring Cloud(2020.0.3) | 从入门到入土 - 30. Nacos 2.x 集群部署
一、集群化部署和 Eureka 一样,Nacos 也支持集群部署,道理呢也是一样,主要为了防止自身崩溃导致整个业务无法正常使用。二、Nacos 2.x 集群部署我们这里准备几个端口,一个是 8870,一个是 8880。通过 Nacos.zip 文件再解压出来一个 Nacos,自己去修改一下数据库配置,端口的话也记得修改一下。接着在同目录中找到一个叫cluster.conf.example 的文件,复制一个出来,并将文件名改为:cluster.conf。文件里面我们需要加点东西.原创 2021-12-20 14:32:37 · 261 阅读 · 0 评论 -
Spring Cloud(2020.0.3) | 从入门到入土 - 29. Nacos 2.x 数据模型 & 多配置集
一、数据模型来看一下 Nacos 的领域架构模型。Nacos 数据模型 Key 由三元组唯一确定, Namespace默认是空串,公共命名空间(public),分组默认是 DEFAULT_GROUP。这个其实上一个博客也有提到。我们现在用的都是默认的,默认的命名空间(public),默认的分组(DEFAULT_GROUP)。二、多配置集1. Namespace我们首先再去创建一个命名空间:dev。自己去新建一个命名空间,命名空间 Id 可以不填写,让他自己生成。接原创 2021-12-20 11:09:21 · 671 阅读 · 0 评论 -
Spring Cloud(2020.0.3) | 从入门到入土 - 28. Nacos 2.x 配置中心
一、什么是配置中心配置中心可以统一维护我们项目中的配置。我们项目中是有很多的配置,虽然现在用 SpringBoot 之后就简化了很多,但是这一切都是对我们单体项目而言。现在这些服务一旦换成微服务架构,那么我们这个配置就变得非常多了。而且一旦修改了服务中的配置,我们还需要重新启动环境或者容器。为了解决这些问题,Nacos 给我们提供了配置中心。二、Nacos 配置中心使用1. 不使用 Nacos知道了配置中心后,我们弄一个服务,学习一下这个配置中心如何使用。服务名称:micro原创 2021-10-24 23:14:52 · 1430 阅读 · 0 评论 -
Spring Cloud(2020.0.3) | 从入门到入土 - 27. Nacos 2.x 服务注册发现 & openFeign 远程调用
一、服务注册这里我们需要去创建一些服务,将这些服务注册到 Nacos 中。父项目父项目搭建去参考我另外的这个博客,里面有一个父项目版本依赖。Spring Cloud(2020.0.3) | 从入门到入土 - 2. 微服务基础项目搭建_胖子胖子大胖子的博客-CSDN博客服务 A 搭建服务名称:microservice-service-nocos-a-4000pom<!-- Web 支持 --><dependency> <groupId&原创 2021-10-21 14:50:43 · 252 阅读 · 0 评论 -
Spring Cloud(2020.0.3) | 从入门到入土 - 26. Nacos Server 下载运行&数据源切换
一、Nacos Server 下载Nacos 不像 Eureka,Nacos 需要下载服务模块,这里 Nacos 推荐去 Github 或者 Nacos 博客进行下载。git 地址:https://github.com/alibaba/nacos/releases这里我们用 nacos-server-2.0.3.zip二、启动 Nacos 服务这里我们参考它官网的 Quick Start:https://github.com/alibaba/nacos/releases1. 解原创 2021-10-20 14:32:02 · 313 阅读 · 0 评论 -
Spring Cloud(2020.0.3) | 从入门到入土 - 25. Nacos 2.x 入门
一、什么是 NacosNacos (拿扣丝),是阿里巴巴推出的一款服务发现、注册以及配置中心的中间件,详情来看一下官网:homehomehttps://nacos.io/zh-cn/Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施原创 2021-10-19 21:00:59 · 169 阅读 · 0 评论 -
Spring Cloud(2020.0.3) | 从入门到入土 - 24. Gateway 超时配置 & 跨域配置
Gateway 网关提供了两种超时机制:全局配置、路由配置一、全局超时spring: cloud: gateway: httpclient: connect-timeout: 1000 response-timeout: 5sconnect-timeout 指:连接超时,这里单位是毫秒。response-timeout 值:响应超时,超过 5 秒没有响应,直接超时,这里的配置是遵循java.time.Duration。测试:.原创 2021-10-18 15:50:55 · 5647 阅读 · 0 评论 -
Spring Cloud(2020.0.3) | 从入门到入土 - 23. Gateway 令牌桶限流
一、什么是限流比如说我们有一个网站,每天的请求量不是很多,忽然有一天的某一个时刻,涌进来一大堆人进行访问你的网站,没几分钟整个服务挂了,并引发连锁反应导致整个系统崩溃。像这种情况出现后如何去应对?这就是这篇博客要说的:限流。我们通过某种算法,让用户请求达到一定的时候,再进来的请求进行拒绝请求、排队、等待、降级等处理。二、Gateway 令牌桶限流先来了解一下 Gateway 的令牌桶限流,来看下图:首先我们去设定一个令牌桶,这个桶的话是有恒定大小,比如说容量是 5。我们按照一定速原创 2021-10-14 20:39:31 · 498 阅读 · 0 评论 -
Spring Cloud(2020.0.3) | 从入门到入土 - 22. Gateway 过滤器工厂
一、Gateway 过滤器链我们最开始介绍 Gateway 的时候有看过一个图,现在再来看一下。上两篇博客我们说的是 Gateway Handler Mapping,接下来我们要说的就是这整个的 Filter 链了。!!!这里 Gateway 中的 Filter 和我们 Servlet 中的 Filter 不是同一个东西二、Gateway 过滤器Gateway 中内置了很多的 Filter,Filter 分为两种,一种是 GatewayFilter,还有一种是 GlobalFi.原创 2021-10-14 11:03:31 · 175 阅读 · 0 评论 -
Spring Cloud(2020.0.3) | 从入门到入土 - 21. Gateway 配置全局异常
之前我们说断言规则的时候,在进行调用的过程中出现了trace 报错。但是默认的话是返回的一个 HTML 页面,这对于我们前后端分离式开发是没有用的,我们需要的是返回给前段一段错误 JSON 信息。有的人可能会问了,SpringBoot 中不是给我们带了一个@ControllerAdvice 的注解进行配置异常信息返回吗,为啥还要在 Gateway 中进行全局异常配置?来看这个图,如果我们在服务层进行逻辑处理,或者是和数据库进行操作的时候报错了,我们是可以通过@ControllerAdv...原创 2021-10-11 17:00:46 · 634 阅读 · 0 评论 -
Spring Cloud(2020.0.3) | 从入门到入土 - 20. Gateway 断言工厂(下)
九、Method 路由断言规则Method 路由断言规则:这个 Method 是匹配的请求时的方式,POST、GET 等,该模式同样是支持数组,可以有一个或者多个参数参数:参数相对固定,POST、GET、PUT、这些都是常见的。gateway application.ymlspring: cloud: gateway: routes: - id: method_route uri: http://localhost:3000/原创 2021-10-11 11:00:16 · 100 阅读 · 0 评论 -
Spring Cloud(2020.0.3) | 从入门到入土 - 19. Gateway 断言工厂(上)
一、路由断言工厂Spring Cloud Gateway matches routes as part of the Spring WebFluxHandlerMappinginfrastructure. Spring Cloud Gateway includes many built-in route predicate factories. All of these predicates match on different attributes of the HTTP request. Yo..原创 2021-10-08 14:53:33 · 141 阅读 · 0 评论 -
Spring Cloud(2020.0.3) | 从入门到入土 - 18. Gateway 工作原理 & HelloWorld
一、Gateway 工作原理我们来看一下官网的一个示例图客户端向 Spring Cloud Gateway 发出请求。第一步:请求要先到 Gateway Handler Mapping,这里将这个路由先做匹配处理。第二步:路径匹配之后,请求接着来到 Gateway Web Handler,而这个是通过特定于请求的过滤器链运行请求。过滤器链它也分两种,请求进来的时候要走前置过滤器,在业务完成后,再通过后置过滤器出去。二、GatewayHelloWorld之前我们已经弄了两个业务模.原创 2021-09-30 15:37:41 · 188 阅读 · 0 评论 -
Spring Cloud(2020.0.3) | 从入门到入土 - 17. Api 服务网关 Gateway
一、什么是 Api服务网关一个完整的微服务项目是由很多很多的子项目构成,类似我们前面写的案例,它有两个业务模块,一个订单模块,一个商品模块。但是,我们在调用的时候会发现,每一个服务的调用地址是各不相同(域名、端口),而 Api网关就是将这些个调用地址进行保护,对外有一个比较统一的地址(不可能一模一样,不然怎么区分调用的什么模块)。如上图,用户请求后,第一步就是要过 Gateway 网关,通过网关进行处理,将请求发送到对应的模块中。二、Api网关的作用Api 网关除去对这些 Ap...原创 2021-09-29 17:56:49 · 150 阅读 · 0 评论 -
Spring Cloud(2020.0.3) | 从入门到入土 - 16. Hystrix 引入仪表盘 Dashboard
Hystrix 除去断路器,还有给我们提供一种仪表盘,用来给我们查看 Feign 远程调用的情况,现在来引入一下。一、仪表盘搭建Hystrix-dashboard 项目创建我们重新创建一个子项目,项目名称:microservice-common-hystrix-dashboard-9000pom<!-- Hystrix 服务监控 Dashboard 仪表盘 --><dependency> <groupId>org.springframewo原创 2021-09-29 14:47:23 · 192 阅读 · 2 评论 -
Spring Cloud(2020.0.3) | 从入门到入土 - 15. Feign 整合 Hystrix
之前我们将 Hystrix 引入到了商品模块,但是如果这样去写,会和商品模块的业务代码耦合度太高,不利于维护,所以需要解耦。我们这里是整合 Feign 与 Hystrix,所以需要将 Hystrix 引入到订单模块中去。一、项目修改订单模块pom<!-- hystrix 断路器 --><dependency> <groupId>org.springframework.cloud</groupId> <artifac原创 2021-09-28 17:53:24 · 366 阅读 · 0 评论 -
Spring Cloud(2020.0.3) | 从入门到入土 - 14. Hystrix 配置超时时间
上一篇我们在使用 Hystrix 的时候就有提到,Hystrix 的超时时间是 1 秒。但是有的时候 1 秒太短了,这里我们来说一下如何去配置 Hystrix 的超时时间。一、全局配置超时时间商品模块ymlhystrix: command: default: execution: isolation: thread: timeoutInMilliseconds: 3000这个是配置 hystrix 全原创 2021-09-27 17:31:22 · 177 阅读 · 4 评论 -
Spring Cloud(2020.0.3) | 从入门到入土 - 13. Hystrix 服务熔断、降级的使用
服务熔断机制是保护整个微服务出现雪崩,而服务降级是在熔断后的一个处理。(ps:和 Ribbon、Feign 类似,Hystrix 已经凉凉了,在 SpringCloud 最新版本中,Hystrix 已经没有了,我们只能用它最后一个版本 2.2.9.RELEASE)一、服务熔断的引入这里我们是将服务熔断引入到商品模块,因为在我们项目中,订单模块是需要调用商品模块~~~商品模块pom<!-- hystrix 断路器 --><dependency> &l原创 2021-09-27 16:03:24 · 344 阅读 · 0 评论 -
Spring Cloud(2020.0.3) | 从入门到入土 - 12. 断路器 Hystrix 的引入
一、什么是断路器在一个完整的分布式系统中,许多时候不可避免会调用失败、调用超时、抛出异常等情况。在这样的情况下,这个分布式系统是没有办法提供一个完整的服务。那如何保证在一个依赖出问题,不导致整个服务失败?这里我们就引入了一种东西,断路器 Hystrix。二、Hystrix Hystrix 和 Eureka、Feign 一样,都是 Netflix 公司所开发的组件。Hystrix 的意思就是豪猪!!!原创 2021-09-26 16:01:59 · 157 阅读 · 0 评论 -
Spring Cloud(2020.0.3) | 从入门到入土 - 11. OpenFeign 超时机制
我们之前在讲述 OpenFeign 的时候,也有提到过 Ribbon,下面我们来学习使用一下一、创建商品模块集群我们在来创建两个商品模块,使商品模块构建出一个小的集群。模块名称:microservice-commodity-provider-1002,microservice-commodity-provider-1003里面的 pom、代码都是一样的,直接复制即可,唯独 yml 要修改一下端口,还有 eureka 的 instance-id,其他的都正常复制。二、修改业务代码我原创 2021-09-24 15:47:28 · 222 阅读 · 0 评论 -
Spring Cloud(2020.0.3) | 从入门到入土 - 10. OpenFeign 的使用
我们就之前的例子,现在来改良一下。一、订单模块修改因为我们订单模块是需要调用商品模块,所以我们需要在订单模块中引入 OpenFeign 的支持(商品模块中不需要~~~)pom<!-- openFeign --><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign<原创 2021-09-24 10:15:32 · 254 阅读 · 0 评论 -
Spring Cloud(2020.0.3) | 从入门到入土 - 9. 声明式服务调用 OpenFeign 的引入
一、什么是 OpenFeign来看一下官网解释:Feignis a declarative web service client. It makes writing web service clients easier. To use Feign create an interface and annotate it. It has pluggable annotation support including Feign annotations and JAX-RS annotations. F.原创 2021-09-23 20:12:42 · 189 阅读 · 0 评论 -
Spring Cloud(2020.0.3) | 从入门到入土 - 8. Eureka 自我保护机制
一、什么是 Eureka 自我保护机制我们可以看一下我们的 Eureka Server,不管是不是集群,时间长了都会出现这么一句红色的警告~~~这个是什么呢?这个其实就是 Eureka 的自我保护机制。二、自我保护机制的背景默认情况下,如果 Eureka Server 在一定时间内(默认90秒)没有接收到某个微服务实例的心跳,Eureka Server 将会移除该实例。但是当网络分区故障发生时,微服务与 Eureka Server之间无法正常通信,而微服务本身是正常运行的,此时不应该移除原创 2021-09-23 17:36:59 · 95 阅读 · 0 评论 -
Spring Cloud(2020.0.3) | 从入门到入土 - 7. Eureka Server 高可用集群配置
上一讲我们将两个服务注册到了 Eureka Server 中,但是!如果 Eureka Server 挂掉之后,虽然服务还可以继续调用一段时间(因为有缓存),但是,如果有新的服务现在要注册,是注册不了的,或者当注册中心扛不住高并发的时候,我们的服务也会出现问题,为了解决这个问题,我们引入了 Eureka 集群。一、Eureka 集群搭建Eureka 本身是支持集群化部署的,我们来模拟一下。集群的话,我们一般都是推荐三个起步,但是因为是学习,所以我们这里就弄两个,主要是感受一下。到时候项目上线到生原创 2021-09-23 17:25:03 · 139 阅读 · 0 评论 -
Spring Cloud(2020.0.3) | 从入门到入土 - 6. Eureka Client 注册到注册中心
上一篇我们将 Eureka Server 运行起来了,这一篇我们将之前的两个服务提供者注册到注册中心去。一、微服务注册到注册中心配置(我们就用 commodity 服务为例来进行说明,另外一个 order 服务自己去操作)pom我们需要在 pom 中引入 Eureka,但是这里我们引入的是 client,而不是 server !!!<!-- Eureka Client --><dependency> <groupId>org.springf原创 2021-09-23 14:18:42 · 109 阅读 · 0 评论 -
Spring Cloud(2020.0.3) | 从入门到入土 - 5. Eureka Server 搭建
上一篇博客我们讲述了 Eureka 这个服务注册组件,接下来我们去搭建一下 Eureka Server 注册中心。一、搭建 Eureka Server模块名称:microservice-eureka-server-2000我们使用该模块当做我们的服务注册中心,到时候让其他的子服务注册到 Eureka 中。pom 配置<dependencies> <!-- Eureka Server --> <dependency>原创 2021-09-23 10:40:38 · 138 阅读 · 0 评论 -
Spring Cloud(2020.0.3) | 从入门到入土 - 4. 服务注册中心 Eureka 的引入
一、Eureka 介绍Eureka 是美国Netflix 公司开源的一个服务注册于发现框架。github:https://github.com/Netflix/eureka这个框架刚出来,可以说是非常火爆, 很多的企业都在使用这个框架。它本身是一个基于 REST 的服务,主要用于定位运行在 AWS 域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。SpringCloud 将它集成在其子项目 spring-cloud-netflix中,以实现 SpringCloud 的服务发现功能.原创 2021-09-22 20:26:22 · 147 阅读 · 0 评论 -
Spring Cloud(2020.0.3) | 从入门到入土 - 3. 微服务远程调用
上一篇我们将基础的微服务项目搭建完成,这一篇我们主要来看一下,服务之间如何去调用。一、订单模块(pom、application.yml 自己去配置啊,配置文件上一讲是有的)首先我们去创建一个接口,创建订单的接口。主要来看一下 CreateOrderDTO 的参数。public class CreateOrderDTO { // 订单人 id (默认用户 a) private String userId; private List<DTO> commodity原创 2021-09-22 18:02:38 · 147 阅读 · 2 评论 -
Spring Cloud(2020.0.3) | 从入门到入土 - 2. 微服务基础项目搭建
微服务是需要很多很多子项目相互配合使用,这里我们先来搭建基础的微服务项目。一、父项目父项目名称:microservice这里我们创建一个普通的 Maven Project 项目作为我们的父项目,它主要的作用就是管理整个微服务中子项目的版本。这里注意一下,Packaging 要选择 pom,不要选择成 jar 或者其他的。接着我们引入对应的 Spring Cloud 的版本 pom(因为我们后期也要去学习 SpringCloud Alibaba,所以这里也一并引用进来)Spring原创 2021-09-22 17:05:01 · 377 阅读 · 0 评论 -
Spring Cloud(2020.0.3) | 从入门到入土 - 1. 微服务
随着业务的复杂、数据量的增长,普通的单一应用程序渐渐的支撑不住了......一、什么是微服务微服务的话是将之前的单一应用程序划分成为一组一组的服务,服务之间进行相互协作,为用户提供最终价值。二、微服务...原创 2021-09-15 17:59:29 · 189 阅读 · 0 评论