SpringCloud系列------Eureka-Server

一、概述:

Spring Cloud针对服务注册与发现,进行了一层抽象,并提供了三种实现:Eureka , Consul , Zookeeper 本篇文章只对Eureka 进行介绍:

(部分内容引用  https://blog.csdn.net/hry2015/article/details/78220673,其博主有一系列的相关SpringCloud的整理)

Eureka:Netflix公司开发的服务发现中间件,用于服务的负载均衡和服务故障转移 

SpringCloud 集成了EurekaSever,通过简单配置即可启动;Spring Cloud对Eureka的支持最好。

在Eureka中,所有的Eureka服务都被称为实例(instance),这些实例又分成为两大类:

1、Eureka Server: Eureka的服务端,即服务注册中心,负责维护所有实例的注册信息
2、Eureka Client: Eureka的客户端,根据功能又分为两类
      a. Service Provider:服务提供方,向Eureka Server做服务注册、续约和下线等操作,注册的主要数据包括服务名、机器ip、端口号、域名等等;
      b. Service Consumer:服务消费方, 向Eureka Server获取Service Provider的注册信息,并通过远程调用与Service Provider进行通信.

PS:可以将Service Provider和Service Consumer理解为角色。一个Eureka Client可以只是Service Provider,也可以只是Service Consumer,也可以同时即是Service Provider也是Service Consumer。(根据项目的具体情况,选择搭建架构)

二、注册中心(Eureka-Server)------单节点

首先大家要弄清楚下图的这种关系:

SpringCloud系列------Eureka-Server_第1张图片

具体操作如下:                                                                                                                                                                                                                                                                           

1、首先创建一个Eureka-Server的工程,这里可以选择创建Maven项目,也可直接创建Spring的项目,这里我选择第二种方式:

SpringCloud系列------Eureka-Server_第2张图片

SpringCloud系列------Eureka-Server_第3张图片

然后Next

SpringCloud系列------Eureka-Server_第4张图片

然后Finish就创建工程完成

重点来了:进行单节点注册中心的配置如下

SpringCloud系列------Eureka-Server_第5张图片

pom.xml文件如下:

 1 
 2  3          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 4     4.0.0
 5     
 6         org.springframework.boot
 7         spring-boot-starter-parent
 8         2.1.3.RELEASE
 9          
10     
11     com.dajian.springcloud
12     eurka-server
13     0.0.1-SNAPSHOT
14     eurka-server
15     Demo project for Spring Boot
16 
17     
18         1.8
19         Greenwich.RELEASE
20     
21 
22     
23         
24             org.springframework.cloud
25             spring-cloud-starter-netflix-eureka-server
26         
27 
28         
29             org.springframework.boot
30             spring-boot-starter-test
31             test
32         
33     
34 
35     
36         
37             
38                 org.springframework.cloud
39                 spring-cloud-dependencies
40                 ${spring-cloud.version}
41                 pom
42                 import
43             
44         
45     
46 
47     
48         
49             
50                 org.springframework.boot
51                 spring-boot-maven-plugin
52             
53         
54     
55 
56     
57         
58             spring-milestones
59             Spring Milestones
60             https://repo.spring.io/milestone
61         
62     
63 
64 
pom.xml

 配置代码根据文件不同格式也不同,一般有application.properties和application.yml两种

 1 spring.application.name=eureka-server1
 2 server.port=10100
 3 eureka.instance.hostname=localhost
 4 # 指示此实例是否应将其信息注册到eureka服务器以供其他人发现。在某些情况下,您不希望发现实例,而您只想发现其他实例。
 5 eureka.client.registerWithEureka=false
 6 # 指示该客户端是否应从eureka服务器获取eureka注册表信息。
 7 eureka.client.fetchRegistry=false
 8 eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
 9 eureka.instance.instance-id=${spring.application.name}:${spring.application.instance_id:${server.port}}
10 # 关闭服务保护机制
11 eureka.server.enable-self-preservation=false
12 # 清理无效节点时间间隔(单位毫秒,默认是60*100013 eureka.server.eviction-interval-timer-in-ms=30000
application.properties
 1 server:
 2   port: 8888
 3 
 4 eureka:
 5   instance:
 6     hostname: 192.168.1.11
 7     prefer-ip-address: true
 8   client:
 9     registerWithEureka: false
10     fetchRegistry: false
11     service-url:
12       defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
application.yml

然后通过浏览器访问:http://localhost:10100  看到下面的界面就说明最简单的注册中心配置成功

SpringCloud系列------Eureka-Server_第6张图片

 

二、注册中心集群(Eureka-Servers)------多节点

 前面介绍介绍了注册中心的单节点配置过程,下面来介绍一下多节点配置过程,也就是为了使项目达到高可用的目的,进行集群化配置,首先我们来看一下关系图:

SpringCloud系列------Eureka-Server_第7张图片

                                      图一:Eureka官网

SpringCloud系列------Eureka-Server_第8张图片

                           图二:理解一下集群

为了方面看我将上面的单节点注册中心地配置改为4个yml类型的文件

SpringCloud系列------Eureka-Server_第9张图片

1 spring:
2   profiles:
3     active: peer1
4 eureka:
5   server:
6     # 关闭自我保护模式
7     enable-self-preservation: false
8     # 设置清理间隔,单位为毫秒,默认为0
9     eviction-interval-timer-in-ms: 3000
application.yml
 1 spring:
 2   application:
 3     name: eureka-server1
 4 server:
 5   port: 10101
 6 eureka:
 7   client:
 8     service-url:
 9       defaultZone: http://localhost:10102/eureka/,http://localhost:10103/eureka/
10   instance:
11     instance-id: ${spring.application.name}:${spring.application.instance_id:${server.port}}
application-peer1.yml
 1 spring:
 2   application:
 3     name: eureka-server2
 4 server:
 5   port: 10102
 6 eureka:
 7   client:
 8     service-url:
 9       defaultZone: http://localhost:10101/eureka/,http://localhost:10103/eureka/
10   instance:
11     instance-id: ${spring.application.name}:${spring.application.instance_id:${server.port}}
application-peer2.yml
 1 spring:
 2   application:
 3     name: eureka-server3
 4 server:
 5   port: 10103
 6 eureka:
 7   client:
 8     service-url:
 9       defaultZone: http://localhost:10101/eureka/,http://localhost:10102/eureka/
10   instance:
11     instance-id: ${spring.application.name}:${spring.application.instance_id:${server.port}}
application-peer3.yml

 为了方便观察和操作,我的启动方式在1个Idea上启动三个Eureka-Server,具体操作如下:

SpringCloud系列------Eureka-Server_第10张图片

SpringCloud系列------Eureka-Server_第11张图片

SpringCloud系列------Eureka-Server_第12张图片

SpringCloud系列------Eureka-Server_第13张图片

当只启动1个或两个时,控制台会报错,这是正常的现象,启动完第三个,在控制台会看到类似下面的代码输出:

Registered instance EUREKA-SERVER1/eureka-server1:10101 with status UP (replication=true)

Registered instance EUREKA-SERVER2/eureka-server2:10102 with status UP (replication=true)

Registered instance EUREKA-SERVER3/eureka-server3:10103 with status UP (replication=true)

然后通过浏览器,使用10101,10102,10103任意一个端口去访问都可以看到如下图,说名三节点的Eureka-server注册中心集群搭建完成:

SpringCloud系列------Eureka-Server_第14张图片

其他服务的配置只需要修改如下代码:

SpringCloud系列------Eureka-Server_第15张图片

 

转载于:https://www.cnblogs.com/wdzhz/p/10422945.html

你可能感兴趣的:(java,大数据,开发工具)