SpringCloud AliBaBa(四)-Nacos集成gateway实现微服务网关

gateway的作用

1.权限控制:网关作为微服务入口,需要校验用户是是否有请求资格,如果没有则进行拦截。

2.路由和负载均衡:一切请求都必须先经过 gateway,但网关不处理业务,而是根据某种规则,把请求转发到某个微服务,这个过程叫做路由。当然路由的目标服务有多个时,还需要做负载均衡。

3.限流:当请求流量过高时,在网关中按照下流的微服务能够接受的速度来放行请求,避免服务压力过大。

gateway服务构建

pom.xml

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.example</groupId>
        <artifactId>NacosCenter</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <groupId>com.example</groupId>
    <artifactId>gateway</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>gatewayservice</name>
    <description>gatewayservice</description>
    <properties>
        <java.version>8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <exclusions>
                <!-- 将ribbon排除 -->
                <exclusion>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!--配置中心-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
            <version>3.1.3</version>
        </dependency>
        <!--负载均衡-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
        </dependency>
        <!--Spring Cloud Gateway-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-webflux</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zipkin</artifactId>
            <version>2.2.8.RELEASE</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>
配置文件
spring:
  application:
    name: gateway-service
  cloud:
    nacos:
      server-addr: localhost:8848
    config:
      server-addr: localhost:8848
      file-extension: properties
      #group: devGroup
  profiles:
    active: dev
    
  zipkin:
    base-url: http://localhost:9411/
    sender:
      type: web
    locator:
      discovery:  
        enabled: true
  sleuth:
    sampler:
      probability: 1.0

读取Nacos的gateway-service-dev.properties文件

根据路径进行断言,将/order/**的服务全部路由只order-service服务上.默认使用轮询

启动gateway

gateway以10000端口启动

postman调用10000端口

成功创建订单并扣减库存

gateway成功对order/**请求进行路由.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要想让 Spring Cloud Starter Alibaba Nacos Config 启动,应该在你的项目中正确地配置Nacos服务器的地址,以及相应的Nacos配置文件名称,然后再把 Spring Cloud Starter Alibaba Nacos Config 添加到项目的依赖中。 ### 回答2: Gateway导入spring-cloud-starter-alibaba-nacos-config启动不了可能有以下几个可能引起的原因。 首先,可能是由于没有正确配置Nacos的相关信息导致无法启动。要使用Nacos作为配置中心,需要在配置文件中正确配置Nacos的相关信息,包括Nacos配置中心的地址、命名空间、组等信息。如果这些信息配置不正确或者缺失,Gateway将无法连接到Nacos,并因此无法启动成功。 其次,可能是版本兼容性问题导致的启动失败。Spring Cloud Gatewayspring-cloud-starter-alibaba-nacos-config有不同的版本发布,如果版本不兼容会导致启动失败。建议查看Spring Cloud Gatewayspring-cloud-starter-alibaba-nacos-config的版本兼容性列表,并确保使用兼容的版本。 另外,也可能是由于依赖引入错误导致无法启动。在pom.xml文件中,需要正确引入spring-cloud-starter-alibaba-nacos-config的依赖项,包括正确的groupId、artifactId和version等。如果依赖引入错误或者缺失,Gateway将无法找到相应的类和资源,并因此无法启动成功。 最后,还可能是由于其他配置错误或者环境问题导致的启动失败。例如,可能是网路不可达、Nacos服务异常等。建议检查配置文件和相关环境是否正确,并尝试重启Nacos服务和Gateway服务来解决问题。 总之,要解决Gateway导入spring-cloud-starter-alibaba-nacos-config无法启动的问题,需要仔细检查配置、引入依赖和环境等方面是否正确,并确保版本兼容性。另外,可以查看启动日志或者运行调试工具来获取更多详细的错误信息,从而定位并解决问题。 ### 回答3: 当启动gateway项目时,使用了spring-cloud-starter-alibaba-nacos-config依赖,但却遇到了启动问题。 首先,需要检查是否在项目的pom.xml文件中正确地引入了spring-cloud-starter-alibaba-nacos-config依赖。可以参考官方文档或其他可靠资源,确保依赖的版本和配置正确无误。 其次,需要确认gateway的配置文件中是否正确地配置了Nacos作为配置中心。可以通过检查application.yml文件(或其他相关配置文件)中的配置信息,确保Nacos的相关配置项正确。 另外,还需要检查网关的启动日志,查找可能存在的错误信息。启动日志可能会给出更多的线索,帮助我们找到问题所在。 此外,还要确认Nacos配置中心中是否正确地配置了网关的相关配置。可以登录Nacos控制台,查看与网关相关的配置项是否正确,并确保网关项目可以正确从Nacos配置中心获取配置信息。 最后,如果以上步骤都没有解决问题,可以考虑向开发社区或论坛寻求帮助。在提问时,提供更多的详细信息(如错误日志、配置文件内容等),有助于其他开发者更准确地理解和解决问题。 总之,解决启动问题需要逐一排查可能存在的原因,包括依赖、配置和日志等方面,并参考文档和其他可靠资源来确保正确性。如果自己无法解决,可以向开发社区寻求帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值