springCloud-注册中心Eureka

  Eureka是spring cloud首选推荐的服务注册与发现组件,与spring cloud其他组件能够无缝对接,是spring cloud Netflix模块的基础组件之一。
  Eureka的基本框架包括三种角色:
  

  1. Register Service:服务注册中心,它是一个Eureka Server,提供服务注册和发现功能。
  2. Provider Service:服务提供者,它是一个Eureka Client,提供服务。
  3. Consumer Service:服务消费者,它是一个Eureka Client,消费服务。

     服务消费基本过程:
     首先建立一个注册服务中心Eureka Server,服务提供者Eureka Client向注册中心注册,将自己的信息通过Rest API形式提供给Eureka Server。服务消费者也向Eureka Client注册,同时服务消费者获取一份服务注册列表的消息,该列表包好所有向服务中心注册的服务信息,获取到服务列表,服务消费者就知道服务提供者的ip信息,然后就可以通过http请求调用相应的服务。

下面为一个Eureka的helloworld示例。
首先,创建Eureka Server,这里通过IDEA集成的spring Initializer使用gradle来创建项目。
打开文件创建界面:
这里写图片描述
点击next选择填写项目的信息,Group一般为域名的倒叙写法,artartifact为项目名,type这里我选择的gradle config:
这里写图片描述
点击next,选择需要的依赖,服务注册中心选取Cloud discovery中的Eureka Server即可:
这里写图片描述
然后next,finish点击即可。这时候会弹出来Gradle的配置选项,这里需要勾选create directories.. ,不然的话创建出来的项目没有默认的一些目录,需要你自己去手动创建:
这里写图片描述
点击ok即可,然后等待项目构建完成。

然后编写Eureka Server的配置和启动类:
application.yml配置:

#服务端口
server:
  port: 8765


eureka:
  instance:
    hostname: localhost
    #租赁有效期  默认90s
    lease-expiration-duration-in-seconds: 30
  client:
    #禁止Eureka Server向自己注册 默认会向自己注册
    register-with-eureka: false
    fetch-registry: false
    #服务url
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
#应用名称
spring:
  application:
    name: eureka-server

服务启动类,EnableEurekaServer注解功能是开启Eureka Server 功能:

@EnableEurekaServer
@SpringBootApplication
public class EurekaServerApplication {

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

编写完成运行项目,访问localhost:8765,能看到Eureka Server的主界面:
这里写图片描述

然后创建Eureka Client,和上面步骤大体一样,依赖更改为spring-boot-start-web(因为需要心跳包来维持连接,如果没有此依赖会发现服务注册后里面就down了)和spring-cloud-starter-netflix-eureka-client。
client的application.yml:

server:
  port: 8761
spring:
  application:
    name: eureka-client
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8765/eureka/

服务启动类:

@EnableEurekaClient
@SpringBootApplication
public class EurekaClientApplication {
    public static void main(String[] args) {
        SpringApplication.run(EurekaClientApplication.class, args);
    }
}

启动项目,然后可以在刚刚server的web页面上发现自己的注册信息。
这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_36666651/article/details/80725749