spring cloud Eureka 1 (服务治理)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_28893679/article/details/78395353

目的:盖房子

1、概念介绍:
Eureka中涉及到以下几个概念:服务注册、服务发现、Eureka服务端、Eureka客户端。接下来咋们撸起袖子,用建房子来理解这些概念。

  • Eureka服务端:包工头
  • Eureka客户端:农名工
  • 服务注册:房子的主人招聘包工头
  • 服务发现:农名工向包工头报道

2、理解思想:
概念了解了,那么我们要怎么通过使用这些包工头和农名工来盖房子来理解eureka的思想呢?

  1. 搭建服务注册中心:招聘包工头
  2. 注册服务提供者:招聘农名工,然后让农名工向包工头报道
  3. 高可用注册中心:招聘了多个包工头,让他们相互配合合作
  4. 服务发现与消费:砌墙的时候,农名工A只负责砌墙,农名工B只负责搬砖,那么如果A需要B,就会找包工头,告诉他我需要B给我搬砖过来,那么B就会照做,这样就实现了服务之间的调用。

3、使用步骤:
1、服务注册中心配置示例如下(包工头):

# ==========配置完如下信息后,启动并访问http://localhost:1111/,可以看到eureka的信息面板
server.port=1111
eureka.instance.hostname=localhost
# 不向注册中心注册自己
eureka.client.register-with-eureka=false
# 表示不去检索服务
eureka.client.fetch-registry=false
# 设置服务的地址
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
# ==========配置完如下信息后,启动并访问http://localhost:1111/,可以看到eureka的信息面板

2、注册服务提供者示例如下(农民工):

# 表示eureka-client的name,这里取的名字不能有下划线,否则无法识别!
spring.application.name=wuyonghu-test-one
server.port=8081
# 该eureka客户端是要连接那个服务器端
eureka.client.service-url.defaultZone=http://localhost:1111/eureka/

4、源码分析:
将一个普通的Spring boot应用注册到eureka server或中eureka server中获取服务列表,主要做了如下两件事
- 在应用主类中配置了@EnableDiscoveryClient注解
- 在application.properties中使用eureka.client.serviceUrl.defaultZone参数指定服务注册中心的位置

分析:(一个服务只可以属于一个Region,而一个Region可以对应多个Zone)
1、首先会获取Region和Zone的信息,然后通过配置文件开始加载Eureka Server的具体地址。(农名工通过包工头的名字找到包工头)
2、客户端使用@EnableDiscoveryClient,而通过这个注解可以找到DiscoveryClient这个类,而这个类中调用了register的方法,在服务端进行了注册(农名工先证明自己是合法的,然后向包工头说了自己的名字,能干啥)
3、服务端和客户端会有两个定时任务,用来进行服务获取和服务续约。(包工头会定时问农名工,你还能不能继续干啊?你还想不想干啊?)

阅读更多

扫码向博主提问

雲恸

非学,无以致疑;非问,无以广识
去开通我的Chat快问
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页