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

旅游项目网站开发ui界面设计分析

旅游项目网站开发,ui界面设计分析,seo是搜索引擎吗,男人女人做那个网站概要云应用程序通常都需要使用前端网关#xff0c;为用户、设备或其他应用程序提供同一个入口点。 在 Service Fabric 中#xff0c;网关可以是任意无状态服务#xff08;如 ASP.NET Core 应用程序#xff09; 。本文介绍了如何将Ocelot用作 Service Fabric 应用程序的网关… 概要云应用程序通常都需要使用前端网关为用户、设备或其他应用程序提供同一个入口点。 在 Service Fabric 中网关可以是任意无状态服务如 ASP.NET Core 应用程序 。本文介绍了如何将Ocelot用作 Service Fabric 应用程序的网关。Ocelot直接与 Service Fabric 集成以便可以使用一组丰富的路由规则向后端 Service Fabric 服务发布 API。架构常见 Service Fabric 体系结构使用单页 Web 应用程序向公开 HTTP API 的后端服务发出 HTTP 调用请求。随着应用程序越来越复杂必须向大量后端服务发布API的网关亦是如此。Ocelot旨在通过路由规则、访问控制、速率限制、监视、事件日志记录和响应缓存来处理复杂 API最大限度地减少用户需要执行的操作。 Ocelot支持 Service Fabric 服务发现、分区解析和副本选择从而智能地将请求直接路由到 Service Fabric 中的后端服务用户无需编写自己的无状态 API 网关。应用程序方案Service Fabric 中的服务可以是无状态服务也可以是有状态服务可采用以下三种方案之一进行分区单独分区、Int64 范围分区和已命名分区。 必须确定特定服务实例的具体分区才能解析服务终结点。解析服务终结点时必须指定服务实例名称例如fabric:/myapp/myservice以及服务的具体分区但单独分区情况除外。Ocelot可与无状态服务、有状态服务和任何分区方案的任意组合配合使用。https://ocelot.readthedocs.io/en/latest/features/servicefabric.html如果您正在使用无状态/Guest服务则ocelot将能够通过命名服务进行代理而无需其他任何操作。但是如果您正在使用有状态服务/ actor服务则必须使用客户端请求发送PartitionKind和PartitionKey查询字符串值。以下示例展示如何设置一个ReRoute以便在在Service Fabric中工作。 最重要的是ServiceName它由Service Fabric应用程序名称和特定服务名称组成的。 我们还需要将UseServiceDiscovery设置为true并在GlobalConfiguration中设置ServiceDiscoveryProvider。 这里的例子显示了一个典型的配置。 它假定Service Fabric在本地主机上运行并且命名服务位于19081端口上。{ReRoutes: [{DownstreamPathTemplate: /api/values,UpstreamPathTemplate: /servicea/api/values,UpstreamHttpMethod: [ Get],DownstreamScheme: http,ServiceName: NanoFabric_ServiceFabric/ServiceA,UseServiceDiscovery: true,AuthenticationOptions: {AuthenticationProviderKey: apikey,AllowedScopes: []},AddHeadersToRequest: {claims_City: Claims[City] value |,claims_State: Claims[State] value |},QoSOptions: {ExceptionsAllowedBeforeBreaking: 3,DurationOfBreak: 10,TimeoutValue: 5000}},{DownstreamPathTemplate: /{route},UpstreamPathTemplate: /serviceoauth/{route},UpstreamHttpMethod: [ Get, Options, Post ],DownstreamScheme: http,ServiceName: NanoFabric_ServiceFabric/ServiceOAuth,UseServiceDiscovery: true}],GlobalConfiguration: {RequestIdKey: OcRequestId,AdministrationPath: /administration,ServiceDiscoveryProvider: {Host: localhost,Port: 19081,Type: ServiceFabric}}}原理就是借助 Service Fabric 中内置的反向代理Service Fabric 群集中运行的微服务可以发现包含 http 终结点的其他服务并与之通信。微服务通信模型Service Fabric 中的微服务在群集中的部分节点上运行可以出于各种原因在这些节点之间迁移。 因此微服务的终结点可能会动态变化。 若要发现群集中的其他服务并与之通信微服务必须完成以下步骤l 通过命名服务解析服务位置。l 连接到服务。l 在实现服务解析以及在发生连接故障时应用的重试策略的循环中包装上述步骤使用反向代理通信反向代理是在每个节点上运行的服务用于代表客户端服务处理终结点解析、自动重试及其他连接故障。 可以将反向代理配置为一边处理客户端服务的请求一边应用各种策略。 借助反向代理客户端服务可以使用任意客户端 HTTP 通信库无需服务中有特殊的解析和重试逻辑。反向代理在本地节点上公开一个或多个终结点以供客户端服务用来向其他服务发送请求。反向代理使用特定的统一资源标识符 (URI) 格式来识别传入请求应该转发到的服务分区http(s)://Cluster FQDN | internal IP:Port/ServiceInstanceName/Suffix path?PartitionKeykeyPartitionKindpartitionkindListenerNamelistenerNameTargetReplicaSelectortargetReplicaSelectorTimeouttimeout_in_secondsl http(s) 可以将反向代理配置为接受 HTTP 或 HTTPS 流量。 对于 HTTPS 转发在设置反向代理侦听 HTTPS 后请参阅使用反向代理连接到安全服务。l 群集的完全限定域名 (FQDN) | 内部 IP 对于外部客户端可以配置反向代理以便可以通过群集域例如 mycluster.eastus.cloudapp.azure.com访问反向代理。 默认情况下反向代理在每个节点上运行。 对于内部流量可在本地主机或任意内部节点 IP例如 10.0.0.1上访问反向代理。l Port为反向代理指定的端口例如 19081。l ServiceInstanceName 在不使用“fabric:/”方案的情况下尝试访问的已部署服务实例的完全限定名称。 例如若要访问 fabric:/myapp/myservice/ 服务可以使用 myapp/myservice。l 服务实例名称要区分大小写。 若 URL 中的服务实例名称大小写不同则会导致请求失败并显示 404未找到。l 后缀路径 要连接到的服务的实际 URL 路径例如 myapi/values/add/3。l PartitionKey 对于分区服务这是针对要访问的分区计算出的分区键。 请注意这不是分区 ID GUID。 对于使用单独分区方案的服务此参数不是必需的。l PartitionKind 服务分区方案。 该方案可以是“Int64Range”或“Named”。 对于使用单独分区方案的服务此参数不是必需的。l ListenerName 服务中的终结点采用以下形式{Endpoints:{Listener1:Endpoint1,Listener2:Endpoint2 ...}}。 当服务公开了多个终结点时此参数标识应将客户端请求转发到的终结点。 如果服务只有一个侦听器则可以省略此项。l TargetReplicaSelector 这指定应当如何选择目标副本或实例。l 当目标服务为有状态服务时TargetReplicaSelector 可以是下列其中一项“PrimaryReplica”、“RandomSecondaryReplica”或“RandomReplica”。 如果未指定此参数默认值为“PrimaryReplica”。l 当目标服务为无状态服务时反向代理将选择服务分区的一个随机实例来将实例转发到其中。l Timeout 此参数指定反向代理针对服务创建的 HTTP 请求代表客户端请求的超时。 默认值为 60 秒。 这是一个可选参数Ocelot充当微服务和外部客户端之间的网络边界可以进行网络地址转换并将外部请求转发到内部的 IP:端口终结点。 要允许外部客户端直接访问微服务的终结点必须先将Ocelot配置为将流量转发到群集中服务使用的每个端口。 另外大多数微服务尤其是有状态微服务并不驻留在群集的所有节点上。 这些微服务在故障转移时可在节点之间移动。 在这种情况下负载均衡器无法有效确定要将流量转发到的副本的目标节点位置。可以在Ocelot中直接配置反向代理的端口而无需配置单个服务的端口。 这种配置可让群集外部的客户端使用反向代理访问群集内部的服务无需经过额外的配置。通过Ocelot可从群集外部访问群集中公开 HTTP 终结点的所有微服务。 这意味着微服务设计为内部的可能会被确定的恶意用户发现。这潜在地提供可被利用的严重漏洞例如恶意用户可以通过反复调用没有足够强化的攻击面的内部服务来发起拒绝服务攻击。恶意用户可能会将格式错误的数据包传送到内部服务从而导致意外行为。设计为内部的服务可能会返回不应公开给群集外部的服务的私有或敏感信息从而将此敏感信息泄露给恶意用户。在网关上开启身份认证、流控等措施来解决安全问题。反向代理是一种可选的 Azure Service Fabric 服务有助于在 Service Fabric 群集中运行的微服务发现包含 http 终结点的其他服务并与之通信在创建新的 Service Fabric 群集时Azure 门户提供了一个启用反向代理的选项。 无法通过门户升级现有群集来使用反向代理。我们的示例项目我们的示例项目代码放在 https://github.com/geffzhang/NanoFabric-ServiceFabric 解决方案中包含了一个后端服务ServiceA是个无状态的服务一个Ocelot 网关和一个Identity Server 4的认证服务在网关上集成了IdentityServer4 的认证服务 由网关负责认证认证完成将Claims 转换为HttpHeader 中转发到下游服务。服务实例A是一个无状态的服务我们将其配置为运行2个实例。在Application Parameters中我将* _InstanceCount参数值设置为2让Service Fabric选择端口我们将从端点中删除该Port属性当开发机器上的无法实现在同一端口上运行多个实例如果填写了Port 属性_InstanceCount只能保持为1. 让端口保持动态我们可以在本地实现服务的伸缩。部署自己的网关部署自己的网关这听起来像是需要做很多工作实际上非常简单。我们需要与反向代理相同的行为只需要更多的控制。在我们这个开源的开发的世界这个问题已经解决了我们有开源的API网关Ocelot http://threemammals.com/ocelot 而且做得非常好可以完美的和Service Fabric 一起工作。我们将添加一个新的空aspnet core无状态服务让我们配置我们的端点。您需要知道我们的网关在哪里所以我们给它一个特定的端口。在ServiceManifest中设置端点的端口Endpoint Protocolhttp NameServiceEndpoint TypeInput Port8492 /网关是系统的入口点必须保持可用状态。我们在每个节点上部署它。修改ApplicationParameters中添加的参数NanoFabricGateway_InstanceCount。确保生产部署的值为-1。Parameter NameNanoFabricGateway_InstanceCount Value-1/请注意如果部署到本地群集则无法在同一端口上运行多个服务实例。对于本地开发群集要么将其保留为1要么让端口为动态。代码实现上并没有什么特殊的地方。配置Azure负载均衡器当然没有人想通过端口访问您的网站8492。接下来我们需要设置负载均衡器以指向我们新部署的网关。在部署在azure上的新集群可以参考这篇文章使用Powershell https://noelbundick.com/posts/service-fabric-cluster-quickstart/ 现有AppPortLBRule1端口80。编辑它并将后端端口更改为指向网关端口8492在我的情况下。同时请注意Load Balancer定义了一个Health Probe。如果健康检测未成功则负载均衡器将假定后端服务池不健康并且不会重定向您的请求。参考文章https://docs.microsoft.com/zh-cn/azure/service-fabric/service-fabric-api-management-overviewhttps://blog.geist.no/azure-service-fabric-introduction-part-2-our-endpoint-a-webapi-based-stateless-service/https://ocelot.readthedocs.io/en/latest/features/servicefabric.html原文地址:https://www.cnblogs.com/shanyou/p/9645815.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com
http://www.zqtcl.cn/news/984569/

相关文章:

  • 企业建设网站没有服务器代理网页浏览
  • 深圳网站建设新闻网站建设营销的企业
  • 建筑设计网站软件排名工具
  • wordpress theme珠宝最适合seo的网站源码
  • 建设工程规划许可证查询网站畜牧业网站模板
  • 做网站大概要多少钱页面网站缓存如何做
  • 家电网站建设需求分析朔州网络推广
  • 陕西交通建设集团网站体检网络营销中自建网站
  • 做游戏的php网站有哪些微信商城是什么
  • wordpress memcached redux深圳网站优化方法
  • 移动商城 网站建设方法方式韩国导航地图app
  • 企业网站源码是什么瑞安企业做网站
  • 佛山深圳建网站wordpress 段代码
  • 网站备案 强制仿牌网站容易被攻击吗
  • 网站做访问追踪js特效演示网站
  • 建设网站女装名字大全宝宝投票网站怎么做
  • 江苏省建设厅网站首页天津百度网站排名优化
  • 织梦网络设计工作室网站模板镇江市精神文明建设网站
  • 网站管理工具装修公司设计软件有哪些
  • 招标网站的服务费怎么做分录什么网站做玩具的比较多
  • 青海省住房建设厅网站WordPress主题启用出现错误
  • 自己怎么建网站网站的seo 如何优化
  • 博客网站模板下载如何自学美工
  • 哪个免费建站好专业seo要多少钱
  • 做3d建模贴图找哪个网站珠海建设网站公司简介
  • 网站开发过程前端后端qq刷赞网站咋做
  • 湘潭高新区建设局网站旅游做攻略的网站有哪些
  • wordpress网站云备份网站模块插件是怎么做的
  • 郑州市城乡建设规划网站深圳十佳设计公司排名
  • 上海建设项目环保验收公示网站两新支部网站建设