Spring Cloud 微服务网关代理 Zuul| 学习笔记

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
简介: 快速学习 Spring Cloud 微服务网关代理 Zuul。

开发者学堂课程【Spring Cloud 微服务架构设计与开发实战 Spring Cloud 微服务网关代理 Zuul】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/60/detail/1091


Spring Cloud 微服务网关代理 Zuul

 

内容介绍

一、微服务网关 Zuul

二、微服务网关架构

三、Zuul 网关特性

四、微服务网关 Zuul 实战

 

课程概要:学习 Spring Cloud 微服务架构设计与实战课程,本课继续学习微服务架构中非常重要的技术-网关,迭代版本很快,架构体发生巨大变化,接下来我们来学习其原理

 

一、微服务网关 Zuul

对外公开服务特别多,就需要使用网关,网关本身是两个网络边界的通道,严格来说相当于请求转换,即代理服务器。

1.Zuul 是 Netflix 开源的微服务网关工具

Netflix 共享在早期的核心代码,学习资料还可以使用,基于 SpringBoot ,基于 SpringCloud 都可以使用,做识别认证和安全都可以,在吞吐量有很高的提升。

2.可以和 Eureka、Ribbon、Hystrix 等组件配合使用

3.Spring Cloud 对 Zuul 进行了整合与增强

4.Zuul 旨在实现动态路由,监视,弹性和安全性。

5.Zuul 默认使用的 HTTP 客户端是 Apache HTTPClient,

6.也可以使用 RestClient 或 okhttp3.OkHttpClient

7.Zuul 默认会为 Eureka 注册的服务创建动态路由

8.zuul 在2.x甚至3.x的分支中已经引入了 netty

9.github 地址:https://github.com/Netflix/zuul

10.官方文档:https://github.com/Netflix/zuul/wiki

 

二、微服务网关架构

image.png

代理端作为网关后期是挂接微服务集群,监控也是一致的,监控整个后台服务调用,现在的监控可以放到代理商来做,出口对外可以作微服务的代理对外模式。

一个微服务一个数据库,拆开数据库分表问题会越来越复杂,但是可以替换,好处在于数据中心可以替换。

 

三、Zuul 网关特性

1. Authentication and Security-验证和安全

2. 2.Insights and Monitoring-踉踪、统计、监控.

3. Dynamic Routing -动态路由消息到后台集群

4.Stress Testing -压力测试逐级递增

5.Load Shedding -过载保护.

6. Static Response handling -静态消息处理,无需后台集群服务器处理

7.Multiregion Resiliency - 多区域弹性伸缩,跨 AWS 区域路由

请求,分散压力,请求处理更接近调用者。

 

四、微服务网关 zuul 实战

1. 创建 Zuul 代理

(1)首先创建一个 Spring Boot 项目,然后引入 Zuul 相关依赖。

<dependency>

<groupld>org.springframework.cloud</groupld>

<artifactld>spring-cloud-starter-zuul</artifactld>

</dependency>

<dependency>

<groupld>org.springframework.cloud</groupld>

<artifactld>spring-cloud-starter-eureka</artifactld>

</dependency>

(2)添加注解@EnableZuulProxy

(3)Zuul 丙部使用 Ribbon 实现客户端负载均衡。

2.EnableZuulServer

提供为了方便启用微服务代理应用:

EnableZuulServer 只启动代理服务

EnableZuulProxy 简单理解内 @EnableZuuIserve 的增强版

当 zuul 与 Eureka、Ribbon 等组件配合使用时,

使用 @EnableZuulProxy。

新建一个项目

最主要的是添加注解:

package com.alibaba;

import org.springframework.boot.SpringApplication;

@EnableZuulProxy

@SpringBootApplication

Publicclass

JavaSpringCloud000000zuulProxyDemoApplication {

public static void main(String[ ] args ) {

SpringApplication.run(

JavaSpringCloud000000ZuulProxyDemoAppl:

}

}

参考调用端,将端口修改即可:

spring.application.name=FeignClient

server.port=10000

eureka.client.service-url.defaultZone=http://localhost:8761/eureka/eureka.client.fetch-registry=true

eureka.client.register-with-eureka=true

默认链接会拉去所有的服务器设备,可定制

运行结果:

image.png

image.png

访问端口10000,运行结果:

image.png

报错

注意大小写敏感:

image.png

相关文章
|
21天前
|
Dubbo Java 应用服务中间件
Spring Cloud Dubbo:微服务通信的高效解决方案
【10月更文挑战第15天】随着信息技术的发展,微服务架构成为企业应用开发的主流。Spring Cloud Dubbo结合了Dubbo的高性能RPC和Spring Cloud的生态系统,提供高效、稳定的微服务通信解决方案。它支持多种通信协议,具备服务注册与发现、负载均衡及容错机制,简化了服务调用的复杂性,使开发者能更专注于业务逻辑的实现。
45 2
|
24天前
|
Dubbo Java 应用服务中间件
Dubbo学习圣经:从入门到精通 Dubbo3.0 + SpringCloud Alibaba 微服务基础框架
尼恩团队的15大技术圣经,旨在帮助开发者系统化、体系化地掌握核心技术,提升技术实力,从而在面试和工作中脱颖而出。本文介绍了如何使用Dubbo3.0与Spring Cloud Gateway进行整合,解决传统Dubbo架构缺乏HTTP入口的问题,实现高性能的微服务网关。
|
21天前
|
JSON Java 数据格式
【微服务】SpringCloud之Feign远程调用
本文介绍了使用Feign作为HTTP客户端替代RestTemplate进行远程调用的优势及具体使用方法。Feign通过声明式接口简化了HTTP请求的发送,提高了代码的可读性和维护性。文章详细描述了Feign的搭建步骤,包括引入依赖、添加注解、编写FeignClient接口和调用代码,并提供了自定义配置的示例,如修改日志级别等。
48 1
|
24天前
|
人工智能 文字识别 Java
SpringCloud+Python 混合微服务,如何打造AI分布式业务应用的技术底层?
尼恩,一位拥有20年架构经验的老架构师,通过其深厚的架构功力,成功指导了一位9年经验的网易工程师转型为大模型架构师,薪资逆涨50%,年薪近80W。尼恩的指导不仅帮助这位工程师在一年内成为大模型架构师,还让他管理起了10人团队,产品成功应用于多家大中型企业。尼恩因此决定编写《LLM大模型学习圣经》系列,帮助更多人掌握大模型架构,实现职业跃迁。该系列包括《从0到1吃透Transformer技术底座》、《从0到1精通RAG架构》等,旨在系统化、体系化地讲解大模型技术,助力读者实现“offer直提”。此外,尼恩还分享了多个技术圣经,如《NIO圣经》、《Docker圣经》等,帮助读者深入理解核心技术。
SpringCloud+Python 混合微服务,如何打造AI分布式业务应用的技术底层?
|
1月前
|
负载均衡 算法 Nacos
SpringCloud 微服务nacos和eureka
SpringCloud 微服务nacos和eureka
55 0
|
2月前
|
SpringCloudAlibaba API 开发者
新版-SpringCloud+SpringCloud Alibaba
新版-SpringCloud+SpringCloud Alibaba
|
3月前
|
资源调度 Java 调度
Spring Cloud Alibaba 集成分布式定时任务调度功能
定时任务在企业应用中至关重要,常用于异步数据处理、自动化运维等场景。在单体应用中,利用Java的`java.util.Timer`或Spring的`@Scheduled`即可轻松实现。然而,进入微服务架构后,任务可能因多节点并发执行而重复。Spring Cloud Alibaba为此发布了Scheduling模块,提供轻量级、高可用的分布式定时任务解决方案,支持防重复执行、分片运行等功能,并可通过`spring-cloud-starter-alibaba-schedulerx`快速集成。用户可选择基于阿里云SchedulerX托管服务或采用本地开源方案(如ShedLock)
114 1
|
29天前
|
JSON SpringCloudAlibaba Java
Springcloud Alibaba + jdk17+nacos 项目实践
本文基于 `Springcloud Alibaba + JDK17 + Nacos2.x` 介绍了一个微服务项目的搭建过程,包括项目依赖、配置文件、开发实践中的新特性(如文本块、NPE增强、模式匹配)以及常见的问题和解决方案。通过本文,读者可以了解如何高效地搭建和开发微服务项目,并解决一些常见的开发难题。项目代码已上传至 Gitee,欢迎交流学习。
108 1
Springcloud Alibaba + jdk17+nacos 项目实践
|
16天前
|
消息中间件 自然语言处理 Java
知识科普:Spring Cloud Alibaba基本介绍
知识科普:Spring Cloud Alibaba基本介绍
47 2
|
2月前
|
人工智能 前端开发 Java
Spring Cloud Alibaba AI,阿里AI这不得玩一下
🏀闪亮主角: 大家好,我是JavaDog程序狗。今天分享Spring Cloud Alibaba AI,基于Spring AI并提供阿里云通义大模型的Java AI应用。本狗用SpringBoot+uniapp+uview2对接Spring Cloud Alibaba AI,带你打造聊天小AI。 📘故事背景: 🎁获取源码: 关注公众号“JavaDog程序狗”,发送“alibaba-ai”即可获取源码。 🎯主要目标:
71 0
下一篇
无影云桌面