当前位置:   article > 正文

SpringCloud AliBaBa(四)-Nacos集成gateway实现微服务网关_基于nacos微服务网关开发

基于nacos微服务网关开发
gateway的作用

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

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

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

gateway服务构建

pom.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <parent>
  6. <groupId>com.example</groupId>
  7. <artifactId>NacosCenter</artifactId>
  8. <version>0.0.1-SNAPSHOT</version>
  9. </parent>
  10. <groupId>com.example</groupId>
  11. <artifactId>gateway</artifactId>
  12. <version>0.0.1-SNAPSHOT</version>
  13. <name>gatewayservice</name>
  14. <description>gatewayservice</description>
  15. <properties>
  16. <java.version>8</java.version>
  17. </properties>
  18. <dependencies>
  19. <dependency>
  20. <groupId>com.alibaba.cloud</groupId>
  21. <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
  22. <exclusions>
  23. <!-- 将ribbon排除 -->
  24. <exclusion>
  25. <groupId>org.springframework.cloud</groupId>
  26. <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
  27. </exclusion>
  28. </exclusions>
  29. </dependency>
  30. <!--配置中心-->
  31. <dependency>
  32. <groupId>com.alibaba.cloud</groupId>
  33. <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
  34. </dependency>
  35. <dependency>
  36. <groupId>org.springframework.cloud</groupId>
  37. <artifactId>spring-cloud-starter-bootstrap</artifactId>
  38. <version>3.1.3</version>
  39. </dependency>
  40. <!--负载均衡-->
  41. <dependency>
  42. <groupId>org.springframework.cloud</groupId>
  43. <artifactId>spring-cloud-starter-loadbalancer</artifactId>
  44. </dependency>
  45. <!--Spring Cloud Gateway-->
  46. <dependency>
  47. <groupId>org.springframework.boot</groupId>
  48. <artifactId>spring-boot-starter-webflux</artifactId>
  49. </dependency>
  50. <dependency>
  51. <groupId>org.springframework.cloud</groupId>
  52. <artifactId>spring-cloud-starter-gateway</artifactId>
  53. </dependency>
  54. <dependency>
  55. <groupId>org.springframework.cloud</groupId>
  56. <artifactId>spring-cloud-starter-zipkin</artifactId>
  57. <version>2.2.8.RELEASE</version>
  58. </dependency>
  59. </dependencies>
  60. <build>
  61. <plugins>
  62. <plugin>
  63. <groupId>org.springframework.boot</groupId>
  64. <artifactId>spring-boot-maven-plugin</artifactId>
  65. </plugin>
  66. </plugins>
  67. </build>
  68. </project>
配置文件
  1. spring:
  2. application:
  3. name: gateway-service
  4. cloud:
  5. nacos:
  6. server-addr: localhost:8848
  7. config:
  8. server-addr: localhost:8848
  9. file-extension: properties
  10. #group: devGroup
  11. profiles:
  12. active: dev
  13. zipkin:
  14. base-url: http://localhost:9411/
  15. sender:
  16. type: web
  17. locator:
  18. discovery:
  19. enabled: true
  20. sleuth:
  21. sampler:
  22. probability: 1.0

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

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

启动gateway

gateway以10000端口启动

postman调用10000端口

成功创建订单并扣减库存

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/876427
推荐阅读
相关标签
  

闽ICP备14008679号