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

天津做网站一般多少钱wordpress linux在线

天津做网站一般多少钱,wordpress linux在线,好看的论坛源码,wordpress仿导航大全目录 一、目的 二、Ocelot介绍 三、.Net中使用Ocelot搭建网关服务 3.1 搭建网关Ocelot步骤 3.1.1、创建Net7 WebApi服务 3.1.2、Nuget引入-Ocelot程序包(版本:19.0.2) 3.1.3、配置中间件和IOC注册 3.1.4 配置文件编辑Ocelot网关配置信…

目录

一、目的

二、Ocelot介绍

三、.Net中使用Ocelot搭建网关服务

3.1 搭建网关Ocelot步骤

 3.1.1、创建Net7 WebApi服务

3.1.2、Nuget引入-Ocelot程序包(版本:19.0.2)

3.1.3、配置中间件和IOC注册

3.1.4 配置文件编辑Ocelot网关配置信息

3.2 Ocelot相关配置

3.2.1 单地址访问

3.2.2 多地址访问

3.2.3 单地址多实例负载均衡

3.2.4 负载均衡+Consul(服务发现)

四、文章总结


一、目的

         在微服务架构中,网关作为系统的统一入口,承担着路由转发、负载均衡、安全控制等核心功能,是确保系统高效运行的关键组件。市面上一些主流网关:Kong、Envoy、Spring Cloud Gateway、Bumblebee、Ocelot(C#开源-微软-腾讯---Abp.vnext内置)。

        这里主要讲解通过Ocelot设计微服务Api网关。

    二、Ocelot介绍

            Ocelot网关是一款基于.NET Core开发的开源API网关,专为微服务架构设计,其主要作用包括统一管理客户端请求、提升系统安全性和可维护性‌.

        网关的作用包括:

    1. 请求路由‌:通过配置文件定义路由规则,将客户端请求动态转发到对应的下游服务,支持路径占位符(如/{userId})和通配符匹配‌。
    2. 负载均衡‌:集成轮询、随机、最少连接数等算法,分发请求到多个服务实例,提高可用性和性能‌。
    3. 服务发现‌:自动集成Consul或Eureka等注册中心,实时发现服务地址,减少手动配置负担‌。
    4. 认证与授权‌:支持JWT、OAuth2等认证方式,实现统一身份验证和基于角色的访问控制(RBAC),保障资源安全‌。
    5. 限流与熔断‌:采用令牌桶算法限制请求速率,防止服务过载;熔断机制在服务故障时快速失败,避免级联崩溃‌。
    6. 请求聚合‌:合并多个下游服务的响应为单一结果,减少客户端请求次数,优化用户体验‌。
    7. 日志与监控‌:记录请求日志和性能指标,支持与Serilog、Prometheus等工具集成,便于运维分析和优化‌。
    8. 统一入口‌:作为微服务架构的单一接入点,屏蔽后端服务复杂性,降低客户端与服务间的耦合度‌。

    三、.Net中使用Ocelot搭建网关服务

    3.1 搭建网关Ocelot步骤

     3.1.1、创建Net7 WebApi服务

    3.1.2、Nuget引入-Ocelot程序包(版本:19.0.2)

            dotnet add packages Ocelot

    3.1.3、配置中间件和IOC注册

    //配置Ocelot中间件设置和注册到Ioc
    builder.Services.AddOcelot();//使用Ocelot中间件
    app.UseOcelot();

    3.1.4 配置文件编辑Ocelot网关配置信息

    为了便于区分,新增一个configuration配置文件用来编辑Ocelot网关相关信息。

    创建了配置文件就需要在重新读取配置文件,appsettings是默认读取的,这里需要在读取configuration中的内容:

    builder.Configuration.AddJsonFile("configuration.json", true, true);

    3.2 Ocelot相关配置

            Ocelot在注册服务到Ioc时,AddOcelot方法在构建Ocelot服务时,对通过读取配置文件中的信息来设置相关服务。以下是几种常见的服务配置方式。

    3.2.1 单地址访问

            这里配置了单地址转发,通过配置文件定义路由规则,将请求动态转发到对应的下游服务,通过占位符"/Test80"和通配符访问。

    {"Routes": [{"DownstreamPathTemplate": "/api/{url}", //服务地址,Url变量"DownstreamScheme": "http","DownstreamHostAndPorts": [{"Host": "127.0.0.1","Port": 80 //服务端口} //http://127.0.0.1:80],"UpstreamPathTemplate": "/Test80/{url}", //网关地址: Url变量"UpstreamHttpMethod": [ "Get", "Post" ]}]
    }

    3.2.2 多地址访问

          网关支持多个服务地址,转发请求。模拟客户端请求不同的服务示例。如:

    访问: https://网关ip:80/Test81/Test/Get

    //  //*****************************多地址********************************
    {"Routes": [{"DownstreamPathTemplate": "/api/{url}", //服务地址,Url变量"DownstreamScheme": "http","DownstreamHostAndPorts": [{"Host": "127.0.0.1","Port": 81 //服务端口}],"UpstreamPathTemplate": "/Test81/{url}", //网关地址: Url变量"UpstreamHttpMethod": [ "Get", "Post" ]},{"DownstreamPathTemplate": "/api/{url}", //服务地址,Url变量"DownstreamScheme": "http","DownstreamHostAndPorts": [{"Host": "127.0.0.1","Port": 82 //服务端口}],"UpstreamPathTemplate": "/Test82/{url}", //网关地址: Url变量"UpstreamHttpMethod": [ "Get", "Post" ]},{"DownstreamPathTemplate": "/api/{url}", //服务地址,Url变量"DownstreamScheme": "http","DownstreamHostAndPorts": [{"Host": "127.0.0.1","Port": 83 //服务端口}],"UpstreamPathTemplate": "/Test83/{url}", //网关地址: Url变量"UpstreamHttpMethod": [ "Get", "Post" ]}]
    }

    3.2.3 单地址多实例负载均衡

            可以负载均衡,客户端请求网关时,会根据负载策略去匹配不同的示例。但是不能动态伸缩服务, 所以一般不会使用他来做负载均衡, 需要和Consul做集成。这种处理方式和nginx的负载很像。

    //*****************************单地址多实例负载均衡********************************
    {"Routes": [{"DownstreamPathTemplate": "/api/{url}", //服务地址Url变量"DownstreamScheme": "http","DownstreamHostAndPorts": [{"Host": "127.0.0.1","Port": 81},{"Host": "127.0.0.1","Port": 82},{"Host": "127.0.0.1","Port": 83} //能负载均衡,但是不能动态伸缩, 需要结合Consul来完成],"UpstreamPathTemplate": "/Test/{url}", //网关地址: Url变量"UpstreamHttpMethod": [ "Get", "Post" ],"LoadBalancerOptions": {"Type": "RoundRobin" //轮询 // "LeastConnection" //最小连接数的服务器  "NoLoadBalance" //不负载均衡 }}]
    }

    3.2.4 负载均衡+Consul(服务发现)

            1、在网关中配置Consul,注册Consul到Ocelot中,引用Ocelot.Provider.Consul

    dotnet add package Ocelot.Provider.Consul

            2、配置Consul注册到Ocelot

    builder.Services.AddOcelot().AddConsul();

    ps:ocelot请求时,通过Consul获取的默认服务名称会通过本机名字匹配。默认请求时可能会出现通过consul访问对应服务节点的情况。(此处测试时Consul在window上运行)

    解决方案:启动Consul的node节点.此处写上服务端地址

    //设置node地址

    consul agent -dev -node=127.0.0.1

            3、Json配置内容

    //*****************************Consul服务发现
    {"Routes": [{"DownstreamPathTemplate": "/api/{url}", //服务地址--url变量"DownstreamScheme": "http","UpstreamPathTemplate": "/Test/{url}", //网关地址--url变量"UpstreamHttpMethod": [ "Get", "Post" ],"UseServiceDiscovery": true,"ServiceName": "TestService", //consul服务名称"LoadBalancerOptions": {"Type": "RoundRobin" //轮询 "LeastConnection-最少连接数的服务器NoLoadBalance不负载均衡"}}],"GlobalConfiguration": {//"BaseUrl": "http://127.0.0.1:6299", //网关对外地址"ServiceDiscoveryProvider": {"Host": "127.0.0.1","Port": 8500,"Type": "Consul" //由Consul提供服务发现,每次请求去consul}}
    }

    四、文章总结

            以上内容基本满足网关搭建的使用,本篇主要介绍基础的使用方式。Ocelot还有更多高级的用法,也会在后面的文章中慢慢补上。例如:Ocelot缓存、自定义负载均衡规则以及接入Polly的服务治理相关。

            欢迎大家多多交流~

    http://www.dtcms.com/a/571234.html

    相关文章:

  1. 宁夏交通建设股份有限公司网站鞍山创网站怎么创
  2. 做网站维护的收入怎么确认网站怎么做跳站
  3. 网页建站费用WordPress 古腾堡开发
  4. 珠海公司网站设计哪里建网站便宜
  5. 个人音乐网站源码一页式网站模板
  6. 公司网站建设是哪个部门的事情吉林省建设监理检测网站
  7. 别人建的网站怎么修改代码做网站去什么公司好
  8. 网站需求报告怎么写惠州品牌网站建设价格
  9. 贵州省建设厅报名网站贵阳网站建设宏思锐达
  10. 自己怎么做商城网站吗建立网站费用大概需要多少钱
  11. 网站备案是怎么回事乐从网站开发
  12. 站长工具端口扫描视频在线观看网站怎么建设
  13. 中投中原建设有限公司网站网页界面设计作品推荐
  14. 网站备案百度站长提交网站如何制作建设
  15. 做商务网站要多少钱免费网站自助制作
  16. 浦江网站建设大宗商品一览表
  17. 提升网站收录行业论坛网站
  18. 常熟港口建设费申报网站刷题网站怎么做
  19. 怎么用word做网站中国机械加工网1717
  20. 公司网站制作站制作wordpress标签是什么
  21. 互网站开发维护成本高网站定时数据切换怎么做的
  22. 网站建设redu大秦建设集团有限责任公司官方网站
  23. 被黑的网站创办一个网站
  24. C++ 大数乘法
  25. 个人网站设计源代码互联网营销是干什么
  26. 个人网站怎么制作教程社区推广活动方案
  27. 电子商务是建网站如何免费建网站赚钱
  28. 广州市建设网站wordpress网站报价
  29. 用户需求与业务目标冲突时该如何取舍
  30. 乡镇中心小学校园网站建设指南淘宝网站怎么做网站