0
点赞
收藏
分享

微信扫一扫

Eureka介绍与使用

天悦哥 2022-04-18 阅读 89
eureka

目录

一、Eureka介绍

eureka是做什么的

为什么要使用eureka注册发现服务

服务治理

服务注册

服务发现

二、eureka的搭建

搭建eureka服务模块

1、创建eureka-server项目

2、pom.xml

 3、application.yml

4、主程序

5、修改host文件

搭建eureka服务提供者(service provider)

1、修改item-service模块

2、pom.xml

3、aplliaction.yml添加eureka注册配置

4、主程序添加服务注册发现客户端

5、启动并查看服务注册情况

三、eureka的使用

服务提供者 的“高可用”

1、配置启动参数

2、启动两个服务,并查看注册信息

eureka的高可用

1、添加两个配置yml文件

2、配置启动参数

3、启动两台服务器,查看注册信息

 4、修改item-service服务的yml


一、Eureka介绍

以下内容来自百度百科

eureka是做什么的

eureka主要负责完成微服务架构中的服务治理功能

为什么要使用eureka注册发现服务

当服务的模块越来越多,系统的功能越来越复杂,以前用到的静态配置就会变得越来越难以维护,会消耗巨大的人力,所以通过使用服务注册与发现来完成对微服务应用的自动化管理。

服务治理

用来实现各个微服务实例化的自动化注册与发现。

服务注册

首先会构建一个服务中心,之后的每个服务单元向这个服务中心提供主机,端口号等信息登记自己提供的服务。而注册中心通过服务名分类组织服务清单。

服务发现

服务之间不需要指定具体的实例地址,而是通过服务中心发起请求调用实现。所以,调用方并不需要知道服务提供方具体的位置,只需向注册中心发起请求。

二、eureka的搭建

搭建eureka服务模块

1、创建eureka-server项目

2、pom.xml

pom.xml中添加eureka Server依赖

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

 3、application.yml

编辑application.yml文件中的参数配置

spring:
  application:
    name: eureka-server
server:
  port: 2001

eureka:
  instance:
    hostname: eureka1
  client:
    register-with-eureka: false
    fetch-registry: false
  server:
    enable-self-preservation: false

其中,

  • eureka.instance.hostname=eureka1

        hostname是eureka集群服务器之间的区分

  • eureka.client.register-with-eureka=false

        不向自身注册

  • eureka.client.fetch-registry=false

        不从自身拉取注册信息

  • eureka.server.enable-self-perservation=false

        eureka 的自我保护状态:心跳失败的比例,在15分钟内是否超过85%,如果出现了超过的情况,Eureka Server会将当前的实例注册信息保护起来,同时提示一个警告,一旦进入保护模式,Eureka Server将会尝试保护其服务注册表中的信息,不再删除服务注册表中的数据。也就是不会注销任何微服务。测试阶段将其关闭。

  • eureka.instance.lease-expiration-duration-in-seconds

最后一次心跳后,间隔多久认定微服务不可用,默认90

4、主程序

编辑XxxApllication.java

添加@EnableEurekaServer

通过此注解触发自动配置

package cn.tedu.sp05;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@EnableEurekaServer //通过注解触发自动配置
@SpringBootApplication
public class Sp05EurekaApplication {

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

}

5、修改host文件

这里我把电脑的host文件添加配置,添加eureka域名映射

host文件位置:

C:\Windows\System32\drivers\etc\hosts

127.0.0.1 eureka1
127.0.0.1 eureka2

6、启动服务,访问测试

输入地址:

http://eureka1:2001

搭建eureka服务提供者(service provider)

1、修改item-service模块

此模块就是正常配置的一个服务模块

其中的配置:

服务名称为item-service

端口号使用8001

spring:
  application:
    name: item-service


server:
  port: 8001

2、pom.xml

添加Eureka Descovery Client依赖

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

3、aplliaction.yml添加eureka注册配置

#defaultZone - 默认地点
#如果使用云服务器,可以由服务商提供不同的地点的服务器
eureka:
  client:
    service-url:
      defaultZone: http://eureka1:2001/eureka

其中还有一些属性

  • eureka.client.service-url.defaultZone=http://eureka1:2001/eureka

        默认地点,可以修改为具体的地名,比如beijing,shanghai,shenzhen ,表示eureka服务器的部署位置,需要云服务器提供。

  • eureka.instance.lease-renewal-interval-in-seconds

        心跳间隔时间,默认为30s

  • eureka.client.registry-fetch-interval-seconds

        拉取注册信息间隔时间,默认30s

4、主程序添加服务注册发现客户端

主程序添加@EnableDiscoveryClient注解

package cn.tedu.sp02;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@EnableDiscoveryClient
@SpringBootApplication
public class Sp02ItemserviceApplication {

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

}

5、启动并查看服务注册情况

可以看到item-service服务已经被注册到eureka服务中

 

三、eureka的使用

服务提供者 的“高可用”

1、配置启动参数

使用:

修改Name为 Sp02Item-8001

并且在Program argments中添加: --server.port=8001 

使用左上角的复制按钮将Sp02Item-8001复制一个出来

将其Name修改为Sp02Item-8002

Program arguments修改为:--server.port=8002

 

注:使用此方法会将application.yml文件中的配置信息修改,从而使一个项目使用两个不同的端口分别启动(集群)。

2、启动两个服务,并查看注册信息

 

eureka的高可用

1、添加两个配置yml文件

application-eureka1.yml

eureka:
  instance:
    hostname: eureka1
  client:
    #向自身注册
    register-with-eureka: true  #profile的配置会覆盖公用配置
    #向自身拉取注册信息
    fetch-registry: true        #profile的配置会覆盖公用配置
    service-url:
      defaultZone: http://eureka2:2002/eureka  #eureka1启动时向eureka2注册

application-eureka2.yml

eureka:
  instance:
    hostname: eureka2
  client:
    #向自身注册
    register-with-eureka: true  #profile的配置会覆盖公用配置
    #向自身拉取注册信息
    fetch-registry: true        #profile的配置会覆盖公用配置
    service-url:
      defaultZone: http://eureka1:2001/eureka  #eureka2启动时向eureka1注册

2、配置启动参数

编辑eureka1参数

修改Name为Sp05Eureka-2001

添加Program arguments参数为:--spring.profiles.active=eureka1 --server.port=2001

 

编辑eureka2参数

复制eureka1修改其参数

Name为Sp05Eureka-2002

Program argments为 : --spring.profiles.active=eureka2 --server.port=2002

 

3、启动两台服务器,查看注册信息

 

 4、修改item-service服务的yml

使item-serivce向两台eureka服务注册

中间使用逗号(,)将两台服务器分隔开

eureka:
  client:
    service-url:
      defaultZone: http://eureka1:2001/eureka,http://eureka2:2002/eureka

举报

相关推荐

0 条评论