使用SpringCloud实现Java分布式开发【part-1】:Eureka注册中心的搭建、高可用集群的配置及高级配置

本文介绍了SpringCloud的Eureka组件,作为服务注册中心,解决了分布式环境中服务地址管理和发现的问题。详细阐述了Eureka的搭建步骤,包括服务端和客户端配置,并探讨了Eureka的高可用集群设置,以及服务端和客户端的高级配置,如服务续约、获取服务地址频率等。
摘要由CSDN通过智能技术生成

SpringCloud简介

Spring Cloud是Spring旗下的项目之一
Spring Cloud并不是一个组件 而是许多组件的集合
其将当下非常流行的一些技术整合到了一起 实现了多个分布式开发中的重要功能
协调了分布式环境中各个系统 并且为各类服务提供模板性的配置

其主要涉及的组件包括:

  • Eureka:注册中心
  • Zuul或Spring Cloud Gateway:服务网关
  • Ribbon:负载均衡
  • Feign:服务调用
  • Hystrix或Resilience4j:熔断器

【在本篇中 将介绍Eureka注册中心】

Eureka注册中心

在传统的分布式开发中会面临着一个问题:提供服务者需要对外暴露自己的地址 而服务调用者需要记录服务提供者的地址
若地址出现变更 则还需要及时更新 在现在日益复杂的互联网环境 一个项目可能拆分出多个微服务
此时若人为管理地址 不仅开发困难 且在测试 发布上线时都会非常麻烦

而SpringCloud的Eureka组件可以解决该问题

Eureka好比一个中介 其负责管理和记录服务提供者的信息
那么 服务调用者无需自己寻找服务 而是将自己的需求告诉Eureka 然后Eureka会告诉你符合需求的服务地址
同时 服务提供方与Eureka之间通过心跳 (顾名思义 类似于心跳 会定时检测是否存活) 机制进行监控
如此 若当某个服务提供方出现问题 Eureka自然会把其从服务列表中剔除
以此确保了服务的自动注册 发现 状态监控
在这里插入图片描述
需要注意的是 Eureka是服务注册中心 仅仅只提供服务注册能力 自身并不提供服务也不消费服务

一、搭建步骤:

1、Eureka服务端

添加Eureka服务端的依赖:
(由于我已在父工程中添加了spring-cloud-dependencies版本管理 因此这里不再配置版本号了)

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

在Eureka的服务端的启动类上添加@EnableEurekaServer注解以声明当前应用为Eureka的服务端:

@SpringBootApplication
// 声明当前应用为Eureka的服务端
@EnableEurekaServer
public class EurekaServerApplication {
   
    public static void main(String[] args) {
   
        SpringApplication.run(EurekaServerApplication.class,args);
    }
}

配置文件application.yml:

server:
  # 当前服务的端口号
  port: 10086
spring:
  # 当前应用的名称 便于区分
  application:
    name: eureka-server
eureka:
  client:
    service-url:
      # 设置Eureka服务的默认地址 需要注意的是后面需带上一个/erueka
      # 若为集群 则需指定其它集群的Eureka地址
      defaultZone: http://127.0.0.1:10086/eureka
    # 当前服务不注册到Eureka 因为当前服务就是Eureka提供者本身 并不提供服务
    # 若为集群 该配置则要注释掉 为了让其它Eureka发现该Eureka
    register-with-eureka: false
    # 不从Eureka拉取服务
    fetch-registry: false

2、Eureka服务客户端

服务提供方将服务注册到Eureka以便于调用 服务消费方从Eureka获取地址列表
因此 服务提供方和服务消费方都属于Eureka客户端

服务提供方和服务消费方都需添加Eureka客户端依赖 服务提供方自动将服务注册到EurekaServer服务地址列表 服务消费方使用工具类根据服务名称获取对应的可用的服务地址列表

①、服务提供方:

添加Eureka客户端的依赖:
(由于我已在父工程中添加了spring-cloud-dependencies版本管理 因此这里不再配置版本号了)

<dependency>
	<gr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值