eureka

springboot+cloud 学习(四)Zuul整合Swagger2

自作多情 提交于 2020-01-16 01:27:46
前言 在微服务架构下,服务是分散的,怎么把所有服务接口整合到一起是我们需要关注的。 下面举例用zuul作为分布式系统的网关,同时使用swagger生成文档,想把整个系统的文档整合在同一个页面上来说明。 项目结构 eureka-server :eureka服务注册中心,端口8761, eureka-server2 :eureka服务注册中心,端口8762, eureka-server3 :eureka服务注册中心,端口8763, zuul-swagger2 :zuul网关,端口8090, management-device :外接设备系统,端口8083, management-equip :设备管理系统,端口8082, Zuul整合Swagger2 eureka注册中心的搭建这里不再讲述,直接来看 zuul-swagger2 项目里怎么集成swagger pom.xml 文件中引入依赖: <!-- 必须要引入 springboot parent ,帮我们实现了很多jar包的依赖管理 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.2.RELEASE</version>

springcloud复习2

ⅰ亾dé卋堺 提交于 2020-01-16 00:08:33
Hystrix断路器 Hystrix是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等,Hystrix能够保证在一个依赖出问题的情况下,不会导致整体服务失败,避免级联故障,以提高分布式系统的弹性。 “断路器”本身是一种开关装置,当某个服务单元发生故障之后,通过断路器的故障监控(类似熔断保险丝),向调用方返回一个符合预期的、可处理的备选响应(FallBack),而不是长时间的等待或者抛出调用方无法处理的异常,这样就保证了服务调用方的线程不会被长时间、不必要地占用,从而避免了故障在分布式系统中的蔓延,乃至雪崩。 官网资料 https://github.com/Netflix/Hystrix/wiki/How-To-Use 服务熔断 熔断机制是应对雪崩效应的一种微服务链路保护机制。 当扇出链路的某个微服务不可用或者响应时间太长时,会进行服务的降级,进而熔断该节点微服务的调用,快速返回"错误"的响应信息。当检测到该节点微服务调用响应正常后恢复调用链路。在SpringCloud框架里熔断机制通过Hystrix实现。Hystrix会监控微服务间调用的状况,当失败的调用到一定阈值,缺省是5秒内20次调用失败就会启动熔断机制。熔断机制的注解是@HystrixCommand。 @HystrixCommand报异常后如何处理?

Springcloud总结

爷,独闯天下 提交于 2020-01-15 09:19:49
1.引入组件的启动器 2.覆盖默认配置 3.在引导类上添加注解,开发相关组件 Map<serviceId, Map<服务实例名,实例对象(instance)>> 1.架构的演变 传统架构-->水平拆分-->垂直拆分(最早的分布式)-->soa(dubbo)-->微服务(springCloud) 2.远程调用技术:rpc http rpc协议:自定义数据格式,限定技术,传输速度快,效率高 tcp,dubbo http协议:统一的数据格式,不限定技术 rest接口 tcp协议 springCloud 3.什么是springCloud 微服务架构的解决方案,是很多组件的集合 eureka:注册中心,服务的注册与发现 zull:网关协议,路由请求,过滤器(ribbon hystrix) ribbon:负载均衡组件 hystrix:熔断组件 feign:远程调用组件(ribbon hystrix) *4.eureka 注册中心:eureka(1.引入启动器, 2.配置spring.application.name=eureka 3.在引导类上@EnableEurekaServer) 客户端:service-provider service-consumer (1.引入启动器 2.配置spring.application.name eureka.client.service-url

【汇智学堂】微服务-SpringCloud(Eureka+Ribbon)之一

自闭症网瘾萝莉.ら 提交于 2020-01-15 04:31:01
New Project: delete src; New Module: dependencies,as this: application.yml: server : port : 8761 eureka : instance : hostname : localhost client : register - with - eureka : false fetch - registry : false service - url : defaultZone : http : / / $ { eureka . instance . hostname } : $ { server . port } / eureka server : enable - self - preservation : false DemoserverApplication: package com . huizhi . demoserver ; import org . springframework . boot . SpringApplication ; import org . springframework . boot . autoconfigure . SpringBootApplication ; import org . springframework . cloud . netflix

Eureka服务注册方

假装没事ソ 提交于 2020-01-15 00:54:08
服务提供者要向EurekaServer注册服务,并且完成服务续约等工作。 服务注册 服务提供者在启动时,会检测配置属性中的: eureka.client.register-with-erueka=true 参数是否正确,事实上 默认就是true。如果值确实为true,则会向EurekaServer发起一个Rest请求,并携带自己的元数据信息,Eureka Server会把这些信息保存到一个双层Map结构中。 第一层Map的Key就是服务id,一般是配置中的 spring.application.name 属性 第二层Map的key是服务的实例id。一般host+ serviceId + port,例如: localhost:user-service:8081 值则是服务的实例对象,也就是说一个服务,可以同时启动多个不同实例,形成集群。 默认注册时使用的是主机名或者localhost,如果想用ip进行注册,可以在 user-service 中添加配置如下: eureka : instance : ip - address : 127.0 .0 .1 # ip地址 prefer - ip - address : true # 更倾向于使用ip,而不是host名 修改完后先后重启 user-service 和 consumer-demo ;在调用服务的时候就已经变成ip地址;需要注意的是

Spring Cloud(一):服务注册中心Eureka

天涯浪子 提交于 2020-01-14 11:26:29
Spring Cloud 基于 Netflix 的几个开源项目进行了封装,提供包括服务注册与发现(Eureka),智能路由(Zuul),熔断器(Hystrix),客户端负载均衡(Ribbon)等在内的核心组件。 在微服务系统中,服务少则十几、几十个,多则上百、几百个(据悉 Netflix 的云平台上运行了500多个微服务),这些微服务通过相互调用来为用户提供功能。那么一个服务调用另一个服务是如何进行的,如何定位到另一个服务的地址?代码中写死,还是配置文件中配置?显然对于服务数量较多的系统,这两种方式先不说后续维护,光写起来就很痛苦。于是,对于微服务架构来说,服务的自动注册与发现就成为非常核心的功能,Eureka就是来负责实现这个功能的。 本系列文章与示例均基于最新的Spring Cloud Hoxton版编写。 Eureka Eureka是一个基于REST的服务,包括Eureka Server与Eureka Client两个端。Eureka Server作为服务注册中心接受Eureka Client的注册及获取其它服务的地址信息。基本架构如下图所示: 其中 Eureka Server: 作为服务注册中心,提供服务注册与发现功能接口 Service Provider: 服务提供者,将自身服务注册到服务注册中心,供其它服务消费者发现与调用 Service Consumer: 服务消费者

SpringCloud入门

旧街凉风 提交于 2020-01-14 04:44:50
Springcloud简介 Spring Cloud是一系列框架的有序集合,基于SpringBoot提供了一套微服务解决方案,包括服务注册与发现,配置中心,全链路监控,服务网关,负载均衡,熔断器等组件,除了基于NetFlix的开源组件做高度抽象封装以外,还有一些选型中立的开源组件。 SpringCloud利用SpringBoot的开发便利性巧妙地简化了分布式系统基础设施的开发, SpringCloud为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现,断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等它们都可以用SpringBoot的开发风格做到一键启动和部署。 SpringBoot并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过 SpringBoot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系约开发工具包。 简单来说 SpringCloud就是微服务一条龙解决方案。和SpringBoot一个套路的东西。两个加起来就是让你写代码更简单。屏蔽了复杂的实现。 分布式应用 随着互联网 应用的普及,在大数据、高并发的环境下,我们的系统架构需要面对更为严苛的挑战, 我们需要一套新的架构,它起码能满足以下要求: 高性能:这是应用程序的基本要求。 独立性

Eureka 源码编译 部署

不羁岁月 提交于 2020-01-14 00:07:26
Netflix开源的Eureka 是使用Gradle 构建的,所以我们也使用Gradle来编译它 所需环境 Eclipse , Gradle , Tomcat ,git 这些插件如果己经安装可直接跳过到Eureka 服务器的步骤 Eclispe 下载官网 https://www.eclipse.org/ 下载下来安装即可,过程省略 本人使用的是:Version: Neon Release (4.6.0) 版本 Gradle 1、下载Gradle https://services.gradle.org/distributions/gradle-2.14-all.zip 2、添加环境变量GRADLE_HOME,添加值为 C:\gradle-2.9-bin\gradle-2.9;(注意根据自己的实际安装路径修改) 3、PATH环境变量中添加%GRADLE_HOME%/bin; 4、验证,命令行中输入gradle -v,查看是否配置正确,正确会输出gradle的版本信息; Gradle eclipse 插件: 1.eclipse中依次打开“Help”–》“Eclipse Marketplace”,在搜索栏中输入“buildship”进行搜索; 2.点击install,等待安装完成,按照提示重启eclipse即可。 3.安装成功后,可以在Window–>Show View–>Others

SpringCloud Zuul 应用

荒凉一梦 提交于 2020-01-13 21:41:40
一:创建 eureka-zuul-client 服务 1.1 在主Maven工程中创建一个新的 Module 工程,命名为eureka-zuul-client。采用Spring Initializr 的方式的方式创建。 1.2 eureka-zuul-client 的 pom.xml 的内容如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.springcloud</groupId> <artifactId>springcloud-hx</artifactId> <version>1.0-SNAPSHOT</version> <relativePath/> <!-- lookup parent from repository -->

为什么使用springCloud

跟風遠走 提交于 2020-01-13 10:18:39
随着互联网的兴起,也就是16年前后,服务架构开始从单一的系统向微服务架构转变,当时我们公司也开始技术整型,准备进入微服务的热潮,那一年兴起的还有就是现金分期和房价。 当时我还在架构组,我们架构师负责搭建公司的微服务环境,4月份进入公司就开始研究Devops,想使用http请求来实现对svn和jenkins联合工作实现自动打包和发布部署应用的功能带界面的管理系统。那时候流行的微服务框架是阿里的dubbo。我知道我们组当时刚刚上线了一个配管和网关两个项目。后来我们的devops死了,我还是接手配管,配管没有什么实质性工作,是在一个开源项目上改改后上线的,我也只是做了一些功能上优化的功能,例如加了一个接入系统心跳监控的功能。在运维配管工作的同时,我又开始接手去做了一个dubbo的邮件服务和一个唯一id生成的dubbo服务。说下这个唯一id生成服务是干什么用的,他是为了我同事的一个dubbo埋点功能做的服务,为什么要做dubbo埋点,是因为我们要做监控系统,这个监控系统要监控所有的dubbo服务,那么我们就要收集dubbo服务的调用日志,获得dubbo服务的调用链。 现在我们来整理下我刚才说的,总的来说,我上面说的我的这些工作都是为了实现使用dubbo框架来构建微服务来搭建环境,我们要用到的系统用: 1、配管系统,应对多服务集中管理配置的需求。 2、监控系统,监控微服务的健康状况,很简单