Eureka(服务注册和发现)

      “Eureka ”来源于古希腊词汇,意为“发现了”。在软件领域, Eureka 是Netflix 在线影片公司开源 个服务 与发现的组件,和其他 Netflix 公司的服务组件(例如 负载均衡、熔断器、网关等) 起,被 Spring Cloud 社区整合为 Spring Cloud Netflix 模块。

      Eureka 分为 Eureka Server Eureka Client, Eureka Server为Eureka 服务注册中心, Eureka Client 为Eureka 客户端。

Eureka的基本结构包括3中角色。

1、Register Service:服务注册中心,作为Eureka Server 提供服务注册和发现的功能;

2、Provider Servcie: 服务提供者,作为Eureka Client 提供服务;

3、Consumer Service: 服务消费正,作为Eureka Client消费服务;

本例工程结构说明,本例采用 Maven Module 的结构:

spring-cloud-learn
--| eureka-client
--|--| src/main/java
--|--| src/main/resources
--|--|--| application.yml
--|--| pom.xml
--| eureka-server
--|--| src/main/java
--|--| src/main/resources
--|--|--| application.yml
--|--| pom.xml
--| pom.xml

 

 

 

 

版本说明:

Spring Boot-2.1.0.RELEASE

Spring Cloud-Greenwich.SR6

 

一、主Maven的pom.xml配置



  4.0.0
  com.mahaochen.learn.cloud
  spring-cloud-learn
  0.0.1-SNAPSHOT
  pom
  spring-cloud-learn
  Spring Cloud 学习总结
   
  		org.springframework.boot
		spring-boot-starter-parent
		2.1.0.RELEASE
		  
  	
  	
		1.8
		UTF-8
		UTF-8
		Greenwich.SR6
	
	
	
  		
            org.springframework.boot
            spring-boot-starter-test
            test
        
  	
  	
  		
  			
  				org.springframework.cloud
  				spring-cloud-dependencies
  				${spring-cloud.version}
  				pom
  				import
  			
  		
  	
  
        eureka-client
	eureka-server
  
  
  		
  			
  				org.springframework.boot
  				spring-boot-maven-plugin
  			
  			
  				org.apache.maven.plugins
  				maven-resources-plugin
  				
  					false
                    
                        $[*]
                    
                    UTF-8
  				
  			
  		
  	

 

二、编写Eureka Server

2.1 配置pom.xml

 



  4.0.0
  
    com.mahaochen.learn.cloud
    spring-cloud-learn
    0.0.1-SNAPSHOT
  
  com.mahaochen.learn.cloud.eureka.server
  eureka-server
  eureka-server
  jar
  
    UTF-8
  
  
  
  	
  		org.springframework.cloud
  		spring-cloud-starter-netflix-eureka-server
  		
  	
  
    
      junit
      junit
      test
    
  

 2.2 配置application.yml

 

server:
  port: 8761
eureka:
  instance:
    hostname: localhost
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url: 
      default-zone: http://${eureka.instance.hostname}:{server.port}/eureka

 注:
1、server.prot 
#服务器端口号
2、eureka.instance.hostname  
#eureka实例主机名
3、eureka.client.register-with-eureka 
# 默认情况下,eureka server同时也是eureka client,用于相互注册形成高可用eureka服务。
# 单点时,如果registerWithEureka配置为true,则eureka server会报错Cannot execute request on any known server
# 是否注册到eureka服务,默认为true,当前已为eureka server,且单点eureka,故配置为false
4、eureka.client.fetch-registry
# 是否在本地缓存注册表信息,默认为true,当前为单点eureka server,不需要从其他eureka除获取注册表信息,更谈不上缓存,故配置为false

2.3 编写SpringCloudEurekaServerApplication

 

@SpringBootApplication
@EnableEurekaServer
public class SpringCloudEurekaServerApplication {

	public static void main(String[] args) {
		
		SpringApplication.run(SpringCloudEurekaServerApplication.class, args);
	}
}

三、编写Eureka Client

3.1 配置pom.xml

 



  4.0.0
  
    com.mahaochen.learn.cloud
    spring-cloud-learn
    0.0.1-SNAPSHOT
  
  com.mahaochen.learn.cloud.eureka.client
  eureka-client
  eureka-client
  jar
  
    UTF-8
  
  
  
  	
  		org.springframework.cloud
  		spring-cloud-starter-netflix-eureka-client
  		
  	
  
  	
  		org.springframework.boot
  		spring-boot-starter-web
  	
  
    
      junit
      junit
      test
    
  

3.2 配置application.yml

eureka:
  client:
    service-url:
      default-zone: http://localhost:8761/eureka
server:
  port: 8762
spring:
  application:
    name: eureka-client

   注:
1、server.prot 
#服务器端口号
2、spring.application.name 
#应用程序名称

3.3 编写SpringCloudEurekaClientApplication

 

@SpringBootApplication
@EnableEurekaClient
public class SpringCloudEurekaClientApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpringCloudEurekaClientApplication.class, args);
	}
}

 

四、测试服务

依次运行eureka-server、eureka-client,通过浏览器访问http://localhost:8761

 

 

Eureka(服务注册和发现)_第1张图片

 Instances currently registered with Eureka 下的 EUREKA-CLIENT 为注册至Eureka Server的实体。

 

 

 

 

你可能感兴趣的:(Spring,Cloud,知识分享)