特别详细的Spring Cloud 系列教程2:微服务网关gateway的启动

news2024/11/28 6:38:46

继上一篇:特别详细的Spring Cloud 系列教程1:服务注册中心Eureka的启动

在比较多的教程和书籍里,spring cloud的微服务网关用的Zuul。然而,zuul已经不被官方提倡,现在提倡用的是spring cloud gateway。因为gateway的整体性能表现比zuul要好。

旧版本zuul用的是servelt容器的阻塞式IO,gateway用的是webflux的响应式编程框架,从性能的角度来说,zuul不如gateway。zuul 2.0版本也换成了响应式编程框架,但是spring cloud官方版本中并没有集成zuul2.0,而是使用了spring cloud gateway。

server:
  port: 8888
spring:
  application:
    name: api-gateway
  cloud:
    gateway:
      discovery:
        locator:
          lower-case-service-id: true
      routes:
        - id: url-proxy-1 #我们自定义的路由 ID,保持唯一
          uri: lb://producer #目标服务地址,(lb代表从注册中心获取服务),后面接的就是你需要转发到的服务名称
          predicates:
#  符合这个断言的路径会转发到uri的地址  path:匹配类型是url地址匹配  /buy,匹配值,
#  当访问地址http://localhost:8080/buy/1.jsp时,会路由到上游地址lb://producer/1.jsp。
            - Path=/buy/**

gateway同时也作为一个服务注册到eureka server中。

eureka:
  client:
    registerWithEureka: true #服务注册开关
    fetchRegistry: true #服务发现开关
    serviceUrl: #Eureka服务端进行交互的地址,多个中间用逗号分隔,EUREKA_SERVER是我们设置的属性名,冒号:代表如果找不到属性,则后面的内容为默认值
      defaultZone: ${EUREKA_SERVER:http://localhost:8761/eureka/}
  instance:
    prefer-ip-address:  true  #将自己的ip地址注册到Eureka服务中
    ip-address: ${IP_ADDRESS:127.0.0.1}
    instance-id: ${spring.application.name}:${server.port} #指定实例id

启动gateway

 网关服务已经在服务注册中心出现了。

还记得前面那个producer服务,现在我们请求一下网关试试,看看请求能不能够转发到producer服务上去。

浏览器访问:http://localhost:8888/buy/goods

producer的业务代码:

	@GetMapping("goods")
	public String generate(){
		return "goods from { producer }";
	}

如果同一个服务名有多个服务注册,gateway默认会用轮询算法实现负载均衡,实际上是因为eureka client就引入了ribbon。

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

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

相关文章

安达发|五金加工业生产计划与排产常见问题及解决方法

五金加工业生产计划与排产是确保制造流程顺畅、高效的关键。在实际操作中,企业可能会遇到多种问题,影响生产效率和产品质量。以下是一些常见问题及其解决方法: 1. 需求预测不准确: - 建立更为精确的需求预测模型,结…

uni-app项目创建方式

原生小程序与uni-app的区别 创建uni-app的方式 1.通过HBuilderX创建 2.通过命令行创建 vue3ts版:npx degit dcloudio/uni-preset-vue#vite-ts 项目名称 用vscode开发uni-app项目 安装命令:npm i -D types/wechat-miniprogram uni-helper/uni-app-typ…

软件设计师-基础知识科目-数据结构3

三、 数据结构: 时间复杂度: 背复杂度对应的代码。Tips:时间复杂度估算看最内层循环,如若没有循环和递归则为O(1)。 空间复杂度: 需要单独空间存储数据时使用。考点:非递归的空间…

希亦、石头、添可洗地机哪个更好用?资深家电测评师多角度横评

作为一个测评了许多洗地机的家电测评师,有很多人问我,他想入手一款适合自己的家用洗地机,不知道怎么购买到自己合适的,结果自己跑去搜索后发现为什么有的洗地机几百块钱就能入手,而有的又得几千元,买贵的怕…

CSS实现热门创作者排行榜(毛玻璃效果)

CSS实现热门创作者排行榜&#xff08;毛玻璃效果&#xff09; 效果展示 CSS 知识点 CSS 基础知识回顾filter 属性运用回顾 整体页面布局实现 <div class"container"><h3>Popular Creator Rank List</h3><!-- 用户列表容器 --><div cl…

NetSuite Saved Search-当前库存快照查询报表(二)

之前第一篇文章我们说明了&#xff0c;如何利用Saved Search来制作一个能够显示批次物料与非批次物料的Lot信息以及On Hand在手数量的“当前库存快照查询报表”&#xff0c;但是当用户提出“我们能否再加上批次物料的效期”需求时&#xff0c;我们原有的Saved Search并不能达到…

k8s知识

k8s是用于容器编排和管理的&#xff0c;docker或者ctr是k8s的运行时&#xff0c;k8s通过容器运行时来启动容器&#xff0c;容器启动需要镜像&#xff0c;镜像可以用docker构建&#xff0c;dockerfile就是用于自定义如何构建镜像&#xff0c;所以上面那套流水线就是先用dockerfi…

苍穹外卖Day10——总结10

前期文章 文章标题地址苍穹外卖Day01——总结1https://lushimeng.blog.csdn.net/article/details/135466359苍穹外卖Day02——总结2https://lushimeng.blog.csdn.net/article/details/135484126苍穹外卖Day03——总结3https://blog.csdn.net/qq_43751200/article/details/1363…

突破编程_前端_SVG(基础元素介绍)

1 rect 矩形 在 SVG 中&#xff0c;<rect> 元素用于创建圆形。 &#xff08;1&#xff09;基本语法 <rectx"x坐标"y"y坐标"width"宽度"height"高度"rx"可选&#xff1a;圆角x半径"ry"可选&#xff1a;圆角…

.net框架和c#程序设计第二次测试

一、实验内容 1、设计一个用户登录页面webform1.aspx&#xff0c;效果如下图所示&#xff1a; 2、点击webform1.aspx中“还未注册”连接进入register.aspx&#xff0c;注册页面效果如下图所示&#xff1a;点击用户注册信息到usershow.aspx页面&#xff0c;并显示注册的用户信息…

蓝牙学习十(扫描)

一、简介 从之前的文章中我们知道&#xff0c;蓝牙GAP层定义了四种角色&#xff0c;广播者&#xff08;Broadcaster&#xff09;、观察者&#xff08;Observer&#xff09;、外围设备&#xff08;Peripheral&#xff09;、中央设备&#xff08;Central&#xff09;。 之前的学习…

什么是LPO?

近年来&#xff0c;光通信产业的发展势头很猛。 在5G、宽带中国、东数西算等国家战略的持续刺激下&#xff0c;国内光通信技术取得了巨大突破&#xff0c;光基础设施也有了质的飞跃。 特别是今年&#xff0c;AIGC大模型爆火&#xff0c;智算和超算崛起&#xff0c;更是带动了…

VueDraggablePlus 支持 Vue2 和 Vue3 的拖拽组件

官网&#xff1a;https://alfred-skyblue.github.io/vue-draggable-plus/

Day 34:贪心 LeedCode 1005.K次取反后最大化的数组和 134. 加油站 135. 分发糖果

1005. K 次取反后最大化的数组和 给你一个整数数组 nums 和一个整数 k &#xff0c;按以下方法修改该数组&#xff1a; 选择某个下标 i 并将 nums[i] 替换为 -nums[i] 。 重复这个过程恰好 k 次。可以多次选择同一个下标 i 。 以这种方式修改数组后&#xff0c;返回数组 可…

rac数据库默认网关不通导致集群异常

集群CSSD进程reconfiguration完成&#xff0c;显示2个节点都在线。但ora.net1.network服务启动失败&#xff0c;且有依赖关系的资源随后启动失败并且已经达到上限。 查看两个节点的网络信息&#xff0c;发现两个节点的默认网关是不一致的。 修改故障节点网关 在RAC中&#xff0…

图表分析网页模版大数据可视化大屏电子沙盘合集

图表分析网页模版 大数据可视化大屏电子沙盘合集&#xff0c;项目基于html/css/js&#xff0c;包含行业&#xff1a; 智慧政务 智慧社区 金融行业 智慧交通 智慧门店 智慧大厅 智慧物流 智慧医疗 通用模板 大数据分析平台 项目包含功能 (部分)&am…

MongoDB快照(LVM)业务场景应用实战

MongoDB和LVM快照概述 MongoDB的重要性&#xff1a;MongoDB支持的灵活的文档模型&#xff0c;使其成为处理大量分散数据的理想选择&#xff0c;特别是在需要快速迭代和频繁更改数据结构的应用中。 LVM&#xff08;逻辑卷管理&#xff09;快照技术基本概念&#xff1a;LVM允许…

基于springboot+vue+Mysql的滴答拍摄影项目

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

vue3前端加载动画 lottie-web 的简单使用案例

什么是 Lottie Lottie 是 Airbnb 发布的一款开源动画库&#xff0c;它适用于 Android、iOS、Web 和 Windows 的库。 它提供了一套从设计师使用 AE&#xff08;Adobe After Effects&#xff09;到各端开发者实现动画的工具流。 UED 提供动画 json 文件即可&#xff0c; 开发者就…

Disk Drill Enterprise for Mac v5.5.1515数据恢复软件中文版

Disk Drill 是 Mac 操作系统固有的Mac数据恢复软件&#xff1a;使用 Recovery Vault 轻松保护文件免遭意外删除&#xff0c;并从 Mac 磁盘恢复丢失的数据。支持大多数存储设备&#xff0c;文件类型和文件系统。 软件下载&#xff1a;Disk Drill Enterprise for Mac v5.5.1515激…