基本springboot 2.0版本 spring-cloud的使用

Spring Cloud与Spring Boot版本匹配关系


Spring Cloud

Spring Boot

Finchley

兼容Spring Boot 2.0.x,不兼容Spring Boot 1.5.x

Dalston和Edgware

兼容Spring Boot 1.5.x,不兼容Spring Boot 2.0.x

Camden

兼容Spring Boot 1.4.x,也兼容Spring Boot 1.5.x

Brixton

兼容Spring Boot 1.3.x,也兼容Spring Boot 1.4.x

Angel

兼容Spring Boot 1.2.x

从Spring Cloud与Spring Boot版本匹配关系可以看出,如果项目使用的spring boot 版本在 2.0以上,那么必须使用spring cloud 版本 为

Finchley.RELEASE版本 这个版本与以前的D版本有一些区别,下面主要讲的就是spring cloud F版本的简单使用

我这里也自己搭了一套关于spring-cloud的基本使用的demo,下面我来详细介绍下该项目

其中gitHub地址为:https://github.com/yihec/springCloud

首先介绍下各个module的用途:

1.首先是eureka-server 这是一个服务注册中心,所有的服务都会在此上面管理,在Application上增加@EnableEurekaServer注解即可, Eureka服务端可以部署成为高可用,每一个服务器都会复制注册的服务状态到其他服务器,然后打开网址http://localhost:1001/可以看到各个注册的服务信息

2.config-server 配置中心,将各个服务配置保存在git,用于统一话管理配置文件,在 Application 上增加@EnableConfigServer注解即可。

3.server-1 和 server-2 这两个都是服务生产者,里面除了本地服务外,另外在server-1中使用Feign 调用了server-2的接口,Feign封装了HTTP调用服务方法,使得客户端像调用本地方法那样直接调用方法,类似Dubbo中暴露远程服务的方式,区别在于Dubbo是基于私有二进制协议,而Feign本质上还是个HTTP客户端。 另外还使用了一个Spring Cloud 断路器 Hystrix, 以下是关于Hystrix的详细介绍:

<1>服务降级:

在调用接口的时候,可以实现一个fallback方法, 当请求后端服务出现异常的时候, 可以使用fallback

方法返回的值.fallback方法的返回值一般是设置的默认值或者来自缓存.

<2>断路器:

当Hystrix Command请求后端服务失败数量超过一定比例(默认50%), 断路器会切换到开路状态(Open).

这时所有请求会直接失败而不会发送到后端服务. 断路器保持在开路状态一段时间后(默认5秒),

自动切换到半开路状态(HALF-OPEN). 这时会判断下一次请求的返回情况, 如果请求成功, 断路器切回闭路

状态(CLOSED),否则重新切换到开路状态(OPEN). 即有自我检测并恢复的能力.

<3> 资源隔离:

在Hystrix中, 主要通过线程池来实现资源隔离. 通常在使用的时候我们会根据调用的远程服务划分出多个线

程池. 例如调用产品服务的Command放入A线程池, 调用账户服务的Command放入B线程池. 这样做的主要

优点是运行环境被隔离开了. 这样就算调用服务的代码存在bug或者由于其他原因导致自己所在线程池被耗

尽时, 不会对系统的其他服务造成影响. 但是带来的代价就是维护多个线程池会对系统带来额外的性能开

销. 如果是对性能有严格要求而且确信自己调用服务的客户端代码不会出问题的话, 可以使用Hystrix的信号

模式(Semaphores)来隔离资源.

另外当服务越来越多的时候,这时候就需要用到服务链路追踪(Spring Cloud Sleuth)

在spring Cloud为F版本的时候,已经不需要自己构建Zipkin Server了,只需要下载jar即可,下载地址:

https://dl.bintray.com/openzipkin/maven/io/zipkin/java/zipkin-server/ 然后使用java -jar启动,

再打开http://localhost:9411/的界面,我在server-1 中调用了server-2的接口,然后点击依赖分析,可以看到详细的调用情况

4:service-zuul 路由网关(zuul)服务,zuul是微服务架构的不可或缺的一部分,提供动态路由,监控,安全,权限认证等服务。可以在这里面进行统一的比如异常处理,权限认证等等。其实跟spring中的uri过滤器有点像,首先所有的请求第一时间经过这里,然后通过过滤处理,跳转不同的页面

5:hystrix-dashboard 断路器监控(Hystrix Dashboard) 在微服务架构中为例保证程序的可用性,防止程序出错导致网络阻塞,出现了断路器模型。断路器的状况反应了一个程序的可用性和健壮性,它是一个重要指标。Hystrix Dashboard是作为断路器状态的一个组件,提供了数据监控和友好的图形化界面。

启动server-1项目,输入网址http://localhost:2001/hystrix,

在SpringBoot 2.0版本中会出现Unable to connect to Command Metric Stream.异常信息,此时需要配置servlet

然后在界面依次输入:http://localhost:2001/hystrix.stream 、2000 、aa(标题,随便取);点确定。然后调用接口输入网址 http://localhost:2001/HelloServer2 ,会出现下面页面,这个就是服务调用错误的提示

最后启动server-2,接口调用成功

以上就是关于spring-cloud的一些简单使用,其中有疑问或者不对的地方,希望大家留言指出,感谢!

参考资料:https://blog.csdn.net/forezp/article/details/70148833/

https://gitee.com/didispace/SpringCloud-Learning

原文地址:https://www.cnblogs.com/yihec/p/9454762.html

时间: 2024-10-08 19:32:24

基本springboot 2.0版本 spring-cloud的使用的相关文章

spring boot 2.0.3+spring cloud (Finchley)熔断器Hystrix

在分布式系统中服务与服务之间的依赖错综复杂,一种不可避免的情况就是某些服务会出现故障,导致依赖于他们的其他服务出现远程调度的线程阻塞.某个服务的单个点的请求故障会导致用户的请求处于阻塞状态,最终的结果是整个服务的线程资源消耗殆尽.由于服务的依赖性,会导致依赖于该故障服务的其他服务也处于线程阻塞状态,最终导致这些服务的线程资源消耗殆尽,知道不可用,从而导致整个服务系统不可用,即雪崩效应.为了防止雪崩效应,产生了熔断器模型. Hystrix是Netflix公司开源的一个项目,提供了熔断器功能,能阻止

spring boot 2.0.3+spring cloud (Finchley)7、微服务监控Spring Cloud Admin

参考:Spring Boot Admin 2.0 上手 Spring Boot Admin 用于管理和监控一个或多个Spring Boot程序,在 Spring Boot Actuator 的基础上提供简洁的可视化 WEB UI,提供如下功能: 显示 name/id 和版本号 显示在线状态 Logging 日志级别管理 JMX beans 管理 Threads 会话和线程管理 Trace 应用请求跟踪 应用运行参数信息,如: Java 系统属性 Java 环境变量属性 内存信息 Spring 环

Spring Cloud 升级最新 Finchley 版本,踩了所有的坑!

Spring Boot 2.x 已经发布了很久,现在 Spring Cloud 也发布了 基于 Spring Boot 2.x 的 Finchley 版本,现在一起为项目做一次整体框架升级. 升级前 => 升级后 Spring Boot 1.5.x => Spring Boot 2.0.2 Spring Cloud Edgware SR4 => Spring Cloud Finchley.RELEASE Eureka Server Eureka Server 依赖更新 升级前: <

Spring Boot 2.x 已经发布了很久,现在 Spring Cloud 也发布了 基于 Spring Boot 2.x 的 Finchley 版本,现在一起为项目做一次整体框架升级。

升级前 => 升级后 Spring Boot 1.5.x => Spring Boot 2.0.2 Spring Cloud Edgware SR4 => Spring Cloud Finchley.RELEASE Eureka ServerEureka Server 依赖更新 升级前: <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-

Spring Cloud版本 version命名说明 (Edgware)

Spring Cloud版本 version命名说明 (Edgware) 版权声明:guofangsky 版权所有,转载不究. https://blog.csdn.net/guofangsky/article/details/82868564 spring boot/cloud 项目中,看到如下配置: <parent>   <groupId>org.springframework.cloud</groupId>   <artifactId>spring-cl

确定稳定的 Spring Cloud 相关环境版本

开发部署 Spring Cloud 微服务框架,需要先确定 Spring Cloud 的相关环境版本,主要包含:Spring Cloud.Spring Cloud Netflix.JDK.JRE.Java Version等相关版本,以及环境的配置. 现在最新版本 Java 10.Spring Boot 2.0.Spring Cloud Finchley.M9,但这些版本还不太稳定,而且相关的兼容也不是很好,问题的解决方案也比较少. 今天花了大概一天的时间,尝试了各种版本的兼容,以及使用部署的问题

Spring Cloud与Spring Boot版本匹配关系

Spring Cloud版本演进情况如下: 版本名称 版本Finchley snapshot版Edgware snapshot版Dalston SR1 当前最新稳定版本Camden SR7 稳定版本Brixton SR7 稳定版本Angel SR6 稳定版本 Spring Cloud与Spring Boot版本匹配关系: Finchley 兼容Spring Boot 2.0.x,不兼容Spring Boot 1.5.xDalston和Edgware 兼容Spring Boot 1.5.x,不兼容

Spring Boot,Spring Cloud,Spring Cloud Alibaba 版本选择说明以及整理归纳

前言 本文的核心目的: 1.方便自己以后的查找,预览,参考 2.帮助那些不知道如何选择版本的朋友进行指引,而不是一味的跟风网上的版本,照抄. Spring Boot 版本 版本查询: https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-dependencies 如何选择版本: 如果说你的项目只用到 Spring Boot 那么可以直接选择最新的稳定版,如上图的 2.1.7.RELEASE,RELEASE

spring-boot 2.0 多模块化项目和EurekaServer的搭建

Spring boot由于其 1.易于开发和维护.2.单个微服务启动快.3.局部修改部署容易.4.技术栈不受语言限制等优点受到越来越多公司的重视.spring-boot还集成了许多关于微服务开发的框架(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,领导选举,分布式 会话,群集状态),使我们部署微服务免去了繁琐的配置. 下面我们来学习利用spring-boot搭建电商项目. Spring Boot 2.0.0-SNAPSHOT 要求 Java 8 和 Spring