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

萧山网站建设公司平面设计师求职网

萧山网站建设公司,平面设计师求职网,学好网站建设的步骤,网站建设济南有做的吗SpringCloudAlibaba Gateway(一)简单集成 随着服务模块的增加#xff0c;一定会产生多个接口地址#xff0c;那么客户端调用多个接口只能使用多个地址#xff0c;维护多个地址是很不方便的#xff0c;这个时候就需要统一服务地址。同时也可以进行统一认证鉴权的需求。那么服…SpringCloudAlibaba Gateway(一)简单集成 随着服务模块的增加一定会产生多个接口地址那么客户端调用多个接口只能使用多个地址维护多个地址是很不方便的这个时候就需要统一服务地址。同时也可以进行统一认证鉴权的需求。那么服务网关就充当这样的角色。 Gateway ​ 网关为众多微服务挡在前面做路由转发、监控、限流、鉴权等功能。SpringCloudGateway就是其实现之一。SpringCloudGateway借鉴了Spring Cloud Netfilix Zuul的思想它的目标是替代Zuul。 ​ Gateway是基于WebFlux框架实现的而WebFlux底层是使用高性能框架Netty性能方面是Zuul的1.6倍且功能强大设计优雅。 ​ Gateway的核心是路由、Predicate(断言)、Filter(过滤器)。路由是转发规则Predicate是判断Filter可以认为是请求被路由前或后加一点自定义逻辑。 SpringCloudGateway需要使用SpringBoot2.0及以上版本并且不可以在Tomcat或Jetty等Servlet容器运行必须是Jar包运行 集成Gateway 构建一个Gateway网关服务再创建两个服务:用户服务和商品服务架构如下 user服务的UserController用户服务端口8002 RestController public class UserController {private final MapInteger, String userInfo new HashMapInteger, String() {{put(1, Zhangsan);put(2, Lisi);}};RequestMapping(/user/findById)public String findById(RequestParam(id) Integer id) {return userInfo.getOrDefault(id, null);} }shop服务的ShopController商品服务端口8003 RestController public class ShopController {private final MapInteger, String shopInfo new HashMapInteger, String() {{put(1, 这是苹果);put(1024, 芒果);}};RequestMapping(/shop/findById)public String findById(RequestParam(id) Integer id) {return shopInfo.getOrDefault(id, null);} }创建一个gateway的服务 依赖 dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-gateway/artifactIdexclusionsexclusiongroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/exclusion/exclusions /dependencyGateway中去除spring-boot-starter-web依赖gateway中有webflux依赖与starter-web有冲突。 bootstrap.yml加入配置 server:port: 8083spring:application:name: gateway # 服务名cloud:gateway:routes: # 路由可配置多个- id: user_route # 路由id唯一即可默认UUIDuri: http://localhost:8002 # 路由地址(匹配成功后的服务地址)order: 1 # 路由优先级默认0越低优先级越高predicates:- Path/user/** # 断言匹配规则- id: shop_routeuri: http://localhost:8003order: 1predicates:- Path/shop/**网关配置也可以使用JavaConfig的方式但是不推荐使用。 配置中表示当请求网关路径中地址是以/user/开头就路由到用户服务中/shop/开头路由到商品服务中。 测试一下 C:\Users\Admincurl http://localhost:8083/user/findById?id1 Zhangsan C:\Users\Admincurl http://localhost:8083/shop/findById?id1024 芒果Gateway整合nacos 上面案例中uri都是写死的一些东西如果对应的具体服务地址改了那么就需要修改配置文件而且假如要提高用户承载量做负载均衡有很多个节点肯定不能只配置一个服务地址。 那么就需要用到nacos统一管理服务注册、发现网关路由转发的地址从nacos中拿就行。 那么用户服务和商品服务需要引入nacos服务发现注册依赖 !-- 服务注册 服务发现需要引入的 -- dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId /dependency!--健康监控-- dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId /dependencybootstrap.yml文件 ------------------------User服务 server:port: 8002 spring:application:name: user # 应用名cloud:nacos:discovery:server-addr: localhost:8848 # nacos服务地址--------------------------Shop服务 server:port: 8003 spring:application:name: shop # 应用名cloud:nacos:discovery:server-addr: localhost:8848 # nacos服务地址最后记得启动类上启动nacos服务注册发现 SpringBootApplication EnableDiscoveryClient // 启用服务注册发现 public class UserApp {public static void main(String[] args) {SpringApplication.run(UserApp.class, args);} } 欧克那么同样地gateway服务也要启用服务注册发现 依赖 !-- 服务注册 服务发现需要引入的 -- dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId /dependencybootstrap.yml配置如下 server:port: 8083spring:application:name: gateway # 服务名cloud:nacos:discovery:server-addr: localhost:8848 # nacos地址gateway:discovery:locator:enabled: true # 让gateway可以发现nacos中的服务gateway自动根据服务发现为每一个服务创建了一个router# 这个router将以服务名开头的请求路径转发到对应的服务routes: # 路由可配置多个- id: user_route # 路由id唯一即可默认UUIDuri: lb://user # 路由地址(匹配成功后的服务地址) user是用户服务的服务名称order: 1 # 路由优先级默认0越低优先级越高predicates:- Path/user/** # 断言匹配规则- id: shop_routeuri: lb://shop # 路由地址(匹配成功后的服务地址) shop是商品服务的服务名称order: 1predicates:- Path/shop/** 启动尝试下 C:\Users\Admincurl http://localhost:8083/user/findById?id1 {timestamp:2023-08-05T00:34:40.68400:00,path:/user/findById,status:503,error:Service Unavailable,requestId:f5f6d217-1} C:\Users\Admincurl http://localhost:8083/user/findById?id1 {timestamp:2023-08-05T00:35:50.22300:00,path:/user/findById,status:503,error:Service Unavailable,requestId:21a722a2-1}哈服务不可用经查阅资料得知缺少ReactiveLoadBalancerClientFilter过滤器需要LoadBalancerClientFactory类但是需要引入相关依赖 dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-loadbalancer/artifactId /dependency可以了再试下 C:\Users\Admincurl http://localhost:8083/shop/findById?id1024 {timestamp:2023-08-05T01:19:34.18300:00,status:404,error:Not Found,path:/findById} C:\Users\Admincurl http://localhost:8083/user/findById?id1 {timestamp:2023-08-05T01:19:34.18300:00,status:404,error:Not Found,path:/findById}好嘞漂亮踩了大坑了一直404 经过百般挣扎查资料看源码调试等等手段明白原因了… spring:application:name: gateway # 服务名cloud:nacos:discovery:server-addr: localhost:8848 # nacos地址gateway:discovery:locator:enabled: true # 让gateway可以发现nacos中的服务gateway自动根据服务发现为每一个服务创建了一个router# 这个router将以服务名开头的请求路径转发到对应的服务重点来了注意看: 当你的gateway配置了locator.enabled: true时gateway自动根据服务发现为每一个服务创建了一个router 这个router将以服务名开头的请求路径转发到对应的服务相当于人家给你自动生成了route规则你自己都不用配置了。 但是你的请求中必须要带着服务端的服务名才可以进行访问到 以上述为例如果要访问到user服务的/user/findById那么请求地址为localhost:8083/user/user/findById C:\Users\Admincurl http://localhost:8083/user/user/findById?id1 Zhangsan如何选择 提供两种写法 实际上如果项目路径比较简单直接让gateway和nacos自动生成即可 spring:application:name: gateway # 服务名cloud:nacos:discovery:server-addr: localhost:8848 # nacos地址gateway:discovery:locator:enabled: true # 让gateway可以发现nacos中的服务gateway自动根据服务发现为每一个服务创建了一个router# 这个router将以服务名开头的请求路径转发到对应的服务请求时记得带上服务端的application.name名称即可如locahost:8083/user/user/findById第一个user是服务名称 假如不想这么做想直接以一个路径跳到对应的服务中去不去写服务名那么我们需要自定义routes server:port: 8083spring:application:name: gateway # 服务名cloud:nacos:discovery:server-addr: localhost:8848 # nacos地址gateway:routes: # 路由可配置多个- id: user_route # 路由id唯一即可默认UUIDuri: lb://user # 路由地址(匹配成功后的服务地址) user是用户服务的服务名称order: 1 # 路由优先级默认0越低优先级越高predicates:- Path/user/** # 断言匹配规则不使用nacos自动生成的routes自己定义那么我们访问时localhost:8083/user/findById就能正常访问到user服务下的/user/findById资源了。 C:\Users\Admincurl http://localhost:8083/user/findById?id1 Zhangsan两种方式都可以使用根据项目的实际情况选择。locator.enabled: true只要在gateway中配置了那么你在进行网关路由时请求地址的第一个目录一定是服务名称。
http://wiki.neutronadmin.com/news/355490/

相关文章:

  • 网站样版风格排版h5制作软件下载
  • 太原网站建设详细策划资讯类网站怎么做
  • 宁波企业网站开发公司成都软件开发网站建设
  • 东莞网站建设营销平台的淘客招商网站选品库建设
  • 网站后台上传内容前台首页不显示国家信用信息公示系统广东
  • 行政单位网站建设立项依据互联网创业平台有哪些
  • 建购物网站 教程哈尔滨优惠的网站建设
  • 国外网站seo东莞自助建站平台
  • 商城网站做推广方案傻瓜式网站制作
  • 公司网站在哪里做网站建设 福步
  • qq做兼职给网站给你怎么下载河北人社app
  • 上海市城乡建设部网站首页南京招投标中心官网
  • 格尔木城乡建设规划局网站wordpress域名文件夹
  • 南昌网站建设志博长春网站建设小程
  • wordpress php允许上传文件大小深圳市seo上词多少钱
  • 咸阳网站建设哪家专业购物网站哪个质量好
  • 网站ftp查询湖南网站排名
  • 学网站建设语言网页设计实训总结3000字大学篇
  • 专做母婴的网站wordpress主题 芯片
  • 网站建设公司账户搭建好看的网站颜色
  • google网站地图上海城隍庙简介
  • .net flash网站模板怎么做干果网站
  • html做网站在手机上显示wordpress 归档函数
  • 贵港网站seo做运营的前景大吗
  • 好看 大气的网站wordpress 下载文件
  • 猪八戒网可以做福彩网站吗wordpress建的网站
  • 会小二也是做会议网站的网站开发 电话
  • 网站容量空间一般要多大自己做的网站图片挡住了导航栏
  • 甘肃临夏州建设局网站西安网站设计公司哪家好
  • 网站开发规范国外有哪些设计网站推荐