当前位置: 首页 > news >正文

SpringCloud Alibaba【三】Gateway

Gateway配置与使用

    • 前言
    • 新建gateway子项目
      • pom.xml
      • 配置文件
      • 启动类
      • 访问接口方式
    • 测试
    • 拓展

前言

在工作中遇到一种情况,一个父项目中有两个子项目。实际使用时,需要外网可以访问,宝信软件只能将一个端口号发布在外网上,所以需要运用网关技术,通过一个端口号访问两个项目。
之前已经试用nacos搭建了注册中心

新建gateway子项目

pom.xml

导入依赖时注意SpringCloudAlibaba与gateway依赖的版本是否对应,否则启动时会报错。

<?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>testmaven32springcloud</artifactId><groupId>com.hzx</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>gateway-project</artifactId><dependencies><!-- 此依赖已经在父项目pom中导入<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId></dependency>--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>2.2.7.RELEASE</version></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId><version>2.2.6.RELEASE</version></dependency></dependencies>
</project>

配置文件

将gateway服务注册到nacos中

server:port: 8901
spring:cloud:nacos:discovery:server-addr: http://192.168.0.248:8848namespace: e6f0f8ad-e4c1-408b-afae-4a2495911ca7gateway:discovery:locator:enabled: trueapplication:name: nacos-gateway

启动类

在启动类中需要加上注解:@EnableDiscoveryClient

@SpringBootApplication
@EnableDiscoveryClient
public class StartGatewayApplication {public static void main(String[] args) throws Exception {SpringApplication.run(StartGatewayApplication.class, args);}
}

以上就是gateway相关的代码,启动成功后就可以使用了。
我在学习的时候没想到这么简单。

访问接口方式

http://ip:网关端口/nacos中注册的服务名称/controller层路径

具体内容见测试部分

测试

上一篇讲nacos的文章中,我创建了两个子项目,分别是:nacos-provider-project、nacos-consumer-project,连同gateway项目启动后,在nacos可以看到注册的服务。
在这里插入图片描述
在nacos-provider-project项目添加接口

    @RequestMapping(value = "/send/provider/{msg}",method = RequestMethod.GET)public String sendMessageProvider(@PathVariable String msg){return "调用生产者端接口,向生产者发送消息:"+msg;}

在nacos-consumer-project项目添加接口

    @RequestMapping(value = "/send/consumer/{msg}",method = RequestMethod.GET)public String sendMessageConsumer(@PathVariable String msg){return "调用消费者端接口,向消费者发送消息:"+msg;}

通过接口文档测试上面的两个接口
首先是直接通过项目本身的端口号访问接口。其中8081和8091分别是两个项目的端口号。
在这里插入图片描述
在这里插入图片描述
然后通过网关端口分别访问两个接口。其中8901为gateway项目端口号,nacos-provider与nacos-consumer分别为两个项目在nacos注册中心的服务名称。
在这里插入图片描述
在这里插入图片描述

拓展

本文中使用的是gateway默认配置网关的方法,开发者还可以自定义配置路由,也可以不通过注册在nacos中的服务名就能访问接口,但这两种方法目前本人还不需要,所以文章中没有写出。

http://www.lryc.cn/news/210066.html

相关文章:

  • Azure - 机器学习实战:快速训练、部署模型
  • C语言十进制转其它进制
  • 网络建设 之 React数据管理
  • 如何隐藏woocommerce 后台header,woocommerce-layout__header
  • 通俗易懂的理解 解耦 概念
  • 全志A40i android7.1 增加Vlan功能
  • NAT技术与代理服务器
  • 关于报错java.util.ConcurrentModificationException: null的源码分析和解决
  • 使用koa搭建服务器(一)
  • echarts的柱状图的重叠和堆叠实现两个柱体的显示和之前的差值显示
  • 泛积木-低代码 使用攻略
  • 红队专题-从零开始VC++C/S远程控制软件RAT-MFC-远控介绍及界面编写
  • 机器学习(五)如何理解机器学习三要素
  • 【计算机视觉】3D视觉
  • 策略路由和路由策略
  • [动态规划] (一) LeetCode 1137.第N个泰波那契数
  • SystemVerilog语法中,在Class中引用层次化信号
  • 磁盘的结构(磁道,扇区,盘面,柱面,物理地址)
  • uni-app集成uni-simple-router,报错:Uncaught ReferenceError: ROUTES is not defined
  • 几个常用的nosql数据库的操作方式
  • 如何使用 nvm-windows 这个工具来管理你电脑上的Node.js版本
  • 公司电脑禁用U盘的方法
  • Elasticsearch 7.X版本常用语法语句
  • Python分享之数学与随机数 (math包,random包)
  • Linux 基本语句_8_C语言_文件控制
  • 博通BCM575系列 RDMA 网卡驱动 bnxt_re 分析(一)
  • ExcelPatternTool 开箱即用的Excel工具包现已发布!
  • Navicat for MySQL 视图创建使用方法
  • 计算机视觉的相机选型
  • 实体店做商城小程序如何