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

网站底部浮动电话广告黄冈网站推广优化找哪家

网站底部浮动电话广告,黄冈网站推广优化找哪家,沧州市网站建设,如何运用企业官方网站做宣传目录 一、目的 二、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/wzjs/335366.html

    相关文章:

  1. 黑色炫酷的监控网站html东莞网站seo公司
  2. 网站建设赠送seoseo的范畴是什么
  3. 做行业网站投入建站公司排名
  4. 怎么用java做动态网站网络营销的核心是什么
  5. 如何购买建设网站系统北京优化网站公司
  6. 戴尔cs24TY可以做网站吗二级域名和一级域名优化难度
  7. 设计教程网站推荐商业网站
  8. 传统生意转型做那个网站好厦门最快seo
  9. 天津龙腾公司做网站最有效的网络推广方式
  10. 可以先做网站再开公司吗东莞seo排名扣费
  11. 农家乐网站源码杭州网站搜索排名
  12. h5互动网站建设搜狗收录提交入口网址
  13. 网站建设项目需求分析报告站内营销推广方案
  14. 网站客服在线系统电商代运营公司排名
  15. 网站建设 技术支持下拉词排名
  16. 南昌企业网站建设公司网络服务商怎么咨询
  17. 有那些专门做财务分析的网站西安sem竞价托管
  18. 济南网站建设求职广州seo优化电话
  19. 南京直销网站开发做企业网站哪个平台好
  20. 十天学会网站建设常见的搜索引擎有哪些
  21. 做一个15页的网站怎么做怎么自己做一个网站
  22. 杭州建筑网页设计百度网站排名关键词整站优化
  23. 网站开发计划书范文百度推广托管公司
  24. 网站推广策划百度搜索排名规则
  25. 网站架构 seoapp推广方案
  26. 做ppt图表的网站关键词异地排名查询
  27. 做动漫网站用什么程序广州百度seo公司
  28. 建程网app下载一体板seo外包公司费用
  29. 提供网站建设教程的网站网络营销案例及分析
  30. 武汉网站公司网站营销软文