Spring-cloud
文章平均质量分 67
记录springcloud学习方法和学习样例。
JAVA程序猿成长之路
这个作者很懒,什么都没留下…
展开
-
SpringCloudGateway重写负载均衡策略
gateway中多实例请求转发,默认采用轮训转发策略。在有些场景下,某些请求想固定到某一台实例上,这里通过重写默认负载均衡策略的方式实现。以下代码为,大文件分片上传,多实例场景,根据文件md5和实例总数取模,选取处理服务实例。保证同一文件在固定实例上进行处理,保证最后的文件合并不会有问题。原创 2024-08-23 08:32:12 · 616 阅读 · 0 评论 -
ribbon源码中线程是的使用
使用单例模式(静态内部类),初始化线程池。原创 2023-07-07 14:56:54 · 1152 阅读 · 0 评论 -
异步调用Feign上下文丢失问题
由于一些业务处理,在远程调用Feign时,需要异步调用,但是当前请求上下文是保存在ThreadLocal中,这样会导致上下文丢失。公司业务需要在批量导入数据,文件上传成功,异步解析数据入库。feign 拦截器配置如下在远程调用中header进行向下传递@Component@Slf4jpublic class FeignConfiguration implements RequestInterceptor { @Override public void apply(RequestTemplat原创 2020-10-24 09:55:02 · 2194 阅读 · 0 评论 -
Spring Cloud Gateway新一代网关(下篇)
1.Predicate的使用1.1是什么启动网关服务,查看控制台1.2Route Predicate Factories这个是什么1.3常用的Route Predicate1.3.1After Route Predicate根据配置时间来匹配路由以下配置为,请求时间在指定时间点之后可以用上面yaml中配置的时间戳,是默认时区时间戳。 public static void main(String[] args) { ZonedDateTime now = Zone原创 2020-09-04 11:34:02 · 307 阅读 · 0 评论 -
Spring Cloud Gateway新一代网关(上篇)
1.概念简介1.1官网上一代zuul 1.X https://github.com/Netflix/zuul/wiki当前gateway https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.1.RELEASE/reference/html/1.2是什么1.2.1概述该项目提供了一个在Spring生态系统之上构建的API网关,包括:Spring 5,Spring Boot 2和Project Reactor。 S原创 2020-09-02 13:31:15 · 452 阅读 · 0 评论 -
Spring Cloud Netflix子模块综合整理-Zuul
路由器和过滤器:Zuul路由是微服务架构的组成部分。 例如,/ 可以映射到您的Web应用程序,/api /users映射到用户服务,/api/ shop映射到购物服务。 Zuul是Netflix基于JVM的路由器和服务器端负载均衡器。Netflix使用Zuul进行以下操作:配置属性zuul.max.host.connections已被两个新属性替换,zuul.host.maxTot...原创 2018-07-22 16:07:16 · 1039 阅读 · 0 评论 -
Spring Cloud Netflix子模块综合整理-Ribbon
客户端负载均衡器:RbbionRibbon是一个客户端负载均衡器,可以让您对HTTP和TCP客户端的行为进行大量控制。 Feign已使用Ribbon,因此如果您使用的是@FeignClient,则此部分也适用。Ribbon中的一个核心概念是指定客户端的概念.每个负载均衡器都是组件集成的一部分,这些组件协同工作以按需联系远程服务器,并且集成有共开发人员引用的名称(例如,使用@FeignCli...原创 2018-07-23 22:10:31 · 1686 阅读 · 0 评论 -
Spring Cloud Netflix子模块综合整理-Hystrix
这篇博客主要整理1.断路器:Hystrix客户端Netflix创建了一个名为Hystrix的库,它实现了断路器模式。在微服务体系结构中,通常有多个服务调用层 (微服务Hystrix仪表盘样例)较低级别的服务中的服务故障可能导致级联故障一直到用户。当对特定服务的调用大于circuitBreaker.requestVolumeThresh...原创 2018-07-19 21:52:09 · 2313 阅读 · 0 评论 -
Spring Cloud Netflix子模块综合整理-Feign
声明性REST客户端:FeignFeign是一个声明性的Web服务客户端。 它使编写Web服务客户端变得更容易。 要使用Feign需要创建一个接口并添加相应的注释。 它具有可插入的注释支持,包括Feign注释和JAX-RS注释。 Feign还支持可插拔编码器和解码器。 Spring Cloud增加了对Spring MVC注释的支持,并使用了Spring Web中默认使用的相同HttpMess...原创 2018-07-20 21:21:34 · 812 阅读 · 0 评论 -
20.Spring-Cloud中Eureka自我保护模式和@SpringCloudApplication
默认情况下,如果Eureka Server在一定时间内没有接收到某个微服务实例的心跳,Eureka Server将会注销实例(默认90秒)。但是当网络分区故障发生时,微服务与Eureka Server之间无法正常通信,以上行为可能变得非常危险-----因为微服务本省其实是健康的,此时不应该注销这个微服务。 Eureka通过“自我保护模式”来解决这个问题------当...原创 2018-06-12 19:54:57 · 4009 阅读 · 0 评论 -
Spring Cloud Netflix子模块综合整理-Eureka
Spring Cloud Netflix特征Spring Cloud Netflix功能:服务发现:可以注册Eureka实例,客户端可以使用Spring管理的bean发现实例 服务发现:可以使用声明性Java配置创建嵌入式Eureka服务器 断路器:Hystrix客户端可以使用简单的注释驱动方法装饰器构建 断路器:带有声明性Java配置的嵌入式Hystrix仪表板 声明性RES...原创 2018-07-19 17:36:21 · 610 阅读 · 0 评论 -
21.Spring Cloud之分布式配置中心Spring Cloud Config注册中心版
前面的博客已经演示无注册中心版,那么Config Server也能以服务的方式注册到服务中心,被其他应用发现并获取配置信息。 服务端配置(Config Server)pom.xml<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-...原创 2018-06-15 08:49:03 · 231 阅读 · 0 评论 -
中小企业对Spring Cloud微服务架构实践经验总结的一些思考!
原文出处:微信公众号 什么是微服务微服务的概念源于 2014 年 3 月 Martin Fowler 所写的一篇文章“Microservices”。文中内容提到:微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。 每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(通常是基于 HTTP...转载 2018-06-20 08:42:09 · 778 阅读 · 0 评论 -
22.Spring Cloud Config安全保护
由于配置中心的内容比较敏感,做一定的安全是有必要的。为了防止配置内容外泄应该采取安全保护。因为本来用的是基于springboot的,所以整合Spring security比较容易。默认情况下回获得一个名为user的用户名,并且在启动的时候,会在日志中打印随机密码。大多数情况下,我们并不采用随机密码,都是自定义密码。config server 具体配置在配置 1.pom.x...原创 2018-06-27 21:15:01 · 1023 阅读 · 0 评论 -
24.Spring Cloud之Spring Cloud Config && Spring Cloud Bus
前言在很多场景下,需要运行期间动态调整配置。如果配置发生了修改,微服务如何获取配置的刷新。在需在微服务客户端添加以下依赖配置 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</art...原创 2018-06-30 14:41:34 · 442 阅读 · 0 评论 -
23.Spring Cloud Bus 无法更新问题(踩坑) Spring cloud config server Could not fetch remote for master remote
问题描述:spring cloud版本<spring-cloud.version>Dalston.SR1</spring-cloud.version>按照书上教程,Config-Server ,Config-Client加入注册中心,并且给Config-Client配置了rabbitMQ充当消息总线,用于刷新git配置文件改动时通知其他微服务获取最新配置。当我改...原创 2018-06-30 13:56:38 · 7634 阅读 · 1 评论 -
19.Spring Cloud之分布式配置中心Spring Cloud Config
Spring Cloud Config是Spring Cloud团队创建的一个全新项目,用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持,它分为服务端与客户端两个部分。其中服务端也称为分布式配置中心,它是一个独立的微服务应用,用来连接配置仓库并为客户端提供获取配置信息、加密/解密信息等访问接口;而客户端则是微服务架构中的各个微服务应用或基础设施,它们通过指定的配置中...原创 2018-06-10 13:21:35 · 350 阅读 · 0 评论 -
18.Spring-Cloud-Zuul之文件上传和容错与回退
对于通过API网关调用文件上传服务来说,文件(1M以内)无须任何处理,即看正常上传。对于大文件(10M以上)上传。需要在上传路径上添加/zuul前缀。也可使用zuul.servlet-path自定义前缀。文件上传演示 pom.xml<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http:/...原创 2018-06-03 15:54:03 · 1429 阅读 · 2 评论 -
17.Spring-Cloud-Zuul之服务路由配置
服务路由配置 Spring Cloud Zuul通过与Spring Cloud Eureka的整合,实现了对服务实例的自动化维护. 我们只需要zuul.routes.<route>.path与zuul.routes.<route>.serviceId参数对的方式进行配置如下: /order-service/**规则请求路径转发到名为ord...原创 2018-06-02 17:24:35 · 4316 阅读 · 0 评论 -
15.Spring-Cloud-Zuul API网关服务初探
在没有服务网关时,请求流程图大致如下:客户端直接与各个微服务通信,会有以下问题:客户端会多次请求不同的微服务,增加了客户端的复杂性。 存在跨域请求,在一定场景下处理相对复杂。 认证复杂,大多数情况下,为了保证对外服务的安全性,我们在服务端实现的微服务接口,往往都会有一定的权限校验机制,比如对用户登录状态的校验等;同时为了防止客户端在发起请求时被篡改等安全方面的考虑,还会有一些...原创 2018-05-10 18:30:57 · 274 阅读 · 0 评论 -
16.Spring-Cloud-Zuul之请求过滤
每个客户端用户请求微服务应用提供的接口时,它们权限往往都有一定的限制,系统并不会将所有的微服务接口都对它们开放。然而服务路由并没有限制权限这样的功能,所有请求被毫无保留的转发到具体应用并返回结果,为了实现对客户端请求的安全校验签名和权限控制,最简单和粗暴的方法就是为每个微服务应用都实现一套用于校验签名和鉴别权限的的过滤器或拦截器。不过这样会增加日后的维护难度,而且代码也变得冗余。所以最...原创 2018-05-20 15:12:03 · 5060 阅读 · 2 评论 -
14.Spring-Cloud-Feign中请求压缩配置和日志配置
请求压缩配置 Spring Cloud feign支持对请求与响应进行GZIP压缩,以减少通信中的性能损耗,主要是在spring-cloud-netflix-core.jar文件中.默认对请求和相应压缩是禁用的,从org.springframework.cloud.netflix.feign.encoding.FeignContentGzipEncodingAutoConf...原创 2018-05-06 13:08:07 · 5707 阅读 · 0 评论 -
13.Spring-Cloud-Feign中配置Ribbon和Hystrix
feign中对ribbon的配置主要是在ribbon-core.jar文件下,com.netflix.client.config包下,其中DefaultClientConfigImpl类为默认配置配置客户端和负载均衡器的最简单方法是符合特定格式的属性:<clientName>.<namespace>.< propertyName > = <valu...原创 2018-05-05 18:27:20 · 4103 阅读 · 1 评论 -
12.Spring-Cloud-Feign初探
在微服务架构中客户端负载均衡和断路器保护,作为基础工具类框架广泛的应用在各个微服务的实现中,不仅包括我们自身的业务服务类,也包括一些基础设施类微服务,那么是否有更高层次的封装来整合这两个基础工具以简化开发。 Feign是Netflix开发的声明式、模板化的HTTP客户端,Netflix Feign整合了Spring Cloud Ribbon与Spring Cloud Hystrix...原创 2018-05-05 11:32:55 · 1393 阅读 · 0 评论 -
11.Spring-Cloud-Hystrix之熔断监控Turbine
上篇博文中学到了Hystrix Board监控单个应用,除此之外还有一个Turbine提供的监控点/trubine.stream是对集群的监控使用。在复杂的分布式系统中,相同服务的节点经常需要部署上百甚至上千个,很多时候,运维人员希望能够把相同服务的节点状态以一个整体集群的形式展现出来,这样可以更好的把握整个系统的状态。 为此,Netflix提供了一个开源项目(Turbine)来提供把多个h...原创 2018-04-27 15:06:44 · 719 阅读 · 0 评论 -
9.Spring-Cloud-Hystrix之请求缓存(踩坑)
当系统的用户不断增长时,每个微服务需要承受的并发压力越来越大。在分布式环境下,通常压力来自于对依赖服务的调用,因为请求依赖服务的资源需要通过通信来实现,这样的依赖方式比起进程内的调用方式引起一部分的性能损失,同时HTTP相比于其他高性能的通信协议在速度上没有任何优势,所以它有些类似于对数据库这样的外部资源进行读写操作,在高并发的情况下可能会成为系统的瓶颈。 在...原创 2018-04-26 19:44:33 · 2492 阅读 · 1 评论 -
8.Spring-Cloud-Hystrix之异常处理
在调用服务执行HsytrixCommand实现的run()方法抛出异常时,除HystrixBadRequestException之外,其他异常都会认为是Hystrix命令执行失败并触发服务降级处理逻辑.异常处理当Hystrix命令因为异常(除了HystrixBadRequestException异常)进入服务降级逻辑之后,往往需要对不同的异常做针对处理,那么就要捕获异常。对于使用@Hyst...原创 2018-04-24 18:52:07 · 2926 阅读 · 0 评论 -
7.Spring-Cloud服务容错保护之Hystrix初探
在微服务架构中,存在着多个服务单元,若一个单元出现故障,就很容易因依赖关系而出现故障的蔓延,最终导致整个系统的瘫痪,这样的架构相较传统的架构更加不稳定,为了解决这样的问题,产生了断路器等一系列的服务保护机制。 "断路器"本身是一种开关装置,用于在电路上保护线路过载,当线路中有电器发生短路,"断路器"能够及时切断故障电路,防止发生过载、发热甚至起火等严重后果。 分...原创 2018-04-24 17:50:10 · 353 阅读 · 0 评论 -
6.Spring-cloud官方构建图
Spring Cloud为最常见的分布式系统模式提供了一个简单且可访问的编程模型,帮助开发人员构建有弹性、可靠和协调的应用程序。Spring Cloud是建立在Spring Boot之上的,这使得开发人员可以很容易地开始并快速地提高效率。服务发现(Service Discovery)一个动态的目录,支持客户端负载平衡和智能路由。断路器(Circuit Break...原创 2018-04-11 17:32:49 · 319 阅读 · 0 评论 -
5.Spring-Cloud中服务的提供者和服务的消费者
注意:请使用官方建议的springboot和springcloud对应的版本在之间的博客中已经写到如何建立高可用的注册中心,地址见高可用注册中心现在我们来创建服务治理体系下的一个服务(即服务的提供者)1.pom.xml<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.or...原创 2018-04-11 15:54:55 · 3696 阅读 · 0 评论 -
Spring-Boot Spring-Cloud打成jar运行提示中没有主清单属性
原文出处:http://blog.csdn.net/u010429286/article/details/79085212问题如下图 使用Spring Boot微服务搭建框架,在eclipse和Idea下能正常运行,但是在打成jar包部署或者直接使用java -jar命令的时候,提示了xxxxxx.jar中没有主清单属性: [plain] view plain copy...转载 2018-03-15 20:17:20 · 7130 阅读 · 0 评论 -
4.Spring-Cloud-Eureka构建双节点服务注册中心集群
注册中心这么关键的服务,如果是单点话,遇到故障就是毁灭性的。在一个分布式系统中,服务注册中心是最重要的基础部分,理应随时处于可以提供服务的状态。为了维持其可用性,使用集群是很好的解决方案。 Eureka Server的设计一开始就考虑了高可用问题,在Eureka的服务治理设计中,所有的结点即是服务的提供方,也是消费方,服务注册中心也不列外之前设计的让注册中心不注册自己。如下...原创 2018-03-15 21:13:40 · 3739 阅读 · 0 评论 -
3.Spring-Cloud服务注册与发现-Eureka
服务治理可以说是微服务架构中最为核心的基础模块,它主要用来实现各个服务实例的自动化注册于发现。为什么要用服务治理模块,没有它有什么不好的地方。 在最初开始构建微服务系统的时候可能服务并不多,我们可通过做一些静态配置来实现服务的调用。但随着业务的发展,系统的功能越来越复杂,相应的微服务应用也不断增加,我们的静态配置就会变得越来越难以维护。并且面对不断发展的业务,我们的集群...原创 2018-03-13 21:45:33 · 448 阅读 · 0 评论 -
2.Spring-Cloud版本说明
Spring Cloud不想Spring社区其他一些项目那样相对独立,它是一个拥有诸多项目的大型综合项目,可以说是对微服务架构提供了一站式的解决方案,其包含的各个子项目也都独立进行着内容的更新与迭代,各自都维护这自己的版本号。因此每一个Spring Cloud的版本号都会包含多个不同的版本的子项目,为了管理每个版本的子项目清单,避免Spring Cloud的版本号与其子项目的版本号混淆,...原创 2018-03-11 16:26:00 · 2118 阅读 · 0 评论 -
1.初识Spring-Cloud
部分来自微信公众号:纯洁的微笑一:读《SpringCloud微服务实战》1.Spring-Cloud其目标构建一套标准化的微服务解决方案,让架构师,开发者在使用微服务理念构建应用系统的时候,在面对各个环节的问题都找到对应的组件来处理。2.Spring-Cloud可以说是Spring社区为微服务架构提供的一个“全家桶”套餐。3.Spring-Cloud内容非常广泛,并且知识跨度较大,...原创 2018-03-11 16:27:36 · 277 阅读 · 0 评论 -
从架构演进的角度聊聊Spring Cloud都做了些什么?
原文出处:http://www.ityouknow.com/springcloud/2017/11/02/framework-and-springcloud.html传统架构发展史单体架构单体架构在小微企业比较常见,典型代表就是一个应用、一个数据库、一个web容器就可以跑起来,比如我们开发的开源软件云收藏,就是标准的单体架构。在两种情况下可能会选择单体架构:一是在企业发展的初期,为了保证快速上线,...转载 2018-03-12 15:02:57 · 343 阅读 · 0 评论 -
Spring Cloud在国内中小型公司能用起来吗?
原文出处:http://www.ityouknow.com/springcloud/2017/09/11/can-use-springcloud.html今天吃完饭休息的时候瞎逛知乎,突然看到这个一个问题Spring Cloud在国内中小型公司能用起来吗?,吸引了我的注意。仔细的看了题主的问题,发现这是一个好问题,题主经过了一番思考,并且用图形全面的将自己的疑问表达了出来,作为一个研究并使用Spr...转载 2018-03-12 15:11:30 · 242 阅读 · 0 评论 -
我们为什么要使用Spring Cloud?
转载地址 Spring Cloud是一个集成了众多开源的框架,利用Spring Boot的开发便利性实现了服务治理、服务注册与发现、负载均衡、数据监控,REST API发布方式等,基本囊括了分布式框架所需要的所有功能。是一套易开放、易部署、易维护的分布式开发工具包。在详细的了解Spring Cloud中所使用的各个组件之前,我们先了解下微服务框架的前世今生。1 2单体架构 在...转载 2018-03-05 14:21:25 · 1296 阅读 · 0 评论