eureka

SpringCloud基础教程(五)-配置中心热生效和高可用

此生再无相见时 提交于 2020-02-28 08:58:46
 我的博客: 程序员笑笑生 ,欢迎浏览博客!  上一章 SpringCloud基础教程(四)-配置中心入门 当中,我们在对Eureka的有了基本的基础认识之上,深入的了解Eureka高可用集群和其他的生产环境中用到的一些配置。本章将开始了解分布式环境下的配置中心。 前言  在实际的项目运行中,我们会根据实际需求修改配置内容,那么有没有一种方式,能够在不启动服务组件的情况向让配置文件动态的生效呢,Spring Cloud Conifg中提供了一种方式了。当然我们还需要考虑一旦配置服务宕机的话,那么配置客户端是无法获取到配置信息的,所以针对配置服务,我们也希望能提供高可用的服务。 一、配置热生效  首先我们在客户端(每个开发的微服务)的控制器上添加 @RefreshScope 注解,并在客户端(项目的pom.xml中引入actuator依赖(actuator中包含了/actuator/refresh的api): @RefreshScope @RestController public class ValueController { @Value("${k1}") String value; @GetMapping("/get") public String getValue(){ return value; } } 亲自测试,如果将@RefreshScope注解添加在启动类上

eureka springboot-admin 配置登录密码认证

☆樱花仙子☆ 提交于 2020-02-28 04:18:20
1. pom.xml 加入依赖 <!-- 加入密码认证 --> < dependency > < groupId > org.springframework.boot </ groupId > < artifactId > spring-boot-starter-security </ artifactId > </ dependency > 2. application.properties 配置如下 用户名和密码 #开启安全认证 用户名和密码 spring.security.basic.enabled = true spring.security.user.name =admin spring.security.user.password =root 3. 加入配置类 WebSecurityConfig.java package org.fh.config; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security

ZhaoWei-2020-01-26

旧时模样 提交于 2020-02-28 02:23:32
spring cloud Ribbon Ribbon(负载均衡): Ribbon是Netflix发布的负载均衡器,它有助于控制HTTP和TCP客户端的行为。为Ribbon,配置服务提供者的地址列表后,Ribbon就可基于某种负载均衡算法,自动地帮助服务消费者去请求。Ribbon默认为我们提供了很多的负载均衡算法,例如轮询、随机等。当然,我们也可为Ribbon实现自定义的负载均衡算法。在SpringCloud中,当Ribbon与Eureka配合使用时,Ribbon可自动从EurekaServer获取服务提供者的地址列表,并基于负载均衡算法,请求其中一个服务提供者的实例(为了服务的可靠性,一个微服务可能部署多个实例) Hystrix Hystrix(熔断器): 当服务提供者响应非常缓慢,那么消费者对提供者的请求就会被强制等待,直到提供者响应或超时。在高负载场景下,如果不做任何处理,此类问题可能会导致服务消费者的资源耗竭甚至整个系统的崩溃(雪崩效应)。Hystrix正是为了防止此类问题发生。Hystrix是由Netflix开源的一个延迟和容错库,用于隔离访问远程系统、服务或者第三方库,防止级联失败,从而提升系统的可用性与容错性。Hystrix主要通过以下几点实现延迟和容错。 包裹请求:使用HystrixCommand(或HystrixObservableCommand

Spring Cloud Eureka 使用外网IP和端口号进行服务注册

我们两清 提交于 2020-02-27 20:41:22
服务端配置: eureka : instance : ip-address : 111.*.*.* # 决定 Eureka 服务显示 host hostname : ${ eureka.instance.ip-address } # 决定服务跳转 host ,必须指定 prefer-ip-address : true non-secure-port : ${ server.port } instance-id : ${ eureka.instance.ip-address }:${ server.port } client : service-url : defaultZone : http://111.*.*.* :8761/eureka/ register-with-eureka : true 来源: oschina 链接: https://my.oschina.net/xyzuncle/blog/3166422

Zookeeper和Eureka的区别

泪湿孤枕 提交于 2020-02-27 20:36:08
一、了解Eureka Eureka是Netflix出品的用于实现服务注册和发现的工具。SpringCloud集成了Eureka,并提供了开箱即用的支持。 1.基本原理 服务启动后向Eureka注册,Eureka Server会将注册信息向其他Eureka Server进行同步,当服务消费者调用服务提供者,则向服务注册中心获取服务提供者地址,然后会将服务提供者地址缓存到本地,下次再调用的时候,直接从本地缓存中读取,完成一次调用。 当服务注册中心Eureka Server监测到服务器提供者因为宕机,网络原因等不可用时,则再服务注册中心将服务置为DOWN状态,并把当前服务提供者状态向订阅者发布,订阅过的服务消费者更新本地缓存。 服务提供者在启动后,周期性(默认30秒)向Eureka Server发送心跳,以证明当前服务时可用状态。Eureka Server在一定时间(默认90秒)未收到客户端的心跳,则认为服务宕机,注销该实例。 2.Eureka的自我保护机制 在默认的配置中,Eureka Server在默认90秒没有得到客户端的心跳,则注销该实例,但是往往因为微服务跨进程调用,网络通信往往会面临着各种问题,比如微服务状态正常,但是因为网络分区故障,Eureka Server注销服务实例,则会让大部分微服务不可用,这很危险,因为微服务本身是没有问题的。 为了解决这一问题

Spring Cloud Sleuth服务链路追踪

二次信任 提交于 2020-02-27 20:28:05
Zipkin服务追踪原理 创造一些追踪标识符(tracingId,spanId,parentId),最终将一个request的流程树构建出来,各业务系统在彼此调用时,将特定的跟踪消息传递至zipkin,zipkin在收集到跟踪信息后将其聚合处理、存储、展示等,用户可通过web UI方便获得网络延迟、调用链路、系统依赖等等。 transport作用:收集被trace的services的spans,并将它们转化为zipkin common Span,之后把这些Spans传递的存储层 collector会对一个到来的被trace的数据(span)进行验证、存储并设置索引(Cassandra/ES-search/Memory) Zipkin基本概念&核心数据结构 Annotation(用途:用于定位一个request的开始和结束,cs/sr/ss/cr含有额外的信息,比如说时间点): cs:Client Start,表示客户端发起请求一个span的开始 sr:Server Receive,表示服务端收到请求 ss:Server Send,表示服务端完成处理,并将结果发送给客户端 cr:Client Received,表示客户端获取到服务端返回信息一个span的结束,当这个annotation被记录了,这个RPC也被认为完成。客户端调用时间=cr-cs,服务端处理时间=sr-ss。 Span

SpringCloud--Eureka

前提是你 提交于 2020-02-27 20:25:28
Eureka Eureka是 Netflix 的一个子模块,也是核心模块之一。Eureka是一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移。服务注册与发现对于微服务架构来说是非常重要的,有了 服务发现与注册 ,只需要使用服务的标识符,就可以访问到服务,而不需要修改服务调用的配置文件了。功能类似于dubbo的注册中心比如Zookeeper,Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务注册和发现。 Eureka 采用了 C-S 的设计架构。Eureka Server 作为服务注册功能的服务器,它是服务注册中心,使用 Eureka 的Client连接到 Eureka Server并维持心跳连接。这样系统的维护人员就可以通过 Eureka Server 来监控系统中各个微服务是否正常运行。SpringCloud 的一些其他模块(比如Zuul)就可以通过 Eureka Server 来发现系统中的其他微服务,并执行相关的逻辑,如下图所示: 集成Eureka服务 1 配置 Eureka服务端, application.yml配置 server: port: 7001 eureka: instance: hostname: localhost #eureka服务端的实例名称 client: register-with

SpringCloud入门(三) ------搭建Eureka服务

半腔热情 提交于 2020-02-27 19:42:30
Eureka是什么 Eureka是 Netflix 的一个子模块,也是核心模块之一。Eureka是一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移。 服务注册与发现对于微服务架构来说是非常重要的,有了服务发现与注册,只需要使用服务的标识符,就可以访问到服务,而不需要修改服务调用的配置文件了。功能类似于dubbo的注册中心,比如Zookeeper。 Eureka原理: Eureka Server: 提供服务注册和发现。 Service Provider: 服务提供方将自身服务注册到Eureka,从而使服务消费方能够找到。 Service Consumer: 服务消费方从Eureka获取注册服务列表,从而能够消费服务。 相当于一个人去饭店吃饭,厨师就是服务的提供方,告诉饭店都能做什么菜(注册服务),然后饭店给吃饭的人一个菜单(注册列表),吃饭的人点菜,让厨师去做(调用,消费服务) 搭建一个Eureka工程 首先穿件一个 maven聚合项目 ,我这个工程继续使用上篇博客的 父pom: < dependencyManagement > < dependencies > < dependency > < groupId > org . springframework . cloud < / groupId > < artifactId > spring - cloud

Spring Cloud(八):使用Spring Cloud Bus来实现配置动态更新

青春壹個敷衍的年華 提交于 2020-02-27 15:01:45
使用Spring Cloud Config我们能实现服务配置的集中化管理,在服务启动时从Config Server获取需要的配置属性。但如果在服务运行过程中,我们需要将某个配置属性进行修改,比如将验证码的失效时间从五分钟调整为十分钟,如何将这个更新在服务端不重启服务就能动态生效,是本文讨论的内容。 Spring Cloud Bus Spring Cloud Bus可以理解为Spring Cloud体系架构中的消息总线,通过一个轻量级的Message Broker来将分布式系统中的节点连接起来。可用来实现广播状态更新(如配置更新),或其它管理指令。 Spring Cloud Bus 就像是一个分布式的Spring Boot Actuator, 目前提供了两种类型的消息队列中间件支持:RabbitMQ与Kafka(对应的pom依赖分别为spring-cloud-starter-bus-amqp, spring-cloud-starter-bus-kafka)。 Spring Cloud 在spring-cloud-context中添加了两个actuator管理接口(POST请求): /actuator/env 与 /actuator/refresh , 前者可用于更新当前服务实例Environment对象中的配置属性,后者可用于刷新当前服务实例的配置信息。 Spring Cloud

Springcloud 配置Eureka Server 服务端

蓝咒 提交于 2020-02-27 12:34:31
Eureka作为服务注册与发现的组件,Eureka2.0已经闭源了,但是本教程还是以Eureka为核心进行展开。 1、三个模块 Spring Cloud Eureka是Spring Cloud Netflix微服务套件之一,基于Netflix Eureka做了二次封装,主要负责完成微服务架构中的服务治理功能。 eueka的3个重要模块,eureka-server,service-provider,service-consumer eureka-server:服务端,提供服务注册和发现; eureka-client-service-provider:服务端,服务提供者,通过http rest告知服务端注册,更新,取消服务; eureka-client-service-consumer:客户端,服务消费者,通过http rest从服务端获取需要服务的地址列表,然后配合一些负载均衡策略(ribbon)来调用服务端服务。 2、eureka-server Eureka Server 的服务注册数据存储层是双层的 ConcurrentHashMap(线程安全高效的 Map 集合)。 第一层的key=spring.application.name 也就是客户端实例注册的应用名;value 为嵌套的 ConcurrentHashMap。 第二层的key=instanceId 也就是服务的唯一实例