二、Spring Cloud Eureka 简介、快速入门

注册发现中心

Eureka 来源于古希腊词汇,意为“发现了”。在软件领域, Eureka 是 Netflix 在线影片公司开源的一个服务注册与发现的组件,和其他 Netflix 公司的服务组件(例如负载均衡、熔断器、网关等) 一起,被 Spring Cloud 社区整合为 Spring Cloud Netflix 模块。
Eureka 是 Netflix 贡献给 Spring Cloud 的一个框架!Netflix 给 Spring Cloud 贡献了很多框架.

2.Spring Cloud Eureka 和 Zookeeper 的区别

2.1 什么是 CAP 原则(面试)

在分布式 微服务里面 CAP 定理
问:为什么 zookeeper 不适合做注册中心?

CAP 原则又称 CAP 定理,指的是在一个分布式系统中,

一致性(Consistency)

可用性(Availability)

分区容错性(Partition tolerance)(这个特性是不可避免的)

CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。

2.2 分布式特征

在这里插入图片描述

  • C : 数据的一致性 (A,B,C 里面的数据是一致的)

    • Zk 注重数据的一致性。

    • Eureka 不是很注重数据的一致性!

  • A: 服务的可用性

    • (若 zk 集群里面的 master 挂了怎么办)Paxos(多数派)在 zk 里面,若主机挂了,则 zk 集群整体不对外提供服务了,需要选一个新的出来(120s左右)才能继续对外提供服务!
    • Eureka 注重服务的可用性,当 Eureka 集群只有一台活着,它就能对外提供服务
  • P:分区的容错性(在集群里面的机器,因为网络原因,机房的原因,可能导致数据不会同步),它在分布式必须需要实现的特性!

  • 尽管在某种程度上可用性和分区容忍性都关注系统的持续运行能力,但它们侧重点不同:

  • 可用性关注系统在正常操作状态下对用户请求的响应能力,即使系统的某些节点或组件发生故障,也要尽可能保持可用状态,确保用户能够正常访问和使用系统。

  • 分区容忍性关注的是系统在面对网络分区或通信故障时的鲁棒性和弹性,即使节点之间无法直接通信或出现延迟、丢包等问题,系统仍然能够继续运行,不会完全瘫痪。

Zookeeper 注重数据的一致性,CP zk(注册中心,配置文件中心,协调中心)
Eureka 注重服务的可用性 AP eureka (注册中心)

4.Spring Cloud Eureka 快速入门

在这里插入图片描述

4.1 搭建 Eureka-server

4.1.1 创建项目

创建一个springboot工程
在这里插入图片描述

4.1.2 选择依赖

在这里插入图片描述

4.1.3 分析 pom.xml

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>

<!-- 实质还是 springboot 项目-->

<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.12.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->

</parent>
<groupId>com.bjpowernode</groupId>
<artifactId>eureka-server</artifactId>
<version>1.0</version>
<name>eureka-server</name>
<description>Demo project for Eureka-Server</description>
<properties>
<java.version>1.8</java.version>

<!-- 这里控制了 springcloud 的版本-->
<spring-cloud.version>Hoxton.SR12</spring-cloud.version>
</properties>
<dependencies>

<!-- eureka 注册中心的服务端-->

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>

<!-- 依赖管理,cloud 的依赖-->

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>

4.1.4 修改启动类

在这里插入图片描述

4.1.5 修改配置文件

在这里插入图片描述

4.1.6 访问测试

http://localhost:8761
在这里插入图片描述

4.1.7 分析端口 8761

Eureka-Server 不仅提供让别人注册的功能,它也能注册到别人里面,自己注册自己

所以,在启动项目时,默认会注册自己,我们也可以关掉这个功能。

4.2 搭建 Eureka-client

4.2.1 创建项目 client-a 选择 依赖

在这里插入图片描述

4.2.2 分析 pom.xml

在这里插入图片描述

4.2.3 修改启动类

在这里插入图片描述

4.2.4 修改配置文件

在这里插入图片描述

4.2.5 访问测试

http://localhost:8761
在这里插入图片描述

4.3 同一个服务(客户端)启动多台

4.3.1 IDEA 启动多台服务操作

在这里插入图片描述
在这里插入图片描述

4.3.2 访问查看

在这里插入图片描述

4.4 注册中心的状态认识

UP: 服务是上线的,括号里面是具体服务实例的个数,提供服务的最小单元

DOWN: 服务是下线的

UN_KONW: 服务的状态未知

4.4.1 服务的实例名称

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Cloud是一个用于构建分布式系统的开发工具包,它基于Spring Boot,并提供了一系列的开发工具和服务,帮助开发者快速构建和管理分布式系统的各个组件。 要快速入门Spring Cloud,你可以按照以下步骤进行操作: 1. 确保你已经安装了Java开发环境和Maven构建工具。 2. 创建一个新的Spring Boot项目。你可以使用Spring Initializr(http://start.spring.io/)网站或者使用IDE(如IntelliJ IDEA、Eclipse)的工具来创建一个新的Spring Boot项目。 3. 在创建项目时,选择需要使用的Spring Cloud组件。Spring Cloud提供了许多组件,如服务注册与发现(Eureka、Consul)、负载均衡(Ribbon)、断路器(Hystrix)、配置管理(Config Server)、网关(Zuul)、消息总线(Spring Cloud Bus)等等。根据你的需求选择相应的组件依赖。 4. 编写业务代码。根据你的业务需求,编写相应的业务代码。可以使用Spring MVC来实现RESTful API,使用Spring Data来操作数据库等等。 5. 配置和启动Spring Cloud组件。根据你选择的组件,配置相应的参数和属性。例如,如果你选择了Eureka作为服务注册与发现组件,需要配置Eureka Server和Eureka Client相关属性。然后启动相应的组件服务。 6. 集成和测试。将你的业务代码集成到Spring Cloud项目中,并进行测试。可以使用Postman等工具来测试RESTful API的调用和返回结果。 这只是一个简单的快速入门指南,Spring Cloud还有更多的功能和组件可以探索和学习。你可以参考Spring Cloud官方文档(https://spring.io/projects/spring-cloud)来了解更多详细信息。祝你学习愉快!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值