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(服务提供者、服务消费者)。

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-父工程环境引入依赖

<parent>
    <relativePath>
        <gtoupId>org.springframework.boot</groupId>
	    <artifactId>spring-boot-starter-parent</artifactId>
	    <version>2.1.e.RELEASE</version>
    <relativePath/>
</parent>

<properties>
	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
	<java.version>1.8</java.version>
</properties>

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

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
</dependency>

(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引入依赖

<!--springcloud-版本信息-->
<properties>
    <spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
</properties>

<!--springcloud依赖-->
<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>${spring-cloud.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
        <dependencies>
<dependencyManagement>
		

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

<!--eureka-server-->
<dependencies>
	<dependency>
		<groupId>org.springframework.cloud</groupId>
		<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
	</dependency>
</dependencies>

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中引入相同的依赖

<dependencies>
	<dependency>
		<groupId>org.springframework.cloud</groupId>
		<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
	</dependency>
</dependencies>

(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<ServerInstance> 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:

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值