46人参与 • 2024-07-28 • Java
eureka是netflix开源的一个基于rest的服务治理框架,主要用于实现微服务架构中的服务注册与发现。它由eureka服务器和eureka客户端组成,其中eureka服务器负责维护整个系统的服务实例信息,而eureka客户端则负责向eureka服务器注册自身信息,并从eureka服务器获取其他服务实例的信息。
通过eureka,服务提供者可以在其启动时向eureka服务器注册自己的网络地址和元数据信息,而服务消费者则可以从eureka服务器查询所需服务的实例列表,并基于负载均衡策略选择合适的服务实例进行调用。同时,eureka还具备监控、故障转移、自我保护等功能,能够有效地应对网络分区等异常情况,确保整个系统的稳定性和可靠性。
总的来说,eureka作为服务治理框架,为微服务架构提供了一套完善的服务注册与发现机制,帮助各个服务实例之间能够自动地找到彼此,实现服务之间的通信与协作。它是构建基于微服务架构的分布式系统的重要工具之一,被广泛应用于云计算、大数据等领域。
首先我们先引入依赖
<dependencies>
<!--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服务了
在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
下面我们在order-service中进行eureka服务注册
在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
eureka是netflix开源的服务发现框架,用于在分布式系统中实现服务的自动注册与发现。它采用了客户端-服务器的架构模式,由一个或多个eureka服务器和多个eureka客户端组成。
服务提供者在启动时向eureka服务器注册自己的信息,包括服务名称、网络地址等。eureka服务器维护一个服务注册表,记录了所有已注册的服务信息。同时,服务提供者还会周期性地发送心跳信号给eureka服务器,以确保自己的存活状态。
服务消费者在需要调用某个服务时,首先向eureka服务器查询该服务的信息。eureka服务器返回可用的服务实例列表给消费者,消费者可以根据自己的负载均衡策略选择其中一个实例进行调用。同时,消费者也会缓存服务实例信息,以减少对eureka服务器的频繁查询。
当有服务提供者发生变动(例如启动、关闭、网络故障等)时,eureka客户端会及时更新本地缓存的服务注册表。消费者通过定时任务或监听机制,可以感知到服务实例的变化,并及时做出相应的调整。
总的来说,eureka通过服务注册与发现的机制,帮助分布式系统中的各个服务实例能够自动地找到彼此,实现服务之间的通信与协作。它具有简单、可靠、高可用等特点,被广泛应用于微服务架构中。
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论