前言:本章将继续上一章Spring Cloud微服务,本章主要内容是API 网关,相关代码将延续上一章,如需了解请参考:Spring Cloud 微服务一:Consul注册中心

  • Spring cloud zuul概览
  • zuul 是netflix开源的一个API Gateway 服务器, 本质上是一个web servlet应用。Zuul 在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。Spring对zuul进行了整合,使开发者能够很方便地使用zuul

  • 集成zuul
    • 延续上一个项目,新建module api-gateway-zuul pom中添加zuul的依赖

        <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-zuul</artifactId>
      </dependency>
    •  在启动类中添加@EnableZuulProxy注解,启用zuul
      @SpringBootApplication
      @EnableZuulProxy
      public class ApiGatewayApplication {
      public static void main(String[] args) {
      SpringApplication.run(ApiGatewayApplication.class, args);
      }
      }
    • 修改配置文件application.yml,设置相关路由,url为上一章中consul消费者的地址
      server:
      port: 8080
      spring:
      application:
      name: api-gateway-zuul
      zuul:
      routes:
      user:
      path: /user/**
      url: http://localhost:10080/
      debug: true
    • 分别启动user-service,user-consumer,api-gateway-zuul,访问 http://localhost:8080/user/users, 能够正常返回信息,说明路由已成功
    • 服务化,使用url配置路由在微服务场景下非常不方便,为此,zuul支持另外一种配置:使用serviceId
      server:
      port: 8080
      spring:
      application:
      name: api-gateway-zuul
      cloud:
      consul:
      host: localhost
      port: 8500
      discovery:
      register: false
      zuul:
      routes:
      user:
      path: /user/**
      serviceId: user-service
      debug: true

      使用serviceId替换url,值为服务提供者Id

    • 重启api-gateway-zuul,访问 http://localhost:8080/user/all, 能够正常返回信息,说明路由已成功

Spring Cloud 微服务二:API网关spring cloud zuul的更多相关文章

  1. Spring Cloud 微服务四:熔断器Spring cloud hystrix

    前言:在微服务架构中,一般都是进程间通信,有可能调用链都比较长,当有底层某服务出现问题时,比如宕机,会导致调用方的服务失败,这样就会发生一连串的反映,造成系统资源被阻塞,最终可能造成雪崩.在sprin ...

  2. 微服务&#183;API网关

    阅文时长 | 3.52分钟 字数统计 | 1232字符 主要内容 | 1.什么是API网关 2.微服务中的API网关 3.几种部署策略 『微服务·API网关』 编写人 | SCscHero 编写时间 ...

  3. .net core 微服务之Api网关(Api Gateway)

    原文:.net core 微服务之Api网关(Api Gateway) 微服务网关目录 1. 微服务引子 2.使用Nginx作为api网关 3.自创api网关(重复轮子) 3.1.构建初始化 3.2. ...

  4. SOA与ESB,微服务与API网关

    SOA与ESB,微服务与API网关 SOA: ESB: 微服务: API网关: 参考资料: 1.漫画微服务,http://www.sohu.com/a/221400925_100039689 2.SO ...

  5. 一站式入口服务|爱奇艺微服务平台 API 网关实战 原创 弹性计算团队 爱奇艺技术产品团队

    一站式入口服务|爱奇艺微服务平台 API 网关实战 原创 弹性计算团队 爱奇艺技术产品团队

  6. 【spring colud】spring cloud微服务项目搭建【spring boot2.0】

    spring cloud微服务项目搭建 =================================== 示例版本: 1.spring boot 2.0版本 2.开发工具 IntellJ IDE ...

  7. 利用 Maven 构造 Spring Cloud 微服务架构 模块使用 spring Boot构建

    采用Maven 聚合工程搭建 Spring Cloud 使用工具: IntelliJ IDEA    版本: 2019.2.2 maven             版本: 3.6.0 JDK      ...

  8. Net分布式系统之六:微服务之API网关

    本人建立了个人技术.工作经验的分享微信号,计划后续公众号同步更新分享,比在此更多具体.欢迎有兴趣的同学一起加入相互学习.基于上篇微服务架构分享,今天分享其中一个重要的基础组件“API网关”. 一.引言 ...

  9. 基于spring-cloud的微服务(4)API网关zuul

    API网关是微服务架构中的很重要的一个部分,内部有多个不同的服务提供给外部来使用,API网关可以对外做统一的入口,也可以在网关上做协议转换,权限控制和请求统计和限流等其他的工作 spring-clou ...

随机推荐

  1. iOS8使用TestFlight进行内部测试功能尝鲜

    iOS8发布了有一段时间了,我们的策划很新潮的速度给升级到iOS8了.于是XCode5不支持了,只好从MacOS 10.8升级到10.9,再升级到10.9.5,再下载XCode6安装…… 然后前两天上 ...

  2. VBA 时间相关的函数

    DateSerial DateADD Datediff http://www.yiibai.com/vba/vba_datediff_function.html https://www.techont ...

  3. 使用MySQL正则表达式 __MySQL必知必会

    正则表达式作用是匹配方本,将一个模式(正则表达式)与一个文本串进行比较. MySQL用WHERE子句对正则表达式提供了初步的支持,允许你指定用正则表达式过滤SELECT检索出的数据. MySQL仅支持 ...

  4. ylb:事务

    ylbtech_sqlserver create database bank go use bank go create table users ( uid ,), uname ) not null, ...

  5. Spring注释事务失效及解决办法

    如果带上事务,那么用annotation方式的事务注解和bean配置,事务会失效,要将service bean配置到xml文件中才行  在主容器中(applicationContext.xml),将C ...

  6. Java学习之自动装箱和自动拆箱源码分析

    自动装箱(boxing)和自动拆箱(unboxing) 首先了解下Java的四类八种基本数据类型   基本类型 占用空间(Byte) 表示范围 包装器类型 boolean 1/8 true|false ...

  7. [PWA] Customize the Splash Screen of a PWA built with create-react-app

    Android displays a splash screen for PWAs based on the icons and names you provide, but iOS just dis ...

  8. 【MVC4】依頼注入

    ※本文参照<ASP.NET MVC 4高级编程>

  9. DB门面,查询构建器,Eloquent ORM三者的CURD

    一.DB门面 1.insert DB::insert('insert into table(`name`) value(?)', ['test']); 2.update DB::update('upd ...

  10. MySQL 事件EVENT

    一.用途用于某一时间执行一个事件或周期性执行一个事件. 二.语法CREATE [DEFINER = { user | CURRENT_USER }] EVENT [IF NOT EXISTS] eve ...