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

网站设计与开发专家免费拓客软件排行榜

网站设计与开发专家,免费拓客软件排行榜,乌鲁木齐品牌网站建设,日常生活中好的交互设计产品背景:本想找个简单例子看下,无奈版本依赖太过复杂,花了点时间。记录下吧 使用Spring Cloud Gateway作为网关服务,Nacos作为注册中心,实现对子服务的负载均衡访问。简单例子。 一、gateway-main-nacos服务端&#xff…

背景:本想找个简单例子看下,无奈版本依赖太过复杂,花了点时间。记录下吧

使用Spring Cloud Gateway作为网关服务,Nacos作为注册中心,实现对子服务的负载均衡访问。简单例子。

一、gateway-main-nacos服务端:     

完整pom文件:

<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"><modelVersion>4.0.0</modelVersion><groupId>com.example</groupId><artifactId>gateway-main-nacos</artifactId><version>1.0.0</version><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.5.4</version><relativePath/> <!-- lookup parent from repository --></parent><dependencies><!-- Spring Cloud Gateway --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency><!-- Nacos Discovery --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>2021.1</version></dependency><!-- Nacos Config --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId><version>2021.1</version></dependency><!-- Spring Boot Starter Web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-loadbalancer</artifactId></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>2020.0.3</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>
</project>

完整的yml配置文件:

server:port: 8888
spring:application:name: gateway-servicemain:web-application-type: reactivecloud:nacos:discovery:server-addr: localhost:8848 # Nacos 服务器地址namespace:  namespace_xxxconfig:server-addr: localhost:8848 # Nacos 配置中心地址file-extension: yamlgateway:discovery:locator:enabled: trueroutes:- id: neo_routeuri: http://www.ityouknow.compredicates:- Path=/spring-cloud
#     - id: add_request_parameter_route
#       uri: http://localhost:8889
#       filters:
#       - AddRequestParameter=foo, bar
#       predicates:
#         - Method=GET- id: lb_nacosuri: lb://user-service  #会进行服务负载均衡filters:- AddRequestParameter=foo, bar123predicates:- Path=/user/** # 匹配 /user/** 路径的请求- id: lb_nacos01uri: lb://user-servicefilters:- StripPrefix=1 # 去掉前缀 /user01predicates:- Path=/user01/** # 匹配 /user01/** 路径的请求

    GatewayApplication启动类:

package com.neo;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;@SpringBootApplication
@EnableDiscoveryClient
public class GatewayApplication {public static void main(String[] args) {SpringApplication.run(GatewayApplication.class, args);}
}

二、  路由的子服务(可以发布两个服务,达到负载均衡的效果)   

完整pom文件:

<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"><modelVersion>4.0.0</modelVersion><groupId>com.example</groupId><artifactId>user-service</artifactId><version>1.0.0</version><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.5.4</version><relativePath/> <!-- lookup parent from repository --></parent><dependencies><!-- Spring Boot Starter Web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- Nacos Discovery --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>2021.1</version></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bootstrap</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-loadbalancer</artifactId></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>2020.0.3</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>
</project>

完整的yml文件:

server:port: 8889spring:application:name: user-service#main:#  web-application-type: reactivecloud:gateway:discovery:locator:enabled: truenacos:discovery:server-addr: localhost:8848 # Nacos 服务器地址namespace:  namespace_xxx  #nacos命名空间,修改为自己定义的config:server-addr: localhost:8848 # Nacos 配置中心地址namespace:  namespace_xxxfile-extension: yaml

子服务启动类:


import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@SpringBootApplication
@EnableDiscoveryClient
public class UserServiceApplication {public static void main(String[] args) {SpringApplication.run(UserServiceApplication.class, args);}
}

对应测试的Controller类:

​
@RestController
public class HelloController {@GetMapping("/hello")public String index() {return "hello world!";}@GetMapping("/user/hello")public String indexUser() {return "hello world user!";}@RequestMapping("/user/foo")public String foo(String foo) {return "hello "+foo+"!";}}​

三、测试

本地启动gateway-main-nacos、user-service、user-service-1。 访问 http://localhost:8888/user/hello,多次访问发现会返回 hello world user! 或者 hello world user,another!。达到负载均衡的效果。

访问这个地址也可以看到同样的效果, http://localhost:8888/user01/hello

两个url不同的路由匹配规则。

四、遇到的问题:
1.#允许bean Service循环依赖
spring.main.allow-circular-references=true

2.#Spring MVC found on classpath, which is incompatible with Spring Cloud Gateway.
#同时使用Spring MVC和Spring Cloud Gateway
spring.main.web-application-type=reactive

3.SpringCloud-Gateway搭配服务注册Nacos进行lb动态路由遇到的问题
高版本的spring-cloud-alibaba-dependencies依赖中去除了ribbon依赖,若想能通过Gateway网关找到对应的微服务,需要引入loadbalancer依赖。

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

参考的文档:http://www.ityouknow.com/springcloud/2019/01/19/spring-cloud-gateway-service.html


源码地址:https://github.com/tracysw/Spring-Cloud-Gateway-Samples


 

http://www.khdw.cn/news/60571.html

相关文章:

  • 南昌做网站哪家好原创软文
  • 哪个网站可以学做包子长沙优化网站厂家
  • 展示型企业网站营销目标主要有青岛seo整站优化哪家专业
  • 苏州有哪些做网站公司好惠州网站排名提升
  • 培训教育学校的网站建设方案google store
  • 网站被降权怎么恢复搜索引擎优化英文简称为
  • 能自己做头像的网站大学生网络营销策划书
  • 网站建设大概多少钱海南seo顾问服务
  • 北京市昌平区社会建设网站企业文化案例
  • 做ppt找图片网站推广哪些app最挣钱
  • 专门做油站数据的网站seo 页面
  • 建设单位发包许可证网站百度软件应用中心
  • wordpress外贸B2C建站app注册接单平台
  • 万网虚拟主机免费空间做网站seo怎么赚钱
  • 上海网站制作的谷歌网页版入口
  • 在线软件网站建设广州现在有什么病毒感染
  • 成人用品网站开发邯郸网站优化公司
  • 网站显示内容不显示不出来网络营销有本科吗
  • 开发一个手机网站要多少钱沈阳今天刚刚发生的新闻
  • 深圳做网站网络营销公司哪家好站长工具是做什么的
  • 营销型企业网站建站批量查询权重
  • 视频网站制作教程视频创建网站的公司
  • 织梦制作手机网站模板广告投放都有哪些平台
  • 网站建设咨询电话百度网站分析
  • 国外网站做营销营销型网站案例
  • xml天气预报网站怎么做百度有免费推广广告
  • 哈尔滨网站建设信息网络营销方法有哪几种
  • 购物网站开发教程 视频南京seo外包平台
  • 珠海网站制作公司网络营销策略分析案例
  • 做app 的模板下载网站有哪些内容百度服务