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

网站建设 域名业务 邮箱电商网络销售是做什么

网站建设 域名业务 邮箱,电商网络销售是做什么,电子书资源wordpress主题,外贸网站怎么做效果好SpringCloudNacosGatewaySpringBoot整合GatewayNacos一. 环境准备1. 版本环境2. 服务环境二. 实战1.创建用户服务2.创建订单服务3.创建网关服务4.测试三. 避坑指南问题1--503问题问题2--网关服务启动报错SpringBoot整合GatewayNacos 本篇文章只演示通过gateway网关服务访问其他…

SpringCloud+Nacos+Gateway

    • SpringBoot整合Gateway+Nacos
      • 一. 环境准备
        • 1. 版本环境
        • 2. 服务环境
      • 二. 实战
        • 1.创建用户服务
        • 2.创建订单服务
        • 3.创建网关服务
        • 4.测试
      • 三. 避坑指南
        • 问题1--503问题
        • 问题2--网关服务启动报错


SpringBoot整合Gateway+Nacos

本篇文章只演示通过gateway网关服务访问其他服务,不对gateway的其他功能做演示

一. 环境准备

1. 版本环境

  • Jdk: <java.version>1.8</java.version>
  • SpringBoot: <version>2.4.2</version>
  • SpringCloud: <spring.cloud.version>2020.0.1</spring.cloud.version>
  • SpringCloudAlibaba: <spring-cloud-alibaba.version>2021.1</spring-cloud-alibaba.version>

以下是项目中pom配置,可拿来直接使用

1. 独立订单/用户服务pom文件

<?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>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.4.2</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.scg</groupId><artifactId>spring-cloud-order-center</artifactId><version>0.0.1-SNAPSHOT</version><name>spring-cloud-order-center</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version><spring.cloud.version>2020.0.1</spring.cloud.version><spring-cloud-alibaba.version>2021.1</spring-cloud-alibaba.version></properties><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring.cloud.version}</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring-cloud-alibaba.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.24</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

2. 独立网关服务pom文件

<?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>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.4.2</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.scg</groupId><artifactId>spring-cloud-nacos</artifactId><version>0.0.1-SNAPSHOT</version><name>spring-cloud-gateway</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version><spring.cloud.version>2020.0.1</spring.cloud.version><spring-cloud-alibaba.version>2021.1</spring-cloud-alibaba.version></properties><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring.cloud.version}</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring-cloud-alibaba.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency><!--得不加上这个配置,不然会报503--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-loadbalancer</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>

2. 服务环境

本节使用一个简单的案例来演示Spring Cloud Gateway的使用方法,首先我们准备三个SpringBoo应用:

  • spring-cloud-user-center : 独立用户服务
  • spring-cloud-order-center : 独立订单服务
  • spring-cloud-gateway: 独立的网关服务

二. 实战

1.创建用户服务

  1. 引入相关依赖
        <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>
  1. yml配置
server:port: 8085spring:application:name: spring-cloud-user-centercloud:nacos:discovery:server-addr: 127.0.0.1:8848ip: 127.0.0.1
management:endpoints:web:exposure:include: "*"
  1. 编写测试类
/*** @author gf* @date 2023/2/14*/
@Slf4j
@RestController
public class UserController {@RequestMapping("/user")public String user(){log.info("hello Mr gateway,this is user server");return "hello Mr gateway,this is user server";}
}

由于我们要将服务注册倒注册中心,所以我们在以内nacos依赖后要在启动类上添加@EnableDiscoveryClient注解

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

2.创建订单服务

创建订单服务和创建用户服务的过程一直,我们可以在测试类上做些改变以区分后面的调用
订单服务测试类

@Slf4j
@RestController
public class OrderController {@RequestMapping("/order")public String getOrder(){log.info("hello Mr gateway,this is order server");return "hello Mr gateway,this is order server";}
}

3.创建网关服务

  1. 引入相关依赖
<?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>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.4.2</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.scg</groupId><artifactId>spring-cloud-nacos</artifactId><version>0.0.1-SNAPSHOT</version><name>spring-cloud-gateway</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version><spring.cloud.version>2020.0.1</spring.cloud.version><spring-cloud-alibaba.version>2021.1</spring-cloud-alibaba.version></properties><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring.cloud.version}</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring-cloud-alibaba.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency><!--得不加上这个配置,不然会报503--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-loadbalancer</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>
  1. 配置yml文件
server:port: 8082
spring:application:name: gateway_servercloud:nacos:discovery:server-addr: 127.0.0.1:8848gateway:discovery:locator:#开启从注册中心动态创建路由的功能,利用微服务名进行路由enabled: true#开启小写验证,默认feign根据服务名查找都是用的全大写lowerCaseServiceId: trueroutes:- id: spring-cloud-order-centeruri: lb://spring-cloud-order-center# 断言,路径相匹配的进行路由predicates:- Path=/order-center/**filters:- StripPrefix=1- id: spring-cloud-user-centeruri: lb://spring-cloud-user-center# 断言,路径相匹配的进行路由predicates:- Path=/user-center/**filters:- StripPrefix=1
management:endpoints:web:exposure:include: "*"`3. 启动类添加@EnableDiscoveryClient注解```java
@EnableDiscoveryClient
@SpringBootApplication
public class SpringCloudGatewayApplication {public static void main(String[] args) {SpringApplication.run(SpringCloudGatewayApplication.class, args);}}

4.测试

同时启动三台服务,我们可以看到这三者服役已经注册到了nacos注册中心中

在这里插入图片描述

按照我们的配置,访问http://localhost:8082/user-center/user会调用用户中心的的user接口,访问http://localhost:8082/order-center/order会调用订单中心的order接口,接下来我们测试一下
在这里插入图片描述

通过网关访用户服务
在这里插入图片描述

通过网关访订单服务
在这里插入图片描述

三. 避坑指南

问题1–503问题

在这里插入图片描述
解决办法:添加如下依赖

        <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-loadbalancer</artifactId></dependency>

问题原因:
参考:gateway 503 问题

问题2–网关服务启动报错

***************************
APPLICATION FAILED TO START
***************************Description:Parameter 0 of method modifyRequestBodyGatewayFilterFactory in org.springframework.cloud.gateway.config.GatewayAutoConfiguration required a bean of type 'org.springframework.http.codec.ServerCodecConfigurer' that could not be found.Action:Consider defining a bean of type 'org.springframework.http.codec.ServerCodecConfigurer' in your configuration.Process finished with exit code 1

问题原因:

这是由于所依赖的模块中有 spring-boot-starter-web 的依赖,而 SpringCloudGateway 还不支持 spring-boot-starter-web

解决方案:

网关服务去掉spring-boot-starter-web依赖

  <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
http://www.zhongyajixie.com/news/4848.html

相关文章:

  • 长春网长春网站建设络推广实时热搜榜榜单
  • 厦门 网站优化网站seo诊断报告
  • 用什么做网站比较好谷歌浏览器网址
  • 扬中市做网站济南做seo排名
  • 建的网站403在线教育
  • php 网站提速泉州全网营销推广
  • 网页与网站的区别seo优化排名推广
  • 小型网站制作软文代写新闻稿
  • 网站运营内容外链发布工具下载
  • dw怎么建设网站成都网站快速开发
  • 个人做网站有什么用seo是什么车
  • wordpress 总变量seo关键词教程
  • wordpress 栏目不同模板志鸿优化网官网
  • 橙子建站网站长春百度关键词优化
  • 外贸网站做SEO域名备案查询
  • 南宁兴宁区建设局网站网络推广主要做什么
  • 西安企业网站建设托管宜昌seo
  • 滴滴优惠券网站怎么做西安关键字优化哪家好
  • 帮人做网站如何收费seo关键词工具
  • 民政部门网站建设方案网站内容检测
  • 做放单主持的网站引流推广平台有哪些
  • 邳州徐州网站开发巢湖seo推广
  • 惠州专业网站制作公司软文推广发布
  • 建一个网络平台需要什么条件河源市seo点击排名软件价格
  • 网站建设系统规划百度网站打开
  • 清远网站建设公司谈谈你对网络营销的认识
  • 建设银行网站怎样查询贷款信息吗seo营销服务
  • wordpress二级域名建站国外seo比较好的博客网站
  • wordpress 网站制作抖音seo运营模式
  • 上海空灵网站设计外贸seo网站