注册中心——Eureka

Posted dbc0801

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了注册中心——Eureka相关的知识,希望对你有一定的参考价值。

Eureka服务端

  Eureka服务端是一个可以通过Spring Boot微服务来实现,引入Eureka相关依赖后,简单的配置yml文件和编写主启动类,通过显示声明Eureka服务端来生成一个服务注册中心。

  

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

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

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

  

server:
  port: 7001
eureka:
  instance:
    hostname: eureka7001.com #eureka服务端的实例名称
  client:
    register-with-eureka: false     #false表示不向注册中心注册自己。
    fetch-registry: false     #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
    service-url:
      defaultZone: http://localhost:7001/eureka/  # 表示向哪个注册中心注册当前服务,如果只有一个Eureka,填写自己的地址,如果搭建集群,就填写除自己之外的其它Eureka地址。

  

@EnableEurekaServer     # 标识位Eureka服务端
@SpringBootApplication
public class EurekaServer {
    public static void main(String[] args) {
        SpringApplication.run(EurekaServer.class, args);
    }
}

向Eureka注册服务

  导入相关的pom依赖,编写yml配置文件,注册进Eureka,将该服务标识为Eureka客户端。

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

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

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

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
        </dependency>
        
        
    </dependencies>

  

spring:
application:
name: cloud-consumer-order  # 很重要,后期会通过服务名称来作为调用服务的依据。在搭建微服务集群时,相同的微服务的名称保持一致。在标识RestTemplate为LoadBalance之后,即可完成集群搭建并实现负载均衡。
eureka:
  client:
    #表示是否将自己注册进EurekaServer默认为true。
    register-with-eureka: true
    #是否从EurekaServer抓取已有的注册信息,默认为true。单节点无所谓,集群必须设置为true才能配合ribbon使用负载均衡
    fetchRegistry: true
    service-url:
      #单机版,若为Eureka集群,仅需要将Eureka的地址全部填写,并以`,`分隔即可。
      defaultZone: http://localhost:7001/eureka

  

@EnableEurekaClient  # 标识为Eureka客户端。
@SpringBootApplication
public class Payment {
    public static void main(String[] args) {
        SpringApplication.run(Payment.class, args);
    }
}

远程调用

  可以使用RestTemplate来远程调用微服务。首先向Spring容器中注册RestTemplate。

@Configuration
public class MainConfiguration {
    @Bean
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
}

 

@RestController
public class OrderController {
    private static final String URL = "http://CLOUD-SERVICE-PAYMENT";  # 这里的URL就是之前Provider提供方的服务名称,在yml文件中进行配置。
    @Resource
    private RestTemplate restTemplate;

    @GetMapping("/consumer/list")
    public CommonResult list(){
        return restTemplate.getForObject(URL+"/order/list", CommonResult.class);  
    }
}

 

  

 

以上是关于注册中心——Eureka的主要内容,如果未能解决你的问题,请参考以下文章

SpringCloud系列四:Eureka 服务发现框架(定义 Eureka 服务端Eureka 服务信息Eureka 发现管理Eureka 安全配置Eureka-HA(高可用) 机制Eur(代码片段

注册中心 Eureka 源码解析 —— 调试环境搭建(含源码)

SpringCloud系列:Eureka 注册中心

SpringCloud之eureka注册中心入门

SpringCloud学习心得—1.2—Eureka注册中心的密码认证高可用的设置

SpringCloud Eureka(注册中心集群)