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

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

在这里插入图片描述

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

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

在这里插入图片描述
在这里插入图片描述
这里我再次示例一次子模块的搭建方式,之后的子模块,我将只会给出相关依赖,代码和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

目录结构如下。
在这里插入图片描述
这里需要强调的事,目前是微服务阶段,那么我们既然作为Eureka的客户端在,哪肯定需要Eureka服务启动的哈,此时微服务启动就分顺序了,先Eureka服务,在Zuul服务,错了,你项目就会出现问题了。
在这里插入图片描述
我们访问:loaclhost:1000查看我们的服务是否注册到注册中心去了没有。如果有以下信息,代表这个服务,已经ok了,可以拿着直接用了,对详细配置
在这里插入图片描述
让我们来看看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,开发人员可以定义断路器的行为,从而实现对微服务的故障隔离和恢复。

本系列源码地址:请点击我

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/198716.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

字节跳动开源基于SD1.5的 MagicAnimate 一张照片秒变真人舞蹈视频

从今天起&#xff0c;在社交平台上看到的小姐姐舞蹈短视频很可能就是AI生成的。字节跳动新开源基于SD1.5的MagicAnimate&#xff0c;它只需要一张照片和一组动作&#xff0c;就能生成近似真人的舞蹈视频。 项目地址&#xff1a;MagicAnimate使用入口地址 Ai模型最新工具和软件a…

linux部署前端页面(实战)

Linux基本命令&#xff08;学习笔记&#xff09;零基础入门linux系统运维_linux find exec rm_Z_Xshan的博客-CSDN博客 如果linux不熟可以看我之前写的入门教程 感谢支持&#xff01;&#xff01; 一、服务器 这里去购买云服务器&#xff0c;如果是练习可以用虚拟机&#xff…

一文看懂 Linux 内核,清晰明了

Linux内核预备工作 理解Linux内核最好预备的知识点&#xff1a;懂C语言 懂一点操作系统的知识 熟悉少量相关算法 懂计算机体系结构 Linux内核的特点&#xff1a; 结合了 unix 操作系统的一些基础概念。 Linux内核的任务&#xff1a; 1. 从技术层面讲&#xff0c;内核是硬…

ESP32 LVGL Gui-Guider的移植

使用参考&#xff1a; ESP32系列之LVGL&#xff08;三&#xff09;&#xff1a;Gui-Guider的使用_esp32 lvgl-CSDN博客 1、拷贝文件&#xff1a; 按照上面的文章&#xff0c;使用Gui-Guider软件生成C代码之后&#xff0c;custom和generated是我们要使用到的文件&#xff0c;…

阿里云服务器租赁价格表,预算100元到5000元可选配置

阿里云服务器租用费用&#xff0c;阿里云轻量应用服务器2核2G3M带宽轻量服务器一年87元&#xff0c;2核4G4M带宽轻量服务器一年165元12个月&#xff0c;ECS云服务器e系列2核2G配置3M固定带宽99元一年、2核4G配置365元一年、2核8G配置522元一年&#xff0c;阿里云u1服务器2核4G、…

成为Java开发高手:掌握Spring框架的关键技能-DI

DI相关内容 1.1 setter注入1.1.2 注入引用数据类型1.1.3 注入简单数据类型步骤1:声明属性并提供setter方法步骤2:配置文件中进行注入配置步骤3:运行程序 1.2 构造器注入1.2.2 构造器注入引用数据类型步骤1:删除setter方法并提供构造方法步骤2:配置文件中进行配置构造方式注入步…

最优化理论复习--凸集与凸函数

文章目录 基本概念凸集凸函数下一篇 基本概念 可行点&#xff08;可行解&#xff09;&#xff1a;在规划问题中&#xff0c;满足约束条件的点可行集或可行域&#xff1a;全体可行点组成的集合无约束问题&#xff1a;如果一个问题的可行集是整个空间。 分为三种情况&#xff1…

甘草书店记:6# 2023年10月31日 星期二 「梦想从来不是一夜之间实现的」

甘草书店 今天收到甘草书店第二版装修设计平面图&#xff0c;与理想空间越来越近。 于我而言&#xff0c;每一次世俗意义上所谓的成功都不如文艺作品中表现的那样让人欢腾雀跃。当你用尽120分努力&#xff0c;达到了冲刺满分的实力时&#xff0c;得个优秀的成绩也并不意外。 …

华为云obs在java中的使用

1、申请obs服务。 申请完成后&#xff0c;会获得以下几个配置信息&#xff1a; AK"****************************"; SK"******************************************************"; ENDPOINT"obs.*************************"; BUCKET_NAME&q…

二维码智慧门牌管理系统升级解决方案:优化制牌存疑管理

文章目录 前言一、解决方案关键特点二、解决方案的优势 前言 二维码智慧门牌管理系统在城市管理中发挥着重要作用&#xff0c;然而&#xff0c;制牌审核过程中遇到存疑地址数据是常见问题&#xff0c;需要更有效的处理方法。为此&#xff0c;我们提出了二维码智慧门牌管理系统…

Swift 如何实现自定义 Tab Bar

前言 每个 UI 设计师都喜欢美丽而有动画效果的 Tab Bar。然而&#xff0c;对于开发人员来说&#xff0c;实现这种设计可能是一场噩梦。当然&#xff0c;使用 Apple 的原生 Tab Bar 组件并专注于更有趣的事情&#xff0c;比如业务逻辑的实现&#xff0c;会更容易。但如果我们必…

用金鸣识别实现纸质合同转word的几个解决方案

合同是我们日常生活和工作中经常碰到的文件类型&#xff0c;如果您需要将纸合同转为可编辑的Word文档怎么办呢&#xff1f; 如果是一般无表格的合同比较好处理&#xff0c;一般的OCR软件都能应付&#xff0c;只是识别率高低的问题&#xff08;好的OCR识别率高&#xff0c;后期…

用js自定义一个(v-model)vModel双向绑定函数

vue中的v-model是双向绑定的, 我们自己用JavaScript实现一个双向绑定vModel函数。 // element 元素或者#id,.class,div 得是input标签 // data 对象 // 将要绑定property 对象中的key<input class"vmodel"/>function vModel(element, data, property) {if (…

优雅草蜻蜓I即时通讯·水银版私有化部署之java服务端搭建教程-01

目录 前言1 1 安装 mongodb2 2 安装 redis3 3. 安装jdk3 4 解压 spring-boot-imapi3 5.开始安装 消息队列组件 rocket4 6. 安装推送服务5 7. 安装 message-push5 8. 安装uplooad 服务5 9&#xff1a; 安装nginx 服务7 1.不需要SSL7 2.需要SSL7 五&#xff1a;编译…

LORA概述: 大语言模型的低阶适应

LORA概述: 大语言模型的低阶适应 LORA: 大语言模型的低阶适应前言摘要论文十问实验RoBERTaDeBERTaGPT-2GPT-3 结论代码调用 LORA: 大语言模型的低阶适应 前言 LoRA的核心思想在于优化预训练语言模型的微调过程&#xff0c;通过有效地处理权重矩阵的变化&#xff08;即梯度更新…

常用sql记录

备份一张表 PostgreSQL CREATE TABLE new_table AS SELECT * FROM old_table;-- 下面这个比上面好&#xff0c;这个复制表结构时&#xff0c;会把默认值、约束、注释都复制 CREATE TABLE new_table (LIKE old_table INCLUDING ALL) WITHOUT OIDS; INSERT INTO new_table SELE…

跨网文件摆渡系统:安全、可控的数字传输桥梁

在企业高度信息化的时代&#xff0c;数据的流通与共享已经成为企业、组织乃至个人之间不可或缺的沟通方式。然而&#xff0c;在数据流通的过程中&#xff0c;我们经常会遇到各种难题和挑战&#xff0c;尤其是当涉及到不同网络环境之间的文件传输。这不仅需要保证文件的安全性&a…

09、pytest多种调用方式

官方用例 # content of myivoke.py import sys import pytestclass MyPlugin:def pytest_sessionfinish(self):print("*** test run reporting finishing")if __name__ "__main__":sys.exit(pytest.main(["-qq"],plugins[MyPlugin()]))# conte…

烤鱼纸包鱼外卖配送小程序商城作用是什么

烤鱼、纸包鱼等餐品是聚会、娱乐、餐食等场景中常见的餐品&#xff0c;到店和外送都有较高需求度&#xff0c;对消费者来说需要找到美味的餐厅和快速享受到美食的流程&#xff1b;对商家来说是如何找到更多消费&#xff0c;并且能快速转化和持续复购及相应的管理。 线下竞争激…

第三方支付原理

1.什么是第三方支付 所谓第三方支付&#xff0c;就是一些和各大银行签约、并具备一定实力和信誉保障的第三方独立机构提供的交易支持平台。在通过第三方支付平台的交易中&#xff0c;买方选购商品后&#xff0c;使用第三方平台提供的账户进行货款支付&#xff0c;由第三方通知卖…