在Spring Cloud中使用组件Zuul网关,并注册到Eureka中去

这篇具有很好参考价值的文章主要介绍了在Spring Cloud中使用组件Zuul网关,并注册到Eureka中去。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在上一篇中,我们搭建了Spring Cloud的父子模块,并实现了一个Eureka子模块的启动,可以通过浏览器地址去访问Eureka主页了,相信了解过的童鞋应该看到,主页上并未有任何服务去注册,那么我们就在这篇,使用zuul网关作为第一个注册到Eureka注册中心的服务吧。

在Spring Cloud中使用组件Zuul网关,并注册到Eureka中去,# Spring,spring cloud,eureka

上一篇博文地址:
使用Spring Cloud搭建一个项目框架之父子模块的创建

老样子创建一个子模块zuul的微服务模块:

在Spring Cloud中使用组件Zuul网关,并注册到Eureka中去,# Spring,spring cloud,eureka
在Spring Cloud中使用组件Zuul网关,并注册到Eureka中去,# Spring,spring cloud,eureka
这里我再次示例一次子模块的搭建方式,之后的子模块,我将只会给出相关依赖,代码和Application.yml文件了,还不知道怎么创建父子模块的,请参照本文的上一篇。

什么是zuul?

Spring Cloud Zuul是一个基于Netflix Zuul构建的API网关服务,它提供了一种简单而强大的方式来管理和路由微服务的请求流量。作为一个边缘服务,Zuul可以处理所有进入微服务架构的请求,并提供了一些关键功能,包括动态路由、负载均衡、请求过滤、请求转发等。

以下是Spring Cloud Zuul的一些主要功能:

  • 动态路由:Zuul允许根据请求的URL路径将请求动态路由不到同的微服务实例。这使得在微服务架构中进行服务发现和负载均衡变得更加灵活和可配置。

  • 负载均衡:Zuul可以与服务注册中心(如Eureka)集成,以实现负载均衡和高可用性。它可以根据负载均衡策略将请求分发到多个可用的微服务实例。

  • 请求过滤:Zuul提供了一种机制来拦截和过滤进入微服务的请求。通过定义过滤器,可以对请求进行预处理、鉴权、日志记录等操作,以满足安全性、监控和日志记录等需求。

  • 请求转发:Zuul可以将请求转发到其他微服务或外部服务。这使得在微服务架构中进行服务间通信变得更加简单和统一。

Spring Cloud Zuul是Spring Cloud生态系统中的一个重要组件,它可以帮助开发人员构建强大的微服务架构,并提供了一些关键的功能来管理和保护微服务的请求流量。

在这里提及一下,zuul在Spring Cloud的新的系列中已经逐步被Gateway取代,Gateway提供了更为高级的功能以及性能,如果你使用较为新的版本的Spring Cloud推荐使用Gateway,而不是zuul。

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>springCloud</artifactId>
        <groupId>com.miaow</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>zuul</artifactId>

    <name>zuul</name>
    <!-- FIXME change it to the project's website -->
    <url>http://www.example.com</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>

        <!--网关依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
        </dependency>
        <!--添加eureka客户端-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

    </dependencies>
</project>

之后我们配置相关启动类文件:

@EnableEurekaClient  //作为Eureka的客户端接入进去
@EnableZuulProxy //启用zuul网关
@SpringBootApplication
public class ZuulApplication
{
    public static void main( String[] args )
    {
        SpringApplication.run(ZuulApplication.class);
    }
}

然后新建一个resources文件夹,在旗下建一个application.yml文件。

server:
  port: 2379
spring:
  application:
    name: zuul-demo

#路由前缀
zuul:
  prefix: /api

# eureka客户端注册到Eureka注册中心,切记需要启动eureka服务
eureka:
  client:
    service-url:
      defaultZone: http://localhost:1000/eureka

目录结构如下。
在Spring Cloud中使用组件Zuul网关,并注册到Eureka中去,# Spring,spring cloud,eureka
这里需要强调的事,目前是微服务阶段,那么我们既然作为Eureka的客户端在,哪肯定需要Eureka服务启动的哈,此时微服务启动就分顺序了,先Eureka服务,在Zuul服务,错了,你项目就会出现问题了。
在Spring Cloud中使用组件Zuul网关,并注册到Eureka中去,# Spring,spring cloud,eureka
我们访问:loaclhost:1000查看我们的服务是否注册到注册中心去了没有。如果有以下信息,代表这个服务,已经ok了,可以拿着直接用了,对详细配置
在Spring Cloud中使用组件Zuul网关,并注册到Eureka中去,# Spring,spring cloud,eureka
让我们来看看Spring Cloud的几大核心组件,我们已经初步搭建了哪几个模块了?Spring Cloud的五大核心组件分别如下,我采用勾选的方式代表我们操作到哪一步了!具体的操作,我们将会慢慢的完善。

  • Eureka:Eureka是一个服务注册和发现组件,它提供了服务注册、服务发现和服务治理的功能。通过Eureka,微服务可以自动注册和发现其他微服务,从而实现服务之间的通信和协作。

  • Zuul:Zuul是一个API网关组件,它可以与Eureka集成,提供了对微服务的路由、负载均衡、请求过滤和请求转发的功能。通过Zuul,开发人员可以将所有的微服务请求都通过一个入口点进行管理和保护。

  • Ribbon:Ribbon是一个客户端负载均衡组件,它可以与Eureka集成,实现对微服务实例的负载均衡和故障转移。通过Ribbon,微服务可以自动选择可用的实例,并将请求分发到这些实例上。

  • Feign:Feign是一个声明式的HTTP客户端组件,它可以与Ribbon和Eureka集成,简化微服务之间的HTTP通信。通过Feign,开发人员可以使用注解来定义HTTP请求和响应的格式,从而实现对微服务之间的调用。

  • Hystrix:Hystrix是一个容错和断路器组件,它可以与Ribbon和Feign集成,提供了对微服务的容错和故障保护的功能。通过Hystrix,开发人员可以定义断路器的行为,从而实现对微服务的故障隔离和恢复。

本系列源码地址:请点击我文章来源地址https://www.toymoban.com/news/detail-753540.html

到了这里,关于在Spring Cloud中使用组件Zuul网关,并注册到Eureka中去的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微服务网关:Spring Cloud Zuul 升级 Spring Cloud Gateway 的核心要点

    在routes路由规则中,根据path去匹配,如果匹配中,就使用对应的路由规则进行请求转发 如果无法从routes中匹配,则根据path用“/”去截取第一段作为服务名进行请求转发,转发时,默认将第一段截取调 如果截取的服务名不在注册中心中存在服务,则报错404 在routes路由规则中

    2024年02月07日
    浏览(41)
  • 云原生微服务治理 第四章 Spring Cloud Netflix 服务注册/发现组件Eureka

    第一章 Java线程池技术应用 第二章 CountDownLatch和Semaphone的应用 第三章 Spring Cloud 简介 第四章 Spring Cloud Netflix 之 Eureka 今天我们讲解Spring Cloud微服务的第一代实现:Spring Cloud Netflix Eureka 是 Netflix 公司开发的一款开源的服务注册与发现组件。 Spring Cloud 使用 Spring Boot 思想为 Eur

    2024年02月08日
    浏览(42)
  • Spring Cloud 实战系列之 Zuul 微服务网关搭建及配置

    用mavan搭建也可以。(重要的是后面pom里应该引入那些依赖,application.yml怎么配置) 由于开始构建项目时选择了Eureka Server,所以pom.xml中不需要手动添加依赖了 首先在启动类SpringcloudApplication中添加EurekaServer的注解:@EnableEurekaServer 访问注册中心:按照配置的端口号访问。我这

    2024年03月10日
    浏览(32)
  • Eureka上集成Spring Cloud 微服务网关 gateway

    第一章 Java线程池技术应用 第二章 CountDownLatch和Semaphone的应用 第三章 Spring Cloud 简介 第四章 Spring Cloud Netflix 之 Eureka 第五章 Spring Cloud Netflix 之 Ribbon 第六章 Spring Cloud 之 OpenFeign 第七章 Spring Cloud 之 GateWay API 网关是一个搭建在客户端和微服务之间的服务,我们可以在 API 网关中

    2024年02月08日
    浏览(32)
  • Spring Cloud 之注册中心 Eureka 精讲

    🍓 简介:java系列技术分享(👉持续更新中…🔥) 🍓 初衷:一起学习、一起进步、坚持不懈 🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏 🍓 希望这篇文章对你有所帮助,欢迎点赞 👍 收藏 ⭐留言 📝 🍓 更多文章请点击 Spring Cloud 官网:https://spring.io/proj

    2024年02月12日
    浏览(34)
  • Spring Cloud Eureka:服务注册与发现

    💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! Spring Cloud Eureka是Spring Cloud生态系统中的一个组件,它是用于实现服务注册与发现的服务治理组件。在微服务架构中,服务之间存在复杂的依赖关系,而Spring Cloud Eureka可以帮助解决服务之间相互查找和通信的问题 Eurek

    2024年02月09日
    浏览(37)
  • 【spring cloud学习】3、Eureka Server注册中心

    Eureka本身是Netflix开源的一款注册中心产品,并且Spring Cloud提供了相应的集成封装。选择Eureka作为注册中心实例来讲解是出于以下原因: (1)Eureka在业界的应用十分广泛,整个框架经受住了Netflix严酷生产环境的考验。 (2)除了Eureka注册中心外,Netflix的其他服务治理功能也十

    2024年02月11日
    浏览(34)
  • 【Spring Cloud 三】Eureka服务注册与服务发现

    【Spring Cloud一】微服务基本知识 目前公司项目使用的注册中心主要是Spring Cloud Alibaba的Nacos做的注册中心和配置中心。之前也是对Nacos的基本原理通过手写代码的方式进行了实现。出于对于Eureka的好奇所以就对Spring Cloud Neflix的Eureka进行理论学习和实践。 Eureka是一个 注册发现中

    2024年02月14日
    浏览(33)
  • 【spring cloud学习】2、Eureka服务注册与发现

    一套微服务架构的系统由很多单一职责的服务单元组成,而每个服务单元又有众多运行实例。由于各服务单元颗粒度较小、数量众多,相互之间呈现网状依赖关系,因此需要服务注册中心来统一管理微服务实例,维护各服务实例的健康状态。 从宏观角度,微服务架构下的系统

    2024年02月10日
    浏览(37)
  • 【Spring Cloud】深入理解 Eureka 注册中心的原理、服务的注册与发现

    在微服务架构中,服务的注册与发现是至关重要的一环。为了实现这一目标,Eureka 注册中心应运而生。在本篇文章中,我们将深入理解 Eureka 注册中心的原理,以及探讨服务的注册与发现机制。 在微服务的协作中,服务之间的远程调用是常见的需求。然而,使用传统的 Rest

    2024年02月08日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包