eureka服务发现

[Java复习] Spring Cloud - Netflix

白昼怎懂夜的黑 提交于 2019-12-02 08:50:53
Spring Cloud Netflix常用组件 服务注册与发现:Eureka 服务负载均衡: Ribbon 服务声明式客户端: Feign 服务熔断:Hystrix 服务网关 : Zuul Eureka: Eureka分客户端client和服务端server。各微服务为client,将自己的信息注册到server。 微服务启动后(默认每隔30秒),client做2件事:1. 拉取最新注册服务信息。2. 向server发送心跳,告诉server自己没有挂。 如果server在一定时间(默认90秒)内没有收到某个微服务节点的心跳,server将会注销该微服务节点。 每个Eureka Server同时也是Eureka Client,多个Eureka Server之间通过复制的方式完成服务注册表的同步。 server存储客户端端口号,IP地址等。 Q:作为服务中心Eureka比ZooKeeper好在哪里? 参考《阿里巴巴为什么不用 ZooKeeper 做服务发现?》 在分布式的CAP理论中,ZK保证CP, Eureka保证AP。向服务中心查询服务时,可以容忍返回的时几分钟之前的注册信息,但不能接收服务挂掉不可用。 ZK多机房会出现网络孤岛,导致本机房的服务B不能新部署,重启,扩容或缩容。本机房的服务A则不能调用服务B。破坏服务之间本身的可连通性,违反注册中心的原则!

【Spring Cloud】全家桶介绍(一)

蓝咒 提交于 2019-12-02 07:52:58
摘自: https://www.cnblogs.com/iUtopia/p/11492072.html 【Spring Cloud】全家桶介绍(一) 一、微服务架构 # 1、微服务架构简介 #   1.1、分布式:不同的功能模块部署在不同的服务器上,减轻网站高并发带来的压力。   1.2、集群:多台服务器上部署相同应用构成一个集群,通过负载均衡共同向外提供服务。   1.3、微服务:微服务架构模式就是将web应用拆分为一系列小的服务模块,这些模块可以独立地编译、部署,并通过各自暴露的API接口通讯,共同组成一个web应用。   1.4、SpringCloud是基于SpringBoot的一整套微服务框架,提供了一系列可配置的组件,如 配置管理 、 服务发现 、 负载均衡 、 熔断器 、 断路器 、 智能路由 、 微代理 、 控制总线 、 全局锁 、 决策竞选 、 分布式会话 和 集群状态管理 等。 2、微服务的特点 # 单一职责:每一个服务模块都对应单一的业务实现 微:服务拆分的颗粒度很小 面向服务:每个服务对外仅暴露服务接口API即可,不关心服务的技术实现,与技术、语言和平台无关 自治:服务间互相独立、互不干扰 团队独立 技术独立:提供Rest接口,面向服务即可 前后端分离 数据库分离:每个服务使用自己的数据源 部署独立:每个服务都是独立的组件,可复用,可替换,降低服务间的耦合 3

SpringCloud之Nacos服务发现(十五)

限于喜欢 提交于 2019-12-02 07:08:49
一 Nacos简介 Nacos是以服务为主要服务对象的中间件,Nacos支持所有主流的服务发现、配置和管理。 Nacos主要提供以下四大功能: 服务发现与服务健康检查 Nacos使服务更容易注册自己并通过DNS或HTTP接口发现其他服务。Nacos还提供服务的实时健康检查,以防止向不健康的主机或服务实例发送请求。 动态配置管理 动态配置服务允许您在所有环境中以集中和动态的方式管理所有服务的配置。Nacos消除了在更新配置时重新部署应用程序和服务的需要,这使配置更改更加高效和灵活。 动态DNS服务 Nacos支持加权路由,使您可以更轻松地在数据中心的生产环境中实施中间层负载平衡,灵活的路由策略,流量控制和简单的DNS解析服务。它可以帮助您轻松实现基于DNS的服务发现,并防止应用程序耦合到特定于供应商的服务发现API。 服务和元数据管理 Nacos提供易于使用的服务仪表板,可帮助您管理服务元数据,配置,kubernetes DNS,服务运行状况和指标统计。 1.1 Nacos总体概况 1.2 Nacos架构 image.png 二、注册中心与配置中心横向对比 2.1 Nacos与eureka注册中心对比 对比项目\注册中心 Spring Cloud Nacos Spring Cloud Eureka CAP模型 支持AP和CP模型 AP模型 客户端更新服务信息 使用注册+DNS-f

SpringCloud的基础知识

非 Y 不嫁゛ 提交于 2019-12-02 06:47:44
二、集群/分布式/微服务/SOA是什么? 像我这种技术小白,看到这些词( 集群/分布式/微服务/SOA )的时候,感觉就是遥不可及的(高大尚的技术!!)。就好像刚学Java面向对象的时候,在论坛上翻阅资料的时候,无意看到"面向切面编程",也认为这是遥不可及的(高大尚的技术!!)。 但真正接触到"面向切面编程"的时候,发现原来就是如此啊,也没什么大不了的。只不过当时被它的名字给唬住了… 不知道各位在刚接触这些名字 集群/分布式/微服务/SOA 的时候,有没有被唬住了呢?? 下面我就简单说说这些名词的意思 2.1什么是集群 以下内容来源维基百科: 计算机集群简称集群是一种计算机系统,它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作。在某种意义上,他们可以被看作是一台计算机。集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式。集群计算机通常用来改进单个计算机的计算速度和/或可靠性。一般情况下集群计算机比单个计算机,比如工作站或超级计算机性能价格比要高得多 集群技术特点: 通过 多台计算机 完成同一个工作,达到更高的效率。 两机或多机内容、工作过程等完全一样 。如果一台死机,另一台可以起作用。 在维基百科上说得也挺明白的了,我来举个 例子 吧。 小周在公司写Java程序,但公司业务在发展,一个Java开发者可能 忙不过来

Spring Cloud 如何搭建eureka

扶醉桌前 提交于 2019-12-02 06:40:09
eureka 是 Spring Cloud 的注册中心,提供服务注册和服务发现的功能。 利用idea 快速创建一个eureka应用 File - NewProject-Spring Initalizr 利用 https://start.spring.io 创建spring cloud eureka应用 填写应用的maven等信息,下一步 选择 Eureka Server,我们的构建基于Spring Boot 2.2.0-RELEASE版本 选择路径后完成创建工程 2.可以看到构建工程的过程中,pom文件中,已经把我门需要的 eureka server 的包引入到了工程 3.添加配置(习惯使用yml,可以把application.properties 改成 application.yml) 4.启动类添加注解 @EnableEurekaServer 5.添加配置 6 启动 7.启动多个eureka实例的配置 只需要把 service-url 中的url设置未多个,中间用逗号隔开 来源: https://www.cnblogs.com/haloujava/p/11734929.html

【Spring Cloud】服务注册与发现组件——Eureka(二)

ぐ巨炮叔叔 提交于 2019-12-02 06:27:27
一、Eureka原理 1、架构图 首先来看eureka的官方结构图   所有应用作为Eureka Client和Eureka Server交互,服务提供者启动时向Eureka Server注册自己的IP、端口、提供服务等信息,并定时续约更新自己的状态。   服务消费者通过Eureka Server发现得到所需服务的提供者地址信息,然后向服务提供者发起远程调用。   为了保证Eureka注册中心的高可用,可以集群部署,其中一个节点信息又更新时通知其他Server节点,不同节点的Eureka通过Replicate进行数据同步。 2、基本原理 在Eureka响应的过程中,有三个角色,分别是Eureka、服务提供者、服务消费者; 在服务启动后,服务提供者向Eureka注册自己的信息,如调用地址、提供服务信息等 Eureka为服务注册中心,向外暴露自己的地址,负责管理、记录服务提供者的信息,同时将符合要求的服务提供者地址列表返回服务消费者 服务消费者向Eureka订阅服务,表达自己的需求,然后得到服务提供者消息,远程调用即可 Eureka包含两个组件:Eureka Server和Eureka Client,作用如下: Eureka Client是一个Java客户端,主要用来简化和Eureka Server的交互 Eureka Server提供服务发现的能力,各个微服务启动时,通过Eureka

Eureka服务注册于发现之Client搭建

帅比萌擦擦* 提交于 2019-12-02 04:58:11
Eureka在Server端的搭建已经有很多介绍的文章,同时也是学习Eureka的第一步。 搭建好注册中心后怎么进行服务注册和服务调用,是我们要讲的主要内容。 开发环境:IDEA2018.3+SpringBoot2.1.7Release+Eureka2.1.3+SpringCloud Greenwich.SR3 第一步: Pom引入Eureka包     <!--eureka--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> 同时需要引入 spring-cloud-dependencies,来管理SpringCloud全家桶组件 <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope

eureka和zookeeper

佐手、 提交于 2019-12-01 20:20:46
在分布式系统领域有个著名的CAP定理(C-数据一致性;A-服务可用性;P-服务对网络分区故障的容错性,这三个特性在任何分布式系统中不能同时满足,最多同时满足两个) eureka :   cap :实现了AP   服务注册 :客户端和服务端在eureka中注册,采用心跳机制,在出现网络故障时,大批量注册的服务,会被检测到不可用,此时eureka注册的服务节点会处于“自我保护模式”,同时eureka会保存这些节点的注册信息,当网络恢复后,服务节点会退出“自我保护模式”,Eureka的哲学是,同时保留”好数据“与”坏数据“总比丢掉任何”好数据“要更好,所以这种模式在实践中非常有效。   客户端缓存 :当eureka所有节点都不能正常使用时,客户端也可以通过缓存的服务注册信息,消费者服务仍然可以通过Eureka客户端查询与获取注册服务信息。   架构设计 :Eureka就是为发现服务所设计的,它有独立的客户端程序库,同时提供心跳服务、服务健康监测、自动发布服务与自动刷新缓存的功能。但是,如果使用ZooKeeper你必须自己来实现这些功能,Eureka提供了一个web-based的图形化的运维界面,在这个界面中可以查看Eureka所管理的注册服务的运行状态信息:是否健康,运行日志等。Eureka甚至提供了Restful-API接口,方便第三方程序集成Eureka的功能。 zookeeper

spring+eureka+zuul

二次信任 提交于 2019-12-01 16:46:24
最近在看一个关于spring+eureka+zuul的教学视频,终于明白了eureka是用于提供服务注册和发现的service,通过eureka各个service可以知道其他service,这样就隔离了各个microservice,而zuul提供的是api gateway的功能,包括routing/loading balance/熔断/权限管理/日志等,简单的loading balance对于大多数应用场景都够了。 很感慨,在java下有这么多可以学可以用的,开眼界确实很重要啊。 来源: https://www.cnblogs.com/mryux/p/11693918.html

spring cloud 之Eureka

独自空忆成欢 提交于 2019-12-01 16:05:05
Region 表示aws的地理位置,一个region有多个awailability zone,各region间完全隔离。这种方式实现最大的容错和稳定性。 spring cloud 默认使用的region是us-east-1c,非aws下awailability zone理解成机房,region理解成跨机房的eureka集群。 Eureka client 周期性向eureka server发送心跳,默认30s Eureka server 默认90没有收到微服务心心跳就注销 多个eureka server之间通过复制实现服务注册表中数据同步 Eureka client会缓存服务注册表,从而降低eureka server的压力,另外当eureka server宕掉也可以从缓存中找到服务提供者。 Eureka Server的自我保护机制 https://mp.weixin.qq.com/s/vwPstQ0R0s_PsEhZnALP9Q Eureka 缓存机制 http://blog.itpub.net/69918724/viewspace-2643265/ Eureka 常用配置 https://zhuanlan.zhihu.com/p/63524849 Eureka Server 相关配置 eureka.server.xxx eureka.server.enable-self