序言
Eureka作为在微服务架构中必不可少的核心组件,主要分为两部分Eureka-Server和Eureka-Client。保证着微服务在RPC调用过程中的可用性和服务管理。
Eureka架构图
-
Eureka Server
提供服务注册与发现,保证服务信息的一致性 -
Service Provider
服务提供者,将自身信息注册到Eureka服务器,提供给消费者调用 -
Service Consumer
服务消费者,从Eureka服务器拉取提供者信息,从而实现远程调用
不过不管是服务提供者还是服务消费者,始终都要将自身注册到Eureka,因为Eureka就好比一个中间商,要收集卖方和买方的信息并随时保持和两者的联系。所以除了Eureka自身服务(Eureka-Server),其他注册到它的服务都可以看成是Eureka-Client
Eureka服务注册搭建
Eureka-Server
新建一个SpringBoot工程,并引入Eureka服务端依赖,注意:依赖别搞错,请看清楚
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
- 修改application.yml文件
server:
port: 7001
spring:
application:
name: xf-eureka
eureka:
instance:
hostname: localhost
client:
#eureka不需要向注册中心注册自己
register-with-eureka: false
#false不需要去检索其他微服务
fetch-registry: false
service-url:
#eureka服务器交互地址
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
- 修改主启动类
/**
* @Description EurekaApplication
* @Author Fangchenjiang
* @Date 2021/3/28 22:50
*/
@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaApplication.class,args);
}
}
** Eureka-Client**
新建一个SpringBoot工程,引入Eurekak客户端依赖,因为当前的SpringBoot应用是要注册到Eureka
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
<version>2.2.2.RELEASE</version>
</dependency>
- 修改application.yml
server:
port: 8001
spring:
application:
name: xf-order
eureka:
client:
fetch-registry: true
register-with-eureka: true
service-url:
defaultZone: http://localhost:7001/eureka/
- 修改主启动类:
/**
* @Description 订单启动类
* @Author Fangchenjiang
* @Date 2021/3/28 23:02
*/
@SpringBootApplication
@EnableEurekaClient
public class OrderApplication {
public static void main(String[] args) {
SpringApplication.run(OrderApplication.class,args);
}
}
这样简单几步就搭建好了一个单机版的Eureka环境,浏览器访问http://localhost:7001看到下图,说明Eureka单机版搭建成功:
若是没看到正确显示,一定认真检查依赖,配置文件和核心注解
总结
Eureka作为微服务架构中的核心组件,整个搭建过程以及原理应该要熟悉掌握,这对于未来学习ZooKeeper,Nacos等服务注册中心组件,原理应该也差不多。