文章目录
系列链接:
- GitHub:源码
- SpringCloud(1)–入门、版本、环境搭建
- SpringCloud(2)–服务注册与发现(Eureka、Zookeeper、Consul)
- SpringCloud(3)–服务调用(Ribbon、OpenFeign)
- SpringCloud(4)–服务降级(Hystrix、降级、熔断、监控)
- SpringCloud(5)–服务网关(GateWay)
- …
服务注册中心
在环境搭建中,我们实现了服务模块直接通过Http的方式进行调用。而当我们的服务越来越多时就会不方便管理(服务运行状态等等),所以将这些服务在某个地方注册并进行统一的管理,这个地方就是我们的服务注册中心。
前面我们说过的几种服务注册中心:
- Eureka
- Zookeeper
- Consul
Eureka
服务治理:
而SpringCloud封装了Netflix公司开发的Eureka模块来实现服务治理。
微服务使用 Eureka 的客服端与 Eureka 服务器端维持心跳连接,维护人员就可以在服务器端监控到各个微服务(服务器信息)是否正常。
Eureka包含了两个组件:
- Eureka Server:提供注册服务,各个微服务节点会在其中进行注册。
- Eureka Client:一个Java客户端,用于简化与Eureka Server 的交互,同时会定时向Eureka Server发送心跳,如果Eureka Server 在多个心跳周期内没有接收到某个节点的心跳则会将该节点移除。
单机版eureka
创建Module
-
创建名为cloud-eureka-server7001的模块
-
引入pom依赖
<!-- eureka-server -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<!-- 其他依赖 -->
- 配置文件
server:
port: 7001
eureka:
instance:
# eureka服务端的实例名称
hostname: localhost
client:
# 不注册自己
register-with-eureka: false
# 表示自己是注册中心,不用检索服务
fetch-registry: false
service-url:
defaultZone: http://${
eureka.instance.hostname}:${
server.port}/eureka/
- 主启动类
@SpringBootApplication
@EnableEurekaServer
public class EurekaMain7001 {
public static void main(String[] args){
SpringApplication.run(EurekaMain7001.class,args);
}
}
- 启动当前项目,访问http://localhost:7001就可以看到如下页面,可以看到当前没有服务注册进来
其他服务注册到eureka
比如此时pay模块加入eureka:
- 修改pom,引入依赖
<!--eureka client-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>