SpringCloud(一)学习——Eureka注册中心搭建

目录

一、Eureka简介

二、 provider和consumer搭建

1、springboot-父工程环境引入依赖

2、provider端和consumer端引入依赖springboot-web

三、 使用RsetTemplate完成远程调用 

1、定义一个@bean-rsetTemplate

2、注入@Bean

3、consumer中调用方法

四、Euerka Server服务搭建

1、引入springcloud和eureka-server相关依赖信息

(1)父类工程pom.xml引入依赖

(2)eureka-server中pom.xml引入依赖 

2、完成euerka-sever配置

(1)eureka-server启动类中加入驱动注解

(2)eureka-server的application.yml配置

五、使provider和consumer成为eureka的客户端(eureka-client)

1、引入eureka-client相关依赖、完成eureka-client相关配置

(1)provider和consumer中引入依赖

(2)consumer和provider启动类增加注解

(3)provider和consumer的application.yml配置

六、使用Eureka Server服务实现远程调用

 1、动态从consumer获取provider的IP和端口

(1)注入并激活 DiscoveryClient 注解

(2)使用DiscoveryClient动态获取

七、Eureka相关配置


一、Eureka简介

Eureka是 Netflix公司开源的一个服务注册与发现的组件。
Eureka和其他Netflix公司的服务组件(例负载均衡、熔断器、网关等)一起,被Spring Cloud 社区整合为Spring-Cloud-Netflix模块。
Eureka包含两个组件: Eureka Server(注册中心)和Eureka Client(服务提供者、服务消费者)。
SpringCloud(一)学习——Eureka注册中心搭建_第1张图片

Eureka的两个组件:Eureka Server(注册中心)和Eureka Client(服务提供、消费)。
Eureka Server:提供服务注册服务,各个节点启动后,会在Eureka Server中进行注册,这样EurekaServer中的服务注册表中将会存储所有可用服务节点的信息。Eureka Server可通过复制的方式完成数据的同步,Eureka还提供了客户端缓存机制,即使所有的Eureka Server都挂掉,客户端依然可以利用缓存中的信息消费其他服务的API。。
Eureka Client:是一个java客户端,用于简化与Eureka Server的交互,客户端同时也
是一个内置的、使用轮询负载算法的负载均衡器。

SpringCloud学习(一)——Eureka服务发现原理与搭建步骤_Hey 锡瑞的博客-CSDN博客

二、 provider和consumer搭建

1、springboot-父工程环境引入依赖


    
        org.springframework.boot
	    spring-boot-starter-parent
	    2.1.e.RELEASE
    



	UTF-8
	UTF-8
	1.8

2、provider端和consumer端引入依赖springboot-web


	org.springframework.boot
	spring-boot-starter-web

(3)provider端和consumer端引入依赖springboot-web

三、 使用RsetTemplate完成远程调用 

1、定义一个@bean-rsetTemplate

RestTemplate 是从 Spring3.0 开始支持的一个 HTTP 请求工具,它提供了常见的REST请求方案的模版。

    @Bean
    public RsetTemplate rsetTemplate(){
        return new RsetTemplate();
    }

2、注入@Bean

@Autowired
    private RestTemplate restTemplate;

3、consumer中调用方法

String url = "http://localhost:(provid)的端口号/**/**/**/"+ID;
Student student = restTemplate.getForObject(url, Student.class);

四、Euerka Server服务搭建

1、引入springcloud和eureka-server相关依赖信息

(1)父类工程pom.xml引入依赖



    Finchley.RELEASE




		
			
				org.springframework.cloud
				spring-cloud-dependencies
				${spring-cloud.version}
				pom
				import
			
        

		

(2)eureka-server中pom.xml引入依赖 



	
		org.springframework.cloud
		spring-cloud-starter-netflix-eureka-server
	

2、完成euerka-sever配置

(1)eureka-server启动类中加入驱动注解

@SpringBootApplication
@EnableEurekaServer // Eureka启用注解
public class EurekaApp {
    public static void main( String[] args ){
        SpringApplication.run(EurekaApp.class, args);
    }
}

(2)eureka-server的application.yml配置

server:
  port: 8761 #默认端口号

eureka:
  instance:
    hostname: localhost #主机名
  client:
    service-url:
      # eureka服务端地址 客户端使用这个地址和eureka通信
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka
    # 是否将路径注册到eureka上,一般【消费方】(eureka server)不需要注册到eureka上,【提供方】(eureka provider client)需要
    register-with-eureka: false
    # 是否需要从eureka中获取路径 -consumer client才需要获取路径
    fetch-registry: false

五、使provider和consumer成为eureka的客户端(eureka-client)

1、引入eureka-client相关依赖、完成eureka-client相关配置

(1)provider和consumer中引入依赖

provider和consumer中引入相同的依赖


	
		org.springframework.cloud
		spring-cloud-starter-netflix-eureka-client
	

(2)consumer和provider启动类增加注解

两者的注解相同@EnableEurekaClient

@SpringBootApplication
@EnableEurekaClient // 启用注解
public class providerApp {
    public static void main( String[] args ){
        SpringApplication.run(providerApp .class, args);
    }
}

(3)provider和consumer的application.yml配置

# provider 配置
server:
  port: 8000 
eureka:
  instance:
    hostname: localhost #主机名
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka
    # 是否将路径注册到eureka
    # register-with-eureka: turn #默认是turn可省略
    # 是否需要从eureka中获取路径
    # fetch-registry: turn #默认是turn可省略

spring:
  application:
    name: eureka-provider #设置名称,会在eureka中Application显示,以后可根据这个名字来获取路径




# consumer 配置
server:
  port: 9000 
eureka:
  instance:
    hostname: localhost #主机名
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka
spring:
  application:
    name: eureka-consumer #不同之处

六、使用Eureka Server服务实现远程调用

 1、动态从consumer获取provider的IP和端口

(1)注入并激活 DiscoveryClient 注解

(2)使用DiscoveryClient动态获取

 List instances = dicoveryClient.getInstances(EUREKA-PROVIDER);
        // 判断非空
        if (instances.size() > 0 || instances == null) {
            return null;
        }
        ServerInstance instance = instances.get(0);
        String host = instance.getHost();
        int port = instance.getPort();
        String url = "http://"+host+":"+port+"/**/**/**/"+ID;
        Student student = restTemplate.getForObject(url, Student.class);

七、Eureka相关配置

# eureka—4部分配器
#1.dashboard: eureka的web控制台配置
#2.server: eureka的服务端配器
#3.client: eureka的客户端配器
#4.instance: eureka的实例配置

eureka:
  instance:
    hostname: localhost
    lease-renewal-interval-in-seconds: 30 #定义调用服务续约任务的时间间隔
    lease-expiration-duration-in-seconds: 90 # 定义服务时效的时间
    prefer-ip-address: # 是否将自己的IP注入到eureka上 默认false
    ip-address: # 设置IP
    instance-id: # 修改instance-id显示

  server:
    # 开启保护机制 默认true
    enable-self-preservation: true
    # 清理时间间隔(毫秒) 默认60S
    eviction-interval-timer-in-ms:

你可能感兴趣的:(SpringCloud,spring,java)