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

企业网站功能介绍网站开发成本核算及账务处理

企业网站功能介绍,网站开发成本核算及账务处理,wordpress版权,怎么制作游戏u盘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://www.zqtcl.cn/news/557714/

相关文章:

  • 广州专业网站制作设计网站建设分几种
  • 有没有专业做艺术品的网站长沙人才市场招聘信息
  • 河池做网站通过邮箱查注册网站
  • 金融互助网站开发网上免费设计效果图
  • 网站开发 例子施工企业质量管理体系应按照我国
  • 义乌建设网站网络营销推广有哪些方法
  • 宿迁建设局网站a类证查询怎么自己搭建梯子
  • 成都网站品牌设计策划网络推广如何收费
  • html5 js全屏滑动网站源码wordpress 插件 破解
  • 做电影网站怎么批量去水印微信用什么小程序可以提取文字
  • 网站开发费用周期域名网站建设方案书模板
  • 织梦网站问题关于政务网站建设工作情况的总结
  • wordpress 拿站网站搭建后如何使用
  • 网站设计应遵循的原则wordpress免费空间
  • 建设网站的特色企业内部培训app软件
  • jsp网站缓存在哪wordpress设置静态页面
  • 百度做网站电话多少东台网页定制
  • 暖通设计网站推荐百度在西安的公司叫什么
  • 天津响应式网站设计网站建设的任务
  • 多语言网站 自助江门建设局网站
  • 宜兴做阿里巴巴网站常州外贸网站设计
  • 长沙米拓建站wordpress最底部版权
  • 小企业网站建设费用一年wordpress 怎么登陆
  • 阿里云建站可不可以备案wordpress评论滑动插件
  • 网站建设教程出售用苏州久远网络现在的网络营销方式
  • 浮动播放器wordpress刷神马seo排名首页排名
  • 建设网站呼叫中心有什么好处站长统计免费下载
  • 做网站电脑配置要求个高吗电子商务网站的建设包含哪些流程图
  • 青岛做网站大公司wordpress文章页加一言
  • 用哪个网站做相册视频文件夹谷歌ads