本文介绍: 通过Eureka服务提供者可以在其启动时向Eureka服务器注册自己网络地址和元数据信息,而服务消费者可以从Eureka服务器查询所需服务实例列表,并基于负载均衡策略选择合适的服务实例进行调用。总的来说,Eureka作为服务治理框架,为微服务架构提供了一套完善的服务注册发现机制,帮助各个服务实例之间能够自动找到彼此,实现服务之间通信协作。总的来说,Eureka通过服务注册发现机制,帮助分布式系统中的各个服务实例能够自动找到彼此,实现服务之间的通信与协作

在这里插入图片描述

🌹简述Eureka

Eureka是Netflix开源一个基于REST的服务治理框架,主要用于实现微服务架构中的服务注册发现。它由Eureka服务器和Eureka客户端组成,其中Eureka服务器负责维护整个系统的服务实例信息,而Eureka客户端负责向Eureka服务器注册自身信息,并从Eureka服务器获取其他服务实例的信息

通过Eureka,服务提供者可以在其启动时向Eureka服务器注册自己网络地址和元数据信息,而服务消费者可以从Eureka服务器查询所需服务的实例列表,并基于负载均衡策略选择合适的服务实例进行调用。同时,Eureka还具备监控故障转移、自我保护功能能够有效地应对网络分区异常情况,确保整个系统稳定性和可靠性

总的来说,Eureka作为服务治理框架,为微服务架构提供了一套完善的服务注册与发现机制,帮助各个服务实例之间能够自动找到彼此,实现服务之间的通信与协作。它是构建基于微服务架构分布式系统的重要工具之一,被广泛应用于云计算大数据领域

🛸搭建Eureka服务

操作步骤

首先我们eurekaserver包中进行操作

首先我们引入依赖

<dependencies&gt;
        <!--eureka服务端-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
    </dependencies>

下面我们新建一个启动类,来启动eureka服务

package cn.itcast.eureka;

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

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

在这里插入图片描述
下面我们编写一个配置文件application.yml

server:
  port: 10086 # 服务端
spring:
  application:
    name: eurekaserver # eureka的服务名称
eureka:
  client:
    service-url:  # eureka的地址信息
      defaultZone: http://127.0.0.1:10086/eureka

这样我们成功搭建eureka服务了

⭐服务注册

我们userservice包中进行操作

pom文件引入eureka客户端依赖

 <!--eureka客户端依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

我们编写一个配置文件application.yml配置eureka地址

server:
  port: 8081
  spring:
    datasource:
      url: jdbc:mysql://mysql:3306/cloud_user?useSSL=false
      username: root
      password: 123
      driver-class-name: com.mysql.jdbc.Driver
    application:
      name: userservice
mybatis:
  type-aliases-package: cn.itcast.user.pojo
  configuration:
    map-underscore-to-camel-case: true
logging:
  level:
    cn.itcast: debug
  pattern:
    dateformat: MM-dd HH:mm:ss:SSS
eureka:
  client:
    service-url:  # eureka的地址信息
      defaultZone: http://127.0.0.1:10086/eureka

下面我们orderservice进行eureka服务注册

我们打开orderservice

pom文件引入eureka客户端依赖

 <!--eureka客户端依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

我们编写一个配置文件application.yml,配置eureka地址

server:
  port: 8081
  spring:
    datasource:
      url: jdbc:mysql://mysql:3306/cloud_user?useSSL=false
      username: root
      password: 123
      driver-class-name: com.mysql.jdbc.Driver
    application:
      name: orderservice
mybatis:
  type-aliases-package: cn.itcast.user.pojo
  configuration:
    map-underscore-to-camel-case: true
logging:
  level:
    cn.itcast: debug
  pattern:
    dateformat: MM-dd HH:mm:ss:SSS
eureka:
  client:
    service-url:  # eureka的地址信息
      defaultZone: http://127.0.0.1:10086/eureka

注意:orderservice包和userservice包的yml文件区别就是它们的name属性
orderservicename: orderservice
userservicename: userservice

⭐服务发现

Eureka是Netflix开源的服务发现框架,用于在分布式系统实现服务的自动注册与发现。它采用客户端-服务器架构模式,由一个或多个Eureka服务器和多个Eureka客户端组成。

服务提供者启动时向Eureka服务器注册自己的信息,包括服务名称网络地址等。Eureka服务器维护一个服务注册表记录所有已注册的服务信息。同时,服务提供者还会周期性地发送心跳信号给Eureka服务器,以确保自己存活状态

服务消费者在需要调用某个服务时,首先向Eureka服务器查询该服务的信息。Eureka服务器返回可用的服务实例列表消费者,消费可以根据自己的负载均衡策略选择其中一个实例进行调用。同时,消费者也会缓存服务实例信息,以减少对Eureka服务器的频繁查询

当有服务提供者发生变动例如启动关闭网络故障等)时,Eureka客户端会及时更新本地缓存的服务注册表消费通过定时任务监听机制可以感知到服务实例的变化,并及时做出相应的调整。

总的来说,Eureka通过服务注册与发现的机制,帮助分布式系统中的各个服务实例能够自动地找到彼此,实现服务之间的通信与协作。它具有简单可靠、高可用等特点,被广泛应用于微服务架构中。

请添加图片描述

技术道路上,我们不断探索、不断前行,不断面对挑战、不断突破自我。科技发展改变着世界,而我们作为技术人员,也在这个过程书写自己的篇章。让我们携手并进,共同努力,开创美好的未来!愿我们在科技的征途上不断奋进,创造出更加美好、更加智能的明天!

在这里插入图片描述

原文地址:https://blog.csdn.net/m0_72853403/article/details/134828462

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_50201.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注