eureka

Eureka初识以及搭建

穿精又带淫゛_ 提交于 2020-01-06 22:45:01
一、服务发现概述 1、服务发现由来 服务发现及注册中心(统一称为服务发现),是跟随软件开发的架构方式而逐步演变而来的 早期的单体架构 对于外部的依赖,通常是采取调用域名接口的形式,例如短信发送接口,就会通过appId和appKey去调用相应的域名,完成短信的发送。 SOA架构发展 单体架构被拆分成粒度较粗的服务化架构,此时内部的依赖就比较多,那么是如何进行服务间的调用呢?以http暴露服务的形式来说,将服务A部署在多台虚拟机上,服务B通过调用服务A的ip地址来进行调用:1、服务A的ip由服务B来维护,通过配置nginx的upstream将服务A的所有实例ip写进去,但这样也暴露了服务A一些实现的细节且A和B不能解耦;2、服务B通过调用服务A的内部域名,而服务A的所有实例ip由自己的nginx维护。 微服务时代 由于docker的崛起,导致服务A的ip并不是固定的,因此上面的做法就比较麻烦了,有两个方案:1、在部署的时候更新nginx的文件,使用ngx_http_dyups_module通过rest api去更新nginx的upstream而不需要reload;2、将服务注册中心作为一个标配组件,网关等组件通过服务注册中心获取实例的相关信息,实现动态路由。 2、Eureka简介 什么是Eureka呢 官网中给出的解释: Eureka is a REST

Spring Cloud微服务架构——Eureka注册中心

孤街醉人 提交于 2020-01-06 22:09:25
Spring Cloud简介 Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务注册发现、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键部署和启动。Spring Cloud并没有重复造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,总重给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。(摘录来源: Spring Cloud 百度百科 ) Eureka服务注册中心 在简单介绍Spring Cloud之后,我们先引入Eureka注册中心的概念,顾名思义,Eureka是一个注册服务的地方,但是怎么注册服务?注册以后给谁使用?如何使用Eureka中的服务?具体情况我们通过现实生活中一个的场景来理解。 假如今天是周六,我要跟女神一起去逛商场,我们都知道商场外面会有很多广告牌或者指引牌告诉大家商场有哪些入驻的商家或服务,比如一楼有肯德基,二楼海底捞,三楼优衣库等等。我们都知道,这些商家入驻商场肯定得交租金,交完租金才能入驻。在这里,我们可以把商场看成是Eureka注册中心,把商家看成是服务提供者,商家向商场交了租金,就入驻到了商场,这里就有一种注册的概念

【每日3分钟技术干货 | 面试题+答案 | SpringCloud篇(一)】

坚强是说给别人听的谎言 提交于 2020-01-06 21:52:54
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1. 什么是 spring cloud? spring cloud 是一系列框架的有序集合。它利用 spring boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 spring boot 的开发风格做到一键启动和部署。 2. spring cloud 断路器的作用是什么? 在分布式架构中,断路器模式的作用也是类似的,当某个服务单元发生故障(类似用电器发生短路)之后,通过断路器的故障监控(类似熔断保险丝),向调用方返回一个错误响应,而不是长时间的等待。这样就不会使得线程因调用故障服务被长时间占用不释放,避免了故障在分布式系统中的蔓延。 3. spring cloud 的核心组件有哪些? Eureka:服务注册于发现。 Feign:基于动态代理机制,根据注解和选择的机器,拼接请求 url 地址,发起请求。 Ribbon:实现负载均衡,从一个服务的多台机器中选择一台。 Hystrix:提供线程池,不同的服务走不同的线程池,实现了不同服务调用的隔离,避免了服务雪崩的问题。 Zuul:网关管理,由 Zuul 网关转发请求给对应的服务。 4.SpringCloud和Dubbo SpringCloud和Dubbo都是现在主流的微服务架构

springcloud服务已经关闭但是Eureka显示服务状态一直为UP

给你一囗甜甜゛ 提交于 2020-01-06 14:46:38
问题: 最近遇到一个很奇怪的问题,就是使用springcloud的时候,服务明明已经停止,但是在eureka中一直显示此服务状态为UP,这样就导致了请求再次过来的时候被分发到已经停止的服务上,其实这是不合理的,后来发现是配置文件的原因,稍加调整就好了。 解决办法: eureka服务端: eviction-interval-timer-in-ms: 3000 eureka server清理无效节点的时间间隔,默认60000毫秒,即60秒 enable-self-preservation: true 是否开启自我保护模式,默认为true eureka客户端: healthcheck.enable: true 开启健康检查 lease-renewal-interval-in-seconds: 3 eureka client发送心跳给server端的频率。如果在leaseExpirationDurationInSeconds后,server端没有收到client的心跳,则将摘除该instance lease-expiration-duration-in-seconds: 6 eureka server至上一次收到client的心跳之后,等待下一次心跳的超时时间,在这个时间内若没收到下一次心跳,则将移除该instance 配置完成后就可以了。 来源: https://www.cnblogs

跟我学SpringCloud | 第七篇:Spring Cloud Config 配置中心高可用和refresh

谁说胖子不能爱 提交于 2020-01-05 11:47:12
SpringCloud系列教程 | 第七篇:Spring Cloud Config 配置中心高可用和refresh Springboot: 2.1.6.RELEASE SpringCloud: Greenwich.SR1 如无特殊说明,本系列教程全采用以上版本 1. 引言 上一篇我们聊了Spring Cloud Config 配置中心,并且和Github做了集成,我们的Server端是单机版的,任何单机版的服务都只能使用与测试环境或者自己做Demo测试, 生产环境严禁使用单机服务 ,配置中心在整个微服务体系中都是及其重要的一个节点,尤其是在DevOps中自动扩容,如果配置中心宕机,那么所有的自动扩容都会失败。 所以这一篇我们聊聊配置中心的高可用,说到高可用,在springcloud体系中,是有注册中心的,那么,我们的配置中心也是一个服务,可不可以使用Eureka做服务的注册与发现呢? 答案是肯定的。 2. Serve端 我们将上一篇的Serve端Copy到新的目录中,增加Eureka-client的依赖,使得Config-Serve可以注册到Eureka上。 2.1 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=

Spring Cloud学习笔记【二】Eureka服务注册与发现

妖精的绣舞 提交于 2020-01-04 01:00:09
Spring Cloud学习笔记【二】Eureka服务注册与发现 一、Eureka简介 Spring Cloud Eureka 是 Spring Cloud Netflix 微服务套件的一部分,基于 Netflix Eureka 做了二次封装,主要负责完成微服务架构中的服务治理功能,服务治理可以说是微服务架构中最为核心和基础的模块,他主要用来实现各个微服务实例的自动化注册与发现。功能类似于dubbo的注册中心,比如 Zookeeper。 服务注册:在服务治理框架中,通常都会构建一个注册中心,每个服务单元向注册中心登记自己提供的服务,将主机与端口号、版本号、通信协议等一些附加信息告知注册中心,注册中心按照服务名分类组织服务清单,服务注册中心还需要以心跳的方式去监控清单中的服务是否可用,若不可用需要从服务清单中剔除,达到排除故障服务的效果。 服务发现:由于在服务治理框架下运行,服务间的调用不再通过指定具体的实例地址来实现,而是通过向服务名发起请求调用实现。 Spring Cloud Eureka 使用 Netflix Eureka 来实现服务注册与发现,即包括了服务端组件,也包含了客户端组件,并且服务端和客户端均采用 Java 编写,所以 Eureka 主要适用与通过 Java 实现的分布式系统,或是与 JVM 兼容语言构建的系统,但是,由于 Eureka

【一起学源码-微服务】Nexflix Eureka 源码十二:EurekaServer集群模式源码分析

白昼怎懂夜的黑 提交于 2020-01-03 06:29:12
前言 前情回顾 上一讲看了Eureka 注册中心的自我保护机制,以及里面提到的bug问题。 哈哈 转眼间都2020年了,这个系列的文章从12.17 一直写到现在,也是不容易哈,每天持续不断学习,输出博客,这一段时间确实收获很多。 今天在公司给组内成员分享了Eureka源码剖析,反响效果还可以,也算是感觉收获了点东西。后面还会继续feign、ribbon、hystrix的源码学习,依然文章连载的形式输出。 本讲目录 本讲主要是EurekaServer集群模式的数据同步讲解,主要目录如下。 目录如下: eureka server集群机制 注册、下线、续约的注册表同步机制 注册表同步三层队列机制详解 技术亮点: 3层队列机制实现注册表的批量同步需求 说明 原创不易,如若转载 请标明来源! 博客地址: 一枝花算不算浪漫 微信公众号:壹枝花算不算浪漫 源码分析 eureka server集群机制 Eureka Server会在注册、下线、续约的时候进行数据同步,将信息同步到其他Eureka Server节点。 可以想象到的是,这里肯定不会是实时同步的,往后继续看注册表的同步机制吧。 注册、下线、续约的注册表同步机制 我们以Eureka Client注册为例,看看Eureka Server是如何同步给其他节点的。 PeerAwareInstanceRegistryImpl.java :

Spring Cloud学习笔记【一】全家桶主要组件及简要介绍

*爱你&永不变心* 提交于 2020-01-02 18:31:19
Spring Cloud学习笔记【一】全家桶主要组件及简要介绍 SpringCloud ,进入官网地址,官网简单描述其全貌。 基于SpringBoot构建的SpringCloud是微服务架构的集大成者,将一系列优秀的组件进行了整合。 简单的一张图,进行组件的描述,如下: 1、Spring Cloud Eureka Eureka负责服务的注册和发现,如果学习过Zookeeper的话,就可以很好的理解,Eureka的角色和 Zookeeper的角色差不多,都是服务的注册和发现,构成Eureka体系的包括:服务注册中心、服务提供者、服务消费者。 1、两台Eureka服务注册中心构成的服务注册中心的主从复制集群; 2、然后服务提供者向注册中心进行注册、续约、下线服务等; 3、服务消费者向Eureka注册中心拉去服务列表并维护在本地; 4、然后服务消费者根据从Eureka服务注册中心获取的服务列表选取一个服务提供者进行消费服务。 2、Spring Cloud Ribbon Spring Cloud Eureka描述了服务如何进行注册,注册到哪里,服务消费者如何获取服务生产者的服务信息,但是Eureka只是维护了服务生产者、注册中心、服务消费者三者之间的关系,真正的服务消费者调用服务生产者提供的数据是通过Spring Cloud Ribbon来实现的。

SpringCloud教程 | 第十一篇: docker部署spring cloud项目

拥有回忆 提交于 2020-01-01 13:20:21
版权声明:本文为博主原创文章,欢迎转载,转载请注明作者、原文超链接 ,博主地址:http://blog.csdn.net/forezp。 http://blog.csdn.net/forezp/article/details/70198649 目录 (?) [+] 转载请标明出处: http://blog.csdn.net/forezp/article/details/70198649 本文出自 方志朋的博客 一、docker简介 Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。 Docker通常用于如下场景: web应用的自动化打包和发布; 自动化测试和持续集成、发布; 在服务型环境中部署和调整数据库或其他的后台应用; 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。 Docker 的优点 1、简化程序: Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是

SpringCloud-客户端的负载均衡Ribbon(三)

不打扰是莪最后的温柔 提交于 2020-01-01 02:19:34
前言:微服务架构,不可避免的存在单个微服务有多个实例,那么客户端如何将请求分摊到多个微服务的实例上呢?这里我们就需要使用负载均衡了 一、Ribbon简介   Ribbon是Netflix发布的负载均衡器,它有助于控制HTTP和TCP客户端的行为。为Ribbon配置服务提供者地址列表后,Ribbon就可基于某种负载均衡算法,自动地帮助服务消费者去请求。Ribbon默认为我们提供了很多的负载均衡算法,例如:轮询,随机等,也可自定义; Ribbon的GitHub: https://github.com/Netflix/ribbon   而在SpringCloud中使用Ribbon和Eureka时,Ribbon会自动从EurekaServer中获取服务提供者地址列表,并基于负载均衡算法。 二、Ribbon实战 ​1、创建EurekaServer,EurekaClient1,EurekaClient2,之前已经说过了 Eureka的使用 ,这里直接上代码: EurekaServer: @SpringBootApplication @EnableEurekaServer public class ServerApplication { public static void main(String[] args) { SpringApplication.run(ServerApplication