【微服务】SpringCloud-eureka光速入门

SpringCloud-eureka光速入门

一、Eureka 主要组件

二、工作流程

三、优势

四、Eureka-光速入门【重点】

4.1 案例准备

4.1.1 创建父工程 tingyi-shop

4.1.2 创建子工程 tingyi-goods

4.1.3 创建子工程 tingyi-order

4.1.4 案例调整

4.1.4.1 在order模块创建 RestTemplate对象

4.1.4.2 修改OrderController

4.1.4.2 重启并测试

4.2 为什么使用eureka

4.2 Eureka光速入门

4.2.1 创建EurekaServer

4.2.2 调整商品模块

4.2.3 调整订单模块

4.2.4 调整订单模块, 调用商品模块

4.2.4 测试

4.3 Eureka的安全性

4.4 Eureka的高可用

4.4.1 配置以及代码

4.4.2 测试

4.4.3 Eureka的细节


🎈边走、边悟🎈迟早会好

Eureka 是 Netflix 开源的一个服务注册和发现工具,主要用于构建分布式系统中的服务发现机制。它在 Spring Cloud 生态系统中广泛使用,尤其在微服务架构中扮演重要角色。

一、Eureka 主要组件

  1. Eureka Server:

    • 作为服务注册中心,负责管理服务实例的注册和心跳检测。
    • 服务实例在启动时向 Eureka Server 注册,并定期发送心跳以保持注册信息的有效性。
    • Eureka Server 通常部署为集群,确保高可用性和容错性。
  2. Eureka Client:

    • 是注册在 Eureka Server 上的服务实例。
    • 它可以是任何类型的微服务应用程序,在启动时向 Eureka Server 注册并定期发送心跳。
    • Eureka Client 也可以从 Eureka Server 获取其他已注册服务的信息,以实现服务间的调用和负载均衡。

二、工作流程

  1. 服务注册:

    • 服务实例在启动时向 Eureka Server 注册其自身的元数据信息,如 IP 地址、端口号、服务名称等。
  2. 服务心跳:

    • 注册后,服务实例定期向 Eureka Server 发送心跳请求,以表明其仍然活跃。若在一段时间内未收到心跳,Eureka Server 将认为该实例已失效,并将其从注册列表中移除。
  3. 服务发现:

    • 服务调用者(客户端)通过 Eureka Server 查询可用的服务实例列表,以实现服务调用。
    • Eureka Client 缓存这些信息,并定期从 Eureka Server 更新,确保负载均衡和高可用性。
  4. 负载均衡:

    • 客户端根据从 Eureka Server 获取的服务实例列表,实现客户端负载均衡。
    • 常见的负载均衡策略包括轮询、随机选择、加权轮询等。

三、优势

  • 高可用性: Eureka Server 支持集群部署,确保在某些节点故障时系统仍然可用。
  • 自我保护机制: 当 Eureka Server 检测到大量客户端失效时,进入自我保护模式,避免因网络分区等原因误判服务失效。
  • 易扩展性: 新的服务实例可以动态注册和发现,支持弹性扩展。

Eureka 在 Netflix 的微服务架构中得到了广泛应用,并成为 Spring Cloud 的核心组件之一,用于实现服务注册与发现。

四、Eureka-光速入门【重点

4.1 案例准备

4.1.1 创建父工程 tingyi-shop

pom.xml

<properties>
  <maven.compiler.source>1.8</maven.compiler.source>
  <maven.compiler.target>1.8</maven.compiler.target>
</properties>
​
<packaging>pom</packaging>
​
<parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>2.2.8.RELEASE</version>
</parent>
​
<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-dependencies</artifactId>
      <!-- 版本号是按照伦敦地铁站的名字命名的 -->
      <version>Hoxton.SR4</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

4.1.2 创建子工程 tingyi-goods

pom.xml

<dependencies>
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
  </dependency>
</dependencies>

引导类

@SpringBootApplication
public class GoodsApplication {
​
    public static void main(String[] args) {
        SpringApplication.run(GoodsApplication.class, args);
    }
}

application.yml

server:
  port: 9001
#指定服务的名称
spring:
  application:
    name: TINGYI-GOODS

controller编写

@RestController
public class GoodsController {
​
    @RequestMapping("/query")
    public String query() {
        return "查询商品信息!";
    }
}

启动并查看效果

4.1.3 创建子工程 tingyi-order

pom.xml

<dependencies>
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot
评论 38
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值