建设网站推广贷款业务网络推广好做吗
实现以nacos为注册中心,网关路由转发调用
- 项目版本汇总
- 项目初始化
- 新建仓库
- 拉取仓库项目
- 父工程pom初始化
- 依赖版本选择
- pom文件如下
- 网关服务构建
- pom文件
- 启动类
- 配置文件YML
- nacos启动
- 新建命名空间
- 配置网关yml(nacos)
- 网关服务启动
- 用户服务构建
- pom文件
- 启动类
- 配置文件YML
- 新增url接口
- 配置用户服务yml(nacos)
- 用户服务启动
- 测试路由转发
- 源码地址
项目版本汇总
nacos | 2.1.1 |
---|---|
springCloud | 2021.0.7 |
springboot | 2.6.14 |
spring-cloud-starter-alibaba-nacos-discovery | 2021.1 |
spring-cloud-starter-alibaba-nacos-config | 2021.1 |
项目初始化
新建仓库
可使用github/gitlab/码云等其它代码库,建立自己的项目仓库
我这里使用的是码云
码云地址
拉取仓库项目
git clone 你新建的仓库地址
下载后,用idea打开(这里默认你能配置maven,jdk以及java环境变量的操作)
父工程pom初始化
用途:该pom用于管理整个微服务项目的依赖框架和版本以及所属子模块等
如图所示:该pom.xml在工程的根目录下创建
依赖版本选择
- 进入Spring官网Spring官网选择Project下的Springcloud栏进去
- 版本号对应关系一目了然
- 选择2021.0.x版本的cloud,那么对应的boot版本就是2.6-2.7之间
pom文件如下
spring-cloud-dependencies | cloud依赖 |
---|---|
spring-boot-dependencies | boot依赖 |
nacos-client | nacos版本 |
spring-boot-starter-test | 单测依赖 |
spring-cloud-starter-alibaba-nacos-discovery | 注册中心客户端依赖 |
spring-cloud-starter-alibaba-nacos-config | 配置中心客户端 |
<dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>2021.0.7</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.6.14</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>com.alibaba.nacos</groupId><artifactId>nacos-client</artifactId><version>2.1.1</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><version>${boot.version}</version><scope>test</scope></dependency><!--注册中心客户端--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>2021.1</version></dependency><!--配置中心客户端--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId><version>2021.1</version></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.24</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.26</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.3.3</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>${boot.version}</version></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>2021.0.7</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>
网关服务构建
在父工程项目点击右键 New-Module起名为xwl-gateway
pom文件
spring-cloud-starter-gateway | 网关依赖 |
---|---|
spring-cloud-starter-openfeign | rpc通信依赖 |
spring-cloud-starter-bootstrap | cloud配置文件识别依赖 |
spring-cloud-loadbalancer | cloud内置负载均衡器(取代了ribbon) |
<dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId><version>3.1.7</version></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId><version>3.1.7</version></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bootstrap</artifactId><version>3.1.6</version></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-loadbalancer</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
启动类
@SpringBootApplication
/*开启服务注册中心*/
@EnableDiscoveryClient
public class XwlGatewayApplication {public static void main(String[] args) {SpringApplication.run(XwlGatewayApplication.class,args);}
}
配置文件YML
#端口号
server:port: 10081
#服务名
spring:application:name: xwl-gateway
# NACOS配置链接注册中心cloud:nacos:discovery:#被发现的服务注册地址server-addr: 192.168.231.1:8848#命名空间namespace: f212727d-d812-4945-9464-0fd0e199459bconfig:server-addr: 192.168.231.1:8848namespace: f212727d-d812-4945-9464-0fd0e199459b#绑定配置文件名称前缀(与nacos注册中心上的配置文件名称相关)prefix: ${spring.application.name}#组idgroup: DEFAULT_GROUP#nacos配置文件后缀file-extension: ymlgateway:discovery:locator:enabled: true #开启从注册中心动态创建路由功能#路由转发配置routes:- #以xwl-Authority服务名为唯一标识id- id: xwl-Authority# 内置服务转发url 也可以是http请求方式uri: lb://xwl-Authority# 匹配器 这里设置的是以xwlAuthority前缀匹配的url都转发到xwl-Authority服务中predicates:- Path=/xwlAuthority/**
nacos启动
注:nacos2.0后默认以集群方式启动,这里我们测试方便需要用单机方式启动,需要改个配置,如图所示
将原来的cluster改为standalone
新建命名空间
配置网关yml(nacos)
注意:这里的 Data ID要和配置文件中保持一致
网关服务启动
用户服务构建
在父工程项目点击右键 New-Module起名为xwl-Authority
pom文件
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bootstrap</artifactId><version>3.1.6</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
启动类
@SpringBootApplication
@EnableDiscoveryClient
public class XwlAuthorityApplication {public static void main(String[] args) {SpringApplication.run(XwlAuthorityApplication.class,args);}
}
配置文件YML
server:port: 10082
spring:application:name: xwl-Authority# NACOS配置链接注册中心cloud:nacos:discovery:server-addr: 192.168.231.1:8848namespace: f212727d-d812-4945-9464-0fd0e199459bconfig:server-addr: 192.168.231.1:8848namespace: f212727d-d812-4945-9464-0fd0e199459bprefix: ${spring.application.name}group: DEFAULT_GROUPfile-extension: ymlcompatibility-verifier:enabled: falsedatasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://192.168.231.1:3306/xwlmicroserviceusername: rootpassword: root
新增url接口
package cn.xwl.controller;import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("testAuthority")
public class AuthorityController {@PostMapping("/getName")@ResponseBodypublic String getName(){return "ZHANGSAN";}
}
配置用户服务yml(nacos)
以xwl-Authority.yml为创建Data ID
用户服务启动
测试路由转发
- 访问网关层
- 命中gateway配置文件中的url匹配器,从而转发xwl-Authority服务
- 发送http请求到xwl-Authority服务命中具体的url
源码地址
码云仓库地址