现来说一些Eureka的概念:

1、服务注册 Register

就是Client向Server注册的时候提供自身元数据,比如IP和Port等信息。

2、服务续约 Renew

Client默认每隔30s发送一次心跳来服务续约,如果90s没有收到Client的心跳包,Server会将Client从注册列表中移除。

3、获取服务注册信息 Fetch Register

Eureka Client会从Eureka Server获取服务注册表信息,并将其缓存在本地。默认每30s更新一次。

4、下线 Cancel

Eureka Client在程序关闭的时候可以向Eureka Server发送下线请求立即移除注册表信息,需要手动调用代码:

5、LoadBalancer缓存

Ribbon在客户端维护了缓存定时刷新,避免每个请求都从Server获取注册信息,所以新注册的Provider可能会出现延迟。

DiscoveryManager.getInstance().shutdownComponent();

搭建Eureka Server

配置文件:

server:
port: 9001
eureka:
instance:
hostname: localhost
prefer-ip-address: true
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://localhost:9001/eureka/

启动类加注解@EnableEurekaServer:

@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication { public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}

访问:http://localhost:9001/

Eureka服务注册

配置文件:

server:
port: 9006
spring:
application:
name: hi-service
eureka:
client:
service-url:
defaultZone: http://localhost:9001/eureka/

启动类加注解@EnableEurekaClient:

@SpringBootApplication
@EnableEurekaClient
public class DemoApplication { public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}

Eureka服务发现

配置文件:

server:
port: 9008
spring:
application:
name: eureka-consumer
eureka:
client:
service-url:
defaultZone: http://localhost:9001/eureka/

启动类加注解@EnableEurekaClient:

@SpringBootApplication
@EnableEurekaClient
public class DemoApplication { public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}

Service层访问:

@Service
public class RibbonService {
@Autowired
RestTemplate restTemplate; public String hi() {
return restTemplate.getForObject("http://hi-service/hi", String.class);
}
}

可以看到,url已经使用application name去代替了ip+port的信息去请求服务。如果Eureka Service provider在配置文件中没有配置serviceId,则默认为配置文件中的服务名,也就是${spring.application.name}。

创建Eureka Server服务集群

多profile格式配置文件application.yml

spring:
application:
name: discovery-cluster
---
spring:
profiles: discovery1
server:
port: 8761
eureka:
instance:
hostname: discovery1
client:
service-url:
default-zone: http://discovery2:8762/eureka ---
spring:
profiles: discovery2
server:
port: 8762
eureka:
instance:
hostname: discovery2
client:
service-url:
default-zone: http://discovery1:8761/eureka

配置文件是通过两个Eureka Server互相注册,这里有三段配置,第一段配置为公共配置,配置了应用名称,第二段为名discovery1的配置,第三段为discovery2的配置。在项目启动可以通过 
--spring.profiles.active={配置名称} 来启动不同的配置。

java -jar discovery-cluster-0.0.1-SNAPSHOT.jar --spring.profiles.active=discovery1 
java -jar discovery-cluster-0.0.1-SNAPSHOT.jar --spring.profiles.active=discovery2 

在client端,只需要把 eureka.client.serviceUrl.defaultZone 改成相应的集群地址即可,多个服务用逗号分隔:

eureka
client
serviceUrl
defaultZone = http://discovery1:8761/eureka,http://discovery2:8761/eureka

微服务深入浅出(3)-- 服务的注册和发现Eureka的更多相关文章

  1. 小D课堂 - 新版本微服务springcloud+Docker教程_3-05 服务注册和发现Eureka Server搭建实战

    笔记 5.服务注册和发现Eureka Server搭建实战     简介:使用IDEA搭建Eureka服务中心Server端并启动,项目基本骨架介绍          官方文档:http://clou ...

  2. SpringCloud-微服务的注册与发现Eureka(二)

    一.SpringCloud简介 Spring Cloud是一系列框架的有序集合.它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册.配置中心.消息总线.负载均 ...

  3. Spring Cloud(二):服务注册与发现 Eureka【Finchley 版】

    Spring Cloud(二):服务注册与发现 Eureka[Finchley 版]  发表于 2018-04-15 |  更新于 2018-05-07 |  上一篇主要介绍了相关理论,这一篇开始我们 ...

  4. SpringCloud-微服务的注册与发现Eureka

    一.SpringCloud简介 Spring Cloud是一系列框架的有序集合.它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册.配置中心.消息总线.负载均 ...

  5. SpringCloud 教程 | 第一篇: 服务的注册与发现Eureka(转载)

    SpringCloud 教程 | 第一篇: 服务的注册与发现Eureka(Finchley版本) 转载请标明出处:http://blog.csdn.net/forezp/article/details ...

  6. spring cloud 学习之 服务注册和发现(Eureka)

    一:服务注册和发现(Eureka) 1:采用Eureka作为服务注册和发现组件 2:Eureka 项目中 主要在启动类加上 注解@EnableEurekaServer @SpringBootAppli ...

  7. 微服务注册与发现 —— eureka

    基础概念 在微服务系统中,服务的注册和发现是第一步,常用的有: Eureka:https://github.com/Netflix/eureka Zookeeper:https://zookeeper ...

  8. 微服务之服务注册与发现--Eureka(附代码)

    该贴为入门贴,看完可快速知道服务注册与发现是什么?怎么用?至于深入的内容不在此篇文章所述之内,请自行百度. 内容来自:https://blog.csdn.net/nanbiebao6522/artic ...

  9. spring cloud微服务快速教程之(二)服务注册与发现 eureka

    0.为什么需要eureka 当我们从当体系统拆分为多个独立服务项目之后,如果aaa.com/uer.aaa.com/order;:相互之间调用,如果只是一个服务一个实例,那还可以直接通过固定地址(如h ...

  10. springcloud~服务注册与发现Eureka的使用

    服务注册与发现是微服务里的概念,也是一个基本的组件,负责服务组件的认证,即实现『你是谁』的功能,在服务注册与发现里,存在两种模式,即服务端发现和客户端发现,咱们今天说的eureka属于客户端发现! 下 ...

随机推荐

  1. 【第十周】四则运算GUI

    下载地址:http://pan.baidu.com/s/1hsc9HRm 这次比上次多了一个记录的功能,是用QT里面的qplaintextedit记录显示出做过的题目. 我是直接看的文档,发现窗体,搜 ...

  2. git常用命令复习及其基本使用示例

    年后回来新上到项目,对于git的一些操作命令记得有点混乱了,所以特整理笔记如下: 一.git常用命令复习 查看当前分支:git branch (显示结果中带有*号的是当前分支)查看所有分支: git ...

  3. SQLSERVER 使用XP开头的系统默认存储过程

    1. 根据官网上面的内容进行执行命令 EXEC xp_cmdshell 'dir *.exe'; 但是会报错 消息 ,级别 ,状态 ,过程 xp_cmdshell,行 [批起始行 ] SQL Serv ...

  4. poj 3254(状态压缩DP)

    poj  3254(状态压缩DP) 题意:一个矩阵里有很多格子,每个格子有两种状态,可以放牧和不可以放牧,可以放牧用1表示,否则用0表示,在这块牧场放牛,要求两个相邻的方格不能同时放牛,即牛与牛不能相 ...

  5. SET ANSI_NULLS ON,SET NOCOUNT ON,SET QUOTED_IDENTIFIER ON

    SET ANSI_NULLS ONTransact-SQL 支持在与空值进行比较时,允许比较运算符返回 TRUE 或 FALSE. 通过设置 ANSI_NULLS OFF 可将此选项激活.当 ANSI ...

  6. 5W2H方法

    5W2H分析方法也叫七问分析法,是二战中美国陆军兵器修理部首创.简单.方便.易于理解.使用,富有启发意义,被广泛应用于企业管理和技术活动,对于决策和执行性的措施也非常有帮助,有助于弥补考虑问题的疏漏 ...

  7. 20135239 益西拉姆 linux内核分析 可执行程序的装载

    益西拉姆 + 原创作品请勿转载 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ” week 7 可 ...

  8. 洛谷 3379 最近公共祖先(LCA 倍增)

    洛谷 3379 最近公共祖先(LCA 倍增) 题意分析 裸的板子题,但是注意这题n上限50w,我用的边表,所以要开到100w才能过,一开始re了两发,发现这个问题了. 代码总览 #include &l ...

  9. bzoj 1823: [JSOI2010]满汉全席 && bzoj 2199 : [Usaco2011 Jan]奶牛议会 2-sat

    noip之前学的内容了,看到题竟然忘了怎么建图了,复习一下. 2-sat 大概是对于每个元素,它有0和1两种选择,必须选一个但不能同时选.这之间又有一些二元关系,比如x&y=1等等... 先把 ...

  10. MVC3控制器方法获取Form数据方法

    http://www.cnblogs.com/bianlan/archive/2013/01/12/2857310.html 控制器方法获取View页面传送的数据有多种方法,以Edit方法为例: 1. ...