Spring Cloud
文章平均质量分 77
luckystar2008
个人博客:https://tommy88.top
展开
-
springcloud系列1——使用Springboot对外提供rest服务
说明本系列视频基于周立的视频整理,他的博客地址:http://www.itmuch.com/。由于springclound基于Springboot,因此第一篇熟悉一下Springboot。 这里为了后面的演示,创建一个project,名为microservice-spring-cloud。 创建2个子模块: * microservice-springcloud-user 该...原创 2018-09-04 09:52:53 · 2913 阅读 · 0 评论 -
springcloud系列19——Feign使用fallbackFactory属性打印fallback异常
在FeignClient中,我们通过制定fallback,可以在服务不可用时自动调用fallback制定的处理方法。但如果如果希望同时知道发生回退的原因呢?可以使用fallbackFactory属性。下面以microservice-springcloud-movie-feign-with-hystrix模块来说明。1.定义一个实现FallbackFactory的类@Component...原创 2018-09-18 09:45:01 · 6742 阅读 · 0 评论 -
springcloud系列20——Turbine聚合各个节点的hystrix.stream
前言我们在之前讲过,在单个的Hystrix的应用中,我们使用/hystrix.stream可以查看监控数据,如果想以图表的形式更直观的查看监控数据,再结合dashboard就可以了。但是,如何同时监控多个应用或集群呢?我们需要使用springcloud提供的Turbine,它是将各个应用的/hystrix.stream进行聚合的组件。我们在dashboard中输入/turbine.strea...原创 2018-09-18 09:46:54 · 3164 阅读 · 0 评论 -
springcloud系列21——Zuul简介及代码示例
Zuul简介spring cloud官方文档地址:http://cloud.spring.io/spring-cloud-static/Edgware.SR3/multi/multi__router_and_filter_zuul.html路由是微服务架构的组成部分。 例如,/可以映射到您的Web应用程序,/ api/users映射到用户服务,/api/shop映射到商店服务。 Zuul是Ne...原创 2018-09-18 09:50:44 · 7640 阅读 · 0 评论 -
springcloud系列22——非JVM语言支持之sidebar
Sidebar简介Sidecar是作为一个代理的服务来间接性的让其他语言可以使用Eureka等相关组件。通过与Zuul的来进行路由的映射,从而可以做到服务的获取,然后可以使用Ribbon,Feign对服务进行消费,以及对Config Server的间接性调用。你是否想要在非jvm的语言中利用(间接性使用)Eureka,Ribbon以及Config Server?Spring Cloud Net...原创 2018-09-18 09:52:13 · 615 阅读 · 0 评论 -
springcloud系列23——Zuul的过滤器
Zuul的过滤器Zuul过滤器简介spring cloud Zuul包含了对请求的路由和过滤2个功能。路由功能负责将请求转发到具体的微服务上,而过滤器负责对请求的处理过程进行干预,是实现权限校验、服务聚合等功能的基础。在实际运行时,路由映射和请求转发是由几个不同的过滤器完成的。每一个进入zuul的http请求都会经过一系列的过滤器处理链得到请求响应并返回给客户端。spring cloud ...原创 2018-09-18 09:53:19 · 4687 阅读 · 0 评论 -
springcloud系列24——SpringCloud配置管理
springcloud官方文档为什么要统一管理配置?1、集中管理2、不同环境不同配置3、运行期间动态调整配置4、自动刷新Spring Cloud简介为了解决上面的4个问题,spring cloud提供了spring cloud config组件。Spring Cloud Config为分布式系统外部化配置提供了服务器端和客户端的支持,它包括Config Server和Config ...原创 2018-09-18 09:54:34 · 988 阅读 · 0 评论 -
springcloud系列25——Spring Cloud Config之加解密
前言在《springcloud系列25——SpringCloud配置管理》中介绍了以Git为首的作为配置仓库的示例。但是我们的配置项都是以明文的形式保存在Git仓库中。虽然我们可以创建私有的仓库,然后配置仓库的用户名和密码。但是如果账号被破解了呢?所以,本节要介绍的是如何加密你的配置项。这里首先介绍对称加密在Spring Cloud Config的用法。前提在Spring Cloud Con...原创 2018-09-18 09:55:42 · 1178 阅读 · 0 评论 -
springcloud系列26——Spring Cloud Config之加解密2
前言在上一节说了Spring Cloud Config的对称加密,也可以使用非对称加密。公钥用于加密,私钥用于解密。这一节就说说非对称加密的用法。使用1.生成秘钥这里以Spring Cloud官网文档给的例子来说明。打开CMD窗口,粘贴并执行下面的命令:keytool -genkeypair -alias mytestkey -keyalg RSA -dname "CN=Web Ser...原创 2018-09-18 09:57:03 · 226 阅读 · 0 评论 -
springcloud系列27——Spring Cloud Config之Security
Config Server端1.添加spring-boot-starter-security依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId>&...原创 2018-09-18 09:57:57 · 1044 阅读 · 0 评论 -
springcloud系列28——Spring Cloud Config与Eureka配合使用
前言在之前说到的Spring Cloud Config Client程序中都是通过spring.cloud.config.uri 指定Config Server的地址。这种方式Spring Cloud称之为“Config First Bootstrap”。除此之外,还支持一种服务发现的方式,Spring Cloud称之为“Discovery First Bootstrap”。本文将说明如何通过E...原创 2018-09-19 09:55:49 · 466 阅读 · 0 评论 -
springcloud系列29——Spring Cloud Config配置属性刷新之手动刷新
前言在以往的应用中,如果要更改应用的配置,要让配置生效必须重启应用程序。在Spring Cloud Config中我们可以刷新配置属性而不用重启应用。这1节说明在Spring Cloud Config如何手动刷新配置属性。手动刷新配置属性1.需要引入spring boot-actuator依赖(用到/refresh端点)<dependency> <groupId...原创 2018-09-19 09:56:37 · 1441 阅读 · 0 评论 -
springcloud系列30——Spring Cloud Config配置属性自动刷新
前言在前面一节中,我们通过执行/refresh端点来手动刷新配置,但是如果微服务的数量太多,一个一个刷新就很麻烦也很慢。本节介绍使用Spring Cloud Bus实现批量刷新和自动刷新。使用Spring Cloud Bus实现配置批量刷新Spring Cloud Bus依赖rabbitmq或kafka,这里我们使用rabbitmq。1.rabbitmq的安装与使用进入rabbitmq的...原创 2018-09-19 09:57:41 · 5867 阅读 · 0 评论 -
springcloud系列31——Config Server的高可用
前言Spring Cloud Config Server的高可用涉及到3个——Git仓库、RabbitMQ(Kafka)、Config Server本身3个的高可用。因为Config Server依赖Git仓库和RabbitMQ(Kafka),所以必须保证Git仓库和RabbitMQ(Kafka)也是高可用的。这里只介绍Config Server本身的高可用。Config Server的高可用...原创 2018-09-19 09:58:23 · 230 阅读 · 0 评论 -
使用jstack排查系统问题
jstack介绍jstack是java虚拟机自带的一种堆栈跟踪工具,用于生成java虚拟机当前时刻的线程快照。生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。 线程出现停顿的时候通过jstack来查看各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做什么事情,或者等待什么资源。 如果java程序崩溃生成core文件,jstack...原创 2018-09-20 09:39:27 · 1263 阅读 · 0 评论 -
springcloud系列18——全局和单个禁用Feign Client对Hystrix的支持
全局禁用这个比较简单,在application.yml中配置:feign: hystrix: enabled: false加上这段配置就可以了。禁用某个Feign Client对Hystrix的支持1.新建一个配置类@Configurationpublic class Configuration2{ //Configuration2里面加上这个就禁用了Use...原创 2018-09-18 09:43:51 · 1617 阅读 · 1 评论 -
springcloud系列17——Feign的Hystrix支持
Feign的Hystrix支持springcloud官方文档参考:17.4 Feign Hystrix Support.如果Hystrix在类路径上并且feign.hystrix.enabled = true,Feign将用断路器包装所有方法。如果只是想某个Feign Client禁用Hystrix,可以创建一个普通的Feign.Builder,并将scope设置为prototype。...原创 2018-09-16 16:02:02 · 534 阅读 · 0 评论 -
springcloud系列2——SpringCloud简介
Spring Cloud简介Spring Cloud是一系列框架的有序集合。利用Spring Boot的开发模式简化了分布式系统基础设施的开发,如服务发现、注册、配置中心、消息总线、负载均衡、断路器、数据监控等(这里只简单的列了一部分),都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud将目前比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boo...原创 2018-09-04 09:54:31 · 262 阅读 · 0 评论 -
springcloud系列3——Eureka简介和原理
Eureka简介及原理Eureka是Netflix开发的服务发现组件,本身是一个基于REST的服务。Spring Cloud将它集成在其子项目spring-cloud-netflix中,以实现Spring Cloud的服务发现功能。目前Eureka 项目相当活跃,代码更新相当频繁,目前最新的版本是1.5.5。Eureka 2.0也在紧锣密鼓地开发中,2.0将会带来更强的功能和更好的扩展性,但是...原创 2018-09-04 09:55:30 · 491 阅读 · 0 评论 -
springcloud系列4——创建一个Eureka Server
创建一个Eureka Server创建一个子模块microserver-discovery-eureka,该模块属于microserver-spring-cloud(看第一篇)。pom.xml<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-...原创 2018-09-04 09:56:58 · 290 阅读 · 0 评论 -
springcloud系列5——创建服务并注册到Eureka
添加eureka客户端的依赖在microservice-springcloud-user模块加入eureka客户端的依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</ar...原创 2018-09-04 09:58:48 · 273 阅读 · 0 评论 -
springcloud系列6——通过注册中心调用服务
前言前面在注册中心已经注册了一个服务microservice-springcloud-user,这里我们在microservice-springcloud-movie中通过注册中心调用microservice-springcloud-user用户查询服务,并且实现负载均衡能力。注意:这里不是直接通过microservice-springcloud-movie调用,是通过Eureka Ser...原创 2018-09-04 10:01:43 · 2853 阅读 · 0 评论 -
springcloud系列7——通过代码自定义配置ribbon
前言我们这里准备了2组服务: * 2个microservice-springcloud-user服务,端口分别为7902和7904; * 2个microservice-springcloud-user2服务,端口分别为7903和7905;我们想实现的效果是:microservice-springcloud-user服务随机访问,microservice-springcloud-user...原创 2018-09-04 10:03:15 · 416 阅读 · 0 评论 -
springcloud系列8——使用配置文件自定义Ribbon Client
参考《springcloud系列7——通过代码自定义配置ribbon》,将microservice-springcloud-movie中应用启动类中的@RibbonClient注释。这里是继续《springcloud系列7——通过代码自定义配置ribbon》测试的。配置文件修改在application.yml中增加下面的配置:# 定义访问microservice-springc...原创 2018-09-05 10:02:12 · 774 阅读 · 0 评论 -
springcloud系列10——Feign的简介及基础使用
Feign简介Feign 是一个声明web服务客户端,这使得编写web服务客户端更容易,使用Feign 创建一个接口并对它进行注解,它具有可插拔的注解支持包括Feign注解与JAX-RS注解,Feign还支持可插拔的编码器与解码器,Spring Cloud 增加了对 Spring MVC的注解,Spring Web 默认使用了HttpMessageConverters, Spring Clou...原创 2018-09-16 15:46:10 · 382 阅读 · 0 评论 -
springcloud系列11——覆盖Feign的默认配置
Spring Cloud Feign简介Spring Cloud官方原文: A central concept in Spring Cloud’s Feign support is that of the named client. Each feign client is part of an ensemble of components that work together to ...原创 2018-09-16 15:50:33 · 1547 阅读 · 0 评论 -
springcloud系列12——Eureka的高可用
Eureka Server的高可用是通过各个Eureka Server作为服务向其他Eureka Server注册,来实现服务列表的同步,达到高可用的效果。默认情况下,每个Eureka服务器也是Eureka客户端,并且需要(至少一个)服务URL来定位对等端。 我们对以前的Eureka Server工程做修改,在application.yml配置如下:---server: por...原创 2018-09-16 15:52:37 · 935 阅读 · 0 评论 -
springcloud系列13——实现分布式配置管理
在软件开发中,少不了系统参数配置信息。通常我们会将信息写入配置文件中。但是如果有很多个服务或应用需要配置,并且每个服务还分为开发、测试、生产等不同维度的配置,那配置量还是很大的。当然,我们也可以将配置信息放入Redis、db、zookeeper等,然后开发一个管理界面进行管理。但是这无疑增加了额外的工作成本。在spring cloud中,为我们提供了分布式配置管理功能,我们只需稍加配置即可使用...原创 2018-09-16 15:54:54 · 274 阅读 · 0 评论 -
springcloud系列14——Eureka、Ribbon和Feign常见问题和解决
1.修改System Status的Environment和Data Center如图: 增加如下配置:eureka: environment: product datacenter: spring cloud或者在启动时使用-Deureka.datacenter=spring cloud这种方式来指定。 2.Eureka配置instanceId显示IP...原创 2018-09-16 15:56:40 · 600 阅读 · 0 评论 -
springcloud系列15——hystrix简介及简单代码示例
Hystrix简介在微服务中,有服务A、B,C,D4个微服务。其中,C依赖D,A和B依赖C。 那么当D出现问题时,会导致C不可用,进而导致A和B也不可用。这就是产生了雪崩效应。hystrix语义为“豪猪”,它身上有很多刺,具有自我保护的能力。hystrix的出现即为解决雪崩效应。关于Hystrix的原理可用参考:https://www.jianshu.com/p/e07661b9ba...原创 2018-09-16 15:58:47 · 449 阅读 · 0 评论 -
springcloud系列16——Hystrix Health Indicator及Metrics Stream
传播安全上下文或使用Spring Scopes参考springcloud官方文档:http://cloud.spring.io/spring-cloud-static/Edgware.SR3/single/spring-cloud.html#_propagating_the_security_context_or_using_spring_scopes。springcloud原文: ...原创 2018-09-16 16:00:30 · 1009 阅读 · 0 评论 -
springcloud系列9——Ribbon脱离Eureka使用
前言Eureka对远程服务发现提供了抽象,你不需要在客户端硬编码URL。但是,如果你不想在Ribbon中使用Eureka,也是非常简单的。 这里仍然以前面章节中的microservice-springcloud-movie进行测试。在Ribbon中禁用Eureka在application.yml中增加下面的配置:ribbon: eureka: enabled: ...原创 2018-09-15 10:37:32 · 616 阅读 · 0 评论