6-SpringCloudAlibaba引入hytrix
1. 序言前面已经将openfeign引入了,现在引入hytrix做负载服务熔断降级 1.1. hystrix 引入1.1.1. pom依赖1234<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix</artifactId></dependency> 注意不要引入到 1234<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-netflix-hystrix</artifactId></dependency> 没有starter自动配置会报错的 1.1.2....
4-sentinel整合dashboard
1. 序言sentinel 默认加载到内存中,项目启动之后流控规则其实没办法改变了,sentinel这里提供了一个dashboard 服务,可以启动客户端查看对应的配置信息,也可以监控,十分方便 sentinel引入 服务端和客户端的概念 服务端:及控制台dashboard程序,需要单独启动项目 客户端:每一个用了sentinel且引入了连接包的服务 2. 基础工程2.1. 工程搭建2.1.1. 服务端服务端直接从官方网站上下载即可:sentinel-dashboard 下载完成后启动jar 包 1java -jar sentinel-dashboard-1.8.1.jar --server.port=8847 默认的服务端口为8080,一般而言我们需要修改一下。启动之后服务端就完成了 2.1.2. 客户端客户端不需要做特殊改造,只需要引入依赖和加入配置即可 2.1.2.1. pom1234<dependency> <groupId>com.alibaba.csp</groupId> ...
5-SpringCloudAlibaba引入openfeign
1. 序言前面已经成功调用了生产者消费者,但消费者是通过RestTemplate调用的,而spring-cloud中有原生的openfeign方案,更为符合微服务特性因此改RestTemplate为OpenFeign调用,同时加入Hystrix做熔断 2. OpenFeign工程沿用消费者工程,需要引入openfeign和改造调用接口 2.1. openfeign的引入 添加依赖 1234567891011121314151617181920212223<dependencies> <!-- <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> <dependency> ...
3-sentinel整合Spring
1. 序言由Java的示例,其实我们在spring中也可以根据sentinel-core通过切面AOP来自定义实现一个拦截,这很容易,Sentinel自己也实现了Spring的使用 Sentinel自行实现了两套拦截的方案: 一套是基于Filter的拦截,通过映射请求路径的方式,代码中在config中配置好路径对应的资源策略 另一套是基于Interceptor方案,通过添加@SentinelResource,拦截对应的数据 2. 工程搭建2.1. 基于Servlet的Filter2.1.1. pom1234567891011121314<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> ...
4-SpringCloudAlibaba生产者消费者调用
1. 序言前面已经搭建了工程并成功注册到nacos中,这里我们使用生产者消费者模型实现远程调用,并且把config和discovery融合 2. 生产者搭建2.1. pom1234567891011121314151617<dependencies> <!--配置中心--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> <!--服务发现--> <dependency> <groupId>com.alibaba.cloud</groupId> ...
2-sentinel Java工程
1. 序言使用SentinelCore搭建一个简单的限流项目,用其中最核心的逻辑理解Sentinel 2. 工程搭建2.1. 引入依赖123456<dependencies> <dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-core</artifactId> </dependency></dependencies> 只需要这一个依赖就够了 2.2. Java中使用1234567891011121314151617181920212223242526272829303132333435363738394041424344454647import com.alibaba.csp.sentinel.Entry;import com.alibaba.csp.sentinel.SphU;import...
3-SpringCloudAlibaba discovery服务注册
1. 说明discovery意为发现,也就是我们的服务注册,这和spring-cloud的思想保持一致,spring-cloud-alibaba和spring-cloud-netflix均是相同的实现 2. 项目搭建2.1. pom12345678910<dependencies> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> ...
1-sentinel开篇
1. 序言Sentinel组件主要是做熔断降级,限流使用的,可以作用域于微服务调用层,也可以作用域web入口层用于限流 由于官网专门给出了概念页,文章后续全部引用至官网 官方文档 1.1. Sentinel 基本概念1.1.1. 资源资源是 Sentinel 的关键概念。它可以是 Java 应用程序中的任何内容,例如,由 应用程序提供的服务 ,或由应用程序调用的 其它应用提供的服务 ,甚至可以是 一段代码 。在接下来的文档中,我们都会用资源来描述代码块。 只要通过 Sentinel API 定义的代码,就是资源,能够被 Sentinel 保护起来。大部分情况下,可以使用方法签名,URL,甚至服务名称作为资源名来标示资源。 1.1.2. 规则围绕资源的实时状态设定的规则,可以包括流量控制规则、熔断降级规则以及系统保护规则。所有规则可以动态实时调整。 1.2. Sentinel 功能和设计理念1.2.1....
SpringCloudAlibaba官方文档
1. Spring Cloud Alibaba Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。 依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统。 此外,阿里云同时还提供了 Spring Cloud Alibaba 企业版 微服务解决方案,包括无侵入服务治理(全链路灰度,无损上下线,离群实例摘除等),企业级 Nacos 注册配置中心和企业级云原生网关等众多产品。 参考文档 请查看 WIKI 。 为 Spring Cloud Alibaba 贡献代码请参考 如何贡献 。 1.1. 主要功能 服务限流降级:默认支持 WebServlet、WebFlux、OpenFeign、RestTemplate、Spring Cloud Gateway、Dubbo 和 RocketMQ...
2-SpringCloudAlibaba config配置
1. 说明由前面我们已经知道了,nacos的职责由config和discovery,现在我们首先分析config 由于是配置信息,并非应用的信息,因此需要比原来application.properties更早的加载,就需要引入bootstrap.properties当读取完bootstrap.properties中的配置的nacos的相关信息时,会去nacos中找到对应的dataId对应的配置文件,此文件等效于application.properties文件,读取之后会加入Enviroment中,也就是读取到了内存里面,后续解析时便可以从Enviroment中获取数据了 2. 工程搭建2.1. pom依赖12345678<dependency> <groupId>com.alibaba.cloud</groupId> ...
