springcloud篇】七. Zuul服务网关


中国加油,武汉加油!

篇幅较长,请配合目录观看

项目准备

  1. 本案例基于springcloud篇】六. Hystrix熔断器

1. Zuul简介

服务网关是微服务架构中一个不可或缺的部分。通过服务网关统一向外系统提供REST API的过程中,除了具备服务路由均衡负载功能之外,它还具备了权限控制(鉴权)等功能。Spring Cloud Netflix中的Zuul就担任了这样的一个角色,为微服务架构提供了前门保护的作用,同时将权限控制这些较重的非业务逻辑内容迁移到服务路由层面,使得服务集群主体能够具备更高的可复用性和可测试性。

2. 相关链接

  1. 官网:https://github.com/Netflix/zuul

3. zuul加入后的架构

在这里插入图片描述

4. 快速入门

4.1 新建springcloud-zuul-8484(module-maven)

4.2 导包

<?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>nz1904-springcloud</artifactId>
        <groupId>com.wpj</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>springcloud-zuul-8484</artifactId>
    <dependencies>
        <!--导入Zuul的依赖  重点的依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
        </dependency>
        <!--测试相关-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>

4.3 编写启动类

package com.wpj;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;

@SpringBootApplication
@EnableZuulProxy // 开启Zuul的网关功能
public class ZuulApplication8484 {
    public static void main(String[] args) {
        SpringApplication.run(ZuulApplication8484.class, args);
    }
}

4.4 编写application.properties

# 服务端口
server.port=8484

zuul.routes.springcloud-consumer.path=/consumer/**
zuul.routes.springcloud-consumer.url=http://127.0.0.1:8282

4.5 启动7001,8181,8282,8484访问测试

在这里插入图片描述

5. 面写服务的路由

5.1 导依赖

<!--导入eureka客户端-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

5.2 修改程序入口

package com.wpj;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;

@SpringBootApplication
@EnableZuulProxy // 开启Zuul的网关功能
@EnableEurekaClient
public class ZuulApplication8484 {
    public static void main(String[] args) {
        SpringApplication.run(ZuulApplication8484.class, args);
    }
}

5.3 修改application.properties

server.port=8484

zuul.routes.springcloud-consumer.path=/consumer/**
zuul.routes.springcloud-consumer.url=springcloud-consumer

eureka.client.service-url.defaultZone=http://eureka.7001.com:7001/eureka
eureka.instance.prefer-ip-address=true
eureka.instance.ip-address=127.0.0.1
eureka.instance.instance-id=springcloud-zuul-8484

5.4 重启8484程序入口

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. Spring Cloud是基于Spring Framework的微服务框架,它提供了一系列开箱即用的工具和组件,用于构建分布式系统中的常见模式,如服务发现、负载均衡、断路器、配置管理等。 2. Eureka是Spring Cloud中的一个服务发现组件,它允许微服务应用程序注册自己以及发现其他注册的应用程序实例。在Eureka中,服务提供者会向Eureka服务器注册自己的信息,而服务消费者则通过Eureka服务器获得可用的服务列表。 3. Ribbon是Spring Cloud中的一个负载均衡组件,它可以根据一定的负载均衡策略,将客户端的请求分发到多个服务提供者之间,从而提高系统的可用性和性能。 4. Feign是Spring Cloud中的一个声明式HTTP客户端,它通过注解的方式,定义了REST API的接口,Feign会根据这些接口定义生成具体的HTTP请求代码,从而简化了微服务之间的调用。 5. Zuul是Spring Cloud中的一个API网关组件,它提供了一系列的过滤器来实现请求的路由、过滤和转发等功能,可以有效地对外部请求进行管理和控制。 6. Hystrix是Spring Cloud中的一个容错框架,它可以在微服务之间添加断路器,当某个服务出现故障时,Hystrix可以快速地切换到备用方案,从而保证整个系统的稳定性和可用性。 7. Turbine是Spring Cloud中的一个聚合监控组件,它可以将多个Hystrix Dashboard的数据聚合起来,从而方便开发人员进行统一的监控和分析。 8. Config是Spring Cloud中的一个配置管理组件,它可以将应用程序的配置信息集中管理,从而可以实现对分布式系统中各个微服务的配置进行集中管理。 9. Sleuth是Spring Cloud中的一个分布式跟踪组件,它可以用于监控和跟踪微服务之间的调用关系,从而方便开发人员进行故障排查和性能优化。 10. Bus是Spring Cloud中的一个事件总线组件,它可以用于实现微服务之间的事件传递和状态同步,从而方便开发人员进行系统的监控和管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值