首页 > 其他分享 >微服务 - Spring Cloud - Eureka Server单机和集群搭建、单机服务注册和集群服务注册

微服务 - Spring Cloud - Eureka Server单机和集群搭建、单机服务注册和集群服务注册

时间:2023-06-20 22:01:05浏览次数:35  
标签:服务 单机 Server eureka 集群 注册 Eureka true

Eureka 服务管理

Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。

SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能

Eureka服务注册与发现

Eureka 采用了CS的设计架构,Eureka Server作为服务注册功能的服务器,它是服务注册的中心。而系统中的其他微服务,使用 Eureka 的客户端链接到 Eureka server并维持心跳连接。使开发人员可以通过Eureka serve来监控系统中各个微服务的运行状态.

在服务注册与发现中,有一个注册中心。当服务启动的时候,会把当前自己的服务器的信息,比如 服务地址、通讯地址等以别名方式注册到注册中心。另一方 (消费者|服务提供者),以该别名的方式去注册中心上获取到实际的服务通讯地址,然后再实现本地RPC调用远程RPC。远程调用框架的核心设计思想:在于注册中心 ,因为使用注册中心管理每个服务于服务之间的一个依赖关系(服务治理概念)。在任何RPC远程框架中,都会有一个注册中心(存放服务地址相关信息)

Eureka 三种角色

  • Eureka Server :提供服务注册和发现等
  • Service Provider:服务提供者:自身注册到Eureka Server,供消费端调用
  • Service Consumer:服务消费方:从Eureka获取注册服务列表,从而能够消费服务

ureka Server搭建

在父工程中创建module 'server7001' 引入 spring-cloud ureka 依赖

<dependencies>

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

    </dependencies>

配置文件

server:
  port: 7001

eureka:
  instance:
    # eureka 服务端的实例名称
    hostname: localhost
  client:
    # 表示是否将自己注册到Eureka Server,默认为true。
    register-with-eureka: false
    # 表示是否从Eureka Server获取注册信息,默认为true。
    fetch-registry: false
    service-url:
      # 设置与Eureka Server交互的地址
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

配置启动类

@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication7001 {

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

}

启动服务 浏览器访问: localhost:7001

服务注册到 Eureka 服务中心

在需要注册的服务中

引入pom依赖

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

配置文件

eureka:
  client:
    # 表示是否将自己注册到Eureka Server,默认为true。
    register-with-eureka: true
    # 表示是否从Eureka Server获取注册信息,默认为true。
    fetch-registry: true
    service-url:
      # 设置与Eureka Server交互的地址
      defaultZone: http://localhost:7001/eureka

启动类

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

测试启动,然后去 Eureka服务中心查看服务是否注册进来。

在 Eureka服务中心 的 DS Replicas中就会发现注册进来的服务

eureka Server 集群搭建

在父工程中创建module 'server7002' 引入 spring-cloud ureka 依赖

<dependencies>

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

</dependencies>

单机模拟eureka集群搭建,同一个ip不同端口

修改配置文件

server7002配置文件

server:
  port: 7001

eureka:
  instance:
    # eureka 服务端的实例名称
    hostname: eureka7001.com
  client:
    # 表示是否将自己注册到Eureka Server,默认为true。
    register-with-eureka: false
    # 表示是否从Eureka Server获取注册信息,默认为true。
    fetch-registry: false
    service-url:
      # 设置与Eureka Server交互的地址
      defaultZone: http://eureka7002.com:7002/eureka/

server7002配置文件

server:
  port: 7002

eureka:
  instance:
    # eureka 服务端的实例名称
    hostname: eureka7002.com
  client:
    # 表示是否将自己注册到Eureka Server,默认为true。
    register-with-eureka: false
    # 表示是否从Eureka Server获取注册信息,默认为true。
    fetch-registry: false
    service-url:
      # 设置与Eureka Server交互的地址
      defaultZone: http://eureka7001.com:7001/eureka/

启动类

server7001无需修改

新建server7002启动类

@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication7002 {

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

}

启动服务 浏览器访问: localhost:7001

启动服务 浏览器访问: localhost:7002

服务注册到 Eureka 集群服务中心

在需要注册的服务中。只需要修改application.yaml文件即可。还以上面的服务注册为例

eureka:
  client:
    # 表示是否将自己注册到Eureka Server,默认为true。
    register-with-eureka: true
    # 表示是否从Eureka Server获取注册信息,默认为true。
    fetch-registry: true
    service-url:
      # 设置与Eureka Server交互的地址
      defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/

标签:服务,单机,Server,eureka,集群,注册,Eureka,true
From: https://blog.51cto.com/u_15524534/6525463

相关文章

  • OPCServer DA OPC服务端opcserver发包)好用,几百个应用现场
    OPCServerDAOPC服务端opcserver发包)好用,几百个应用现场二次开发源代码,C#开发,可二次开发。已应用到多个行业的几百个应用现场,长时间运行稳定,可靠。本项目中提供测试OPCServer的软件开发源码,有详细的注释,并提供详细的使用说明,二次开发清晰明了。文件中提供测试过程视频,操作简单,......
  • 超市进销存管理系统的服务类
    代码:packagecom.service;importcom.baomidou.mybatisplus.mapper.Wrapper;importcom.baomidou.mybatisplus.service.IService;importcom.utils.PageUtils;importcom.entity.CaigouxinxiEntity;importjava.util.List;importjava.util.Map;importcom.entity.vo.Caigoux......
  • kafka的学习之一_带SASL鉴权的集群安装与启动
    kafka的学习之一_带SASL鉴权的集群安装与启动背景想开始一段新的里程.可能会比现在累,可能会需要更多的学习和努力.kafka可能就是其中之一.自己之前总是畏缩不前.不想面对很多压力.年龄已经很大了,必须得向前看继续努力了.关于kafkakafka是linked开源的一套高效持......
  • 如何快速发现 ASP.NET Core 应用程序中的服务生命周期问题?【转】
    在ASP.NETCore中,内置了非常强大的依赖注入容器功能。但是,如果不正确使用,也可能会引起一些问题。问题下面我们通过一段示例代码来说明这个问题。public interface IServiceA{    string Get();}public interface IServiceB{    string Get();}public class S......
  • kubernetes 服务发现
    服务发现概述通常,稍有规模的系统架构需要抽象楚相当数量的服务,这些服务间可能存在复杂的依赖关系和通信模型,考虑到容器编排环境的动态特性,让客户端获知服务端的地址便成了难题之一。kubernetes系统上的Service为pod中的服务类应用提供了一个固定的访问入口,但pod客户端中的应用还......
  • gravitee服务网关快速入门
    下载简单说说这个网关服务吧,这是博主所理解的。gravitee采用了前后分离的设计方案:主要包括了前端页面的显示,api的转发,api的管理      转自:https://www.jianshu.com/p/c3b179693877 将下载下来的包传到服务器上,就可以开始修改配置文件了。搭建......
  • 外网用户通过域名访问内网服务器配置
    ......
  • 使用flutter_background_service创建后台服务
    介绍flutter_background_service,它是一个在Flutter应用中创建和管理后台服务的库,并提供了一种简单的方式来执行长时间运行的任务。使用方法下面是关于flutter_background_service的使用方法的详细介绍:1、创建服务使用flutter_background_service库,你可以创建一个后台服......
  • Windows 2008服务器多界面和IIS的安装教程 140.210.16.x
    当你在使用服务器时是否有遇到这样一个问题?当你正在服务器里进行工作时,突然一个小伙伴在没有告知你的情况下进入了服务器里,导致你服务器失去连接了,这种情况是非常常见的现象。主要原因就是因为服务器没有安装多界面,服务器多开界面是占用的同一台服务器的资源,服务器多开数量没有限制......
  • VS2008开发的基于WinCE的网络服务器端和客户端程序多线程,线程同步,TCP/IP网络通讯、阻
    VS2008开发的基于WinCE的网络服务器端和客户端程序多线程,线程同步,TCP/IP网络通讯、阻塞式套接字发送数据与接收数据、……提供VC++源码以及固高嵌入式运动控制器的源代码,顾高运动控制器通过OtoStudio的ST语言编写,5轴电子凸轮,三轴电子齿轮控制同步带,一轴跟随主轴加速、同步、减速、......