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

简介: 快速学习 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

相关文章
|
9月前
|
算法 Java 微服务
【SpringCloud(1)】初识微服务架构:创建一个简单的微服务;java与Spring与微服务;初入RestTemplate
微服务架构是What?? 微服务架构是一种架构模式,它提出将单一应用程序划分为一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。 每个服务允许在其独立的进程中,服务于服务间采用轻量级的通信机制互相协作(通常是Http协议的RESTful API或RPC协议)。 每个服务都围绕着具体业务进行构建,并且能够被独立的部署到生产环境、类生产环境等。另外应当尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据上下文,选择合适的语言、工具对其进行构建
718 126
|
9月前
|
API 微服务
阿里云微服务引擎 MSE 及 API 网关 2025 年 9 月产品动态
阿里云微服务引擎 MSE 及 API 网关 2025 年 9 月产品动态。
1001 70
|
9月前
|
负载均衡 算法 Java
【SpringCloud(2)】微服务注册中心:Eureka、Zookeeper;CAP分析;服务注册与服务发现;单机/集群部署Eureka;连接注册中心
1. 什么是服务治理? SpringCloud封装了Netfix开发的Eureka模块来实现服务治理 在传统pc的远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务于服务之间依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册
481 0
|
10月前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 API 网关 2025 年 9 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要。
645 142
|
10月前
|
监控 Java 数据库
从零学 Dropwizard:手把手搭轻量 Java 微服务,告别 Spring 臃肿
Dropwizard 整合 Jetty、Jersey 等成熟组件,开箱即用,无需复杂配置。轻量高效,启动快,资源占用少,内置监控、健康检查与安全防护,搭配 Docker 部署便捷,是构建生产级 Java 微服务的极简利器。
1013 117
|
9月前
|
监控 Cloud Native Java
Spring Boot 3.x 微服务架构实战指南
🌟蒋星熠Jaxonic,技术宇宙中的星际旅人。深耕Spring Boot 3.x与微服务架构,探索云原生、性能优化与高可用系统设计。以代码为笔,在二进制星河中谱写极客诗篇。关注我,共赴技术星辰大海!(238字)
1379 2
Spring Boot 3.x 微服务架构实战指南
|
9月前
|
负载均衡 Java API
《深入理解Spring》Spring Cloud 构建分布式系统的微服务全家桶
Spring Cloud为微服务架构提供一站式解决方案,涵盖服务注册、配置管理、负载均衡、熔断限流等核心功能,助力开发者构建高可用、易扩展的分布式系统,并持续向云原生演进。
|
10月前
|
监控 安全 Java
Spring Cloud 微服务治理技术详解与实践指南
本文档全面介绍 Spring Cloud 微服务治理框架的核心组件、架构设计和实践应用。作为 Spring 生态系统中构建分布式系统的标准工具箱,Spring Cloud 提供了一套完整的微服务解决方案,涵盖服务发现、配置管理、负载均衡、熔断器等关键功能。本文将深入探讨其核心组件的工作原理、集成方式以及在实际项目中的最佳实践,帮助开发者构建高可用、可扩展的分布式系统。
589 1
|
负载均衡 Dubbo Java
Spring Cloud Alibaba与Spring Cloud区别和联系?
Spring Cloud Alibaba与Spring Cloud区别和联系?
|
Java Nacos Sentinel
Spring Cloud Alibaba:一站式微服务解决方案
Spring Cloud Alibaba(简称SCA) 是一个基于 Spring Cloud 构建的开源微服务框架,专为解决分布式系统中的服务治理、配置管理、服务发现、消息总线等问题而设计。
3342 13
Spring Cloud Alibaba:一站式微服务解决方案