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

手机网站seo怎么做网页设计代码看不到图片怎么办

手机网站seo怎么做,网页设计代码看不到图片怎么办,wordpress同步微博内容,长沙做模板网站作者#xff1a;尹航 在前文基于阿里云服务网格流量泳道的全链路流量管理#xff08;一#xff09;#xff1a;严格模式流量泳道中#xff0c;我们介绍了使用服务网格 ASM 的严格模式流量泳道进行全链路灰度管理的使用场景。该模式对于应用程序无任何要求#xff0c;只需…作者尹航 在前文基于阿里云服务网格流量泳道的全链路流量管理一严格模式流量泳道中我们介绍了使用服务网格 ASM 的严格模式流量泳道进行全链路灰度管理的使用场景。该模式对于应用程序无任何要求只需配置流量泳道即可实现。本文继续介绍流量泳道的第二种模式宽松模式。 宽松模式流量泳道概述 与严格模式流量泳道相对的就是宽松模式流量泳道。在宽松模式下您只需要确保创建一条包含调用链路中所有服务的泳道基线泳道。其它泳道可以不包含调用链路上的全部服务。当一个泳道中的服务进行相互调用时若目标服务在当前泳道中不存在则请求将被转发到基线泳道中的相同服务并在请求目标在当前泳道中存在时将请求重新转发回当前泳道。 使用宽松模式的流量泳道时您的应用程序必须包含一个能够在整条调用链路中透传的请求头链路透传请求头且链路透传请求头的值对于每条请求都各不相同。同时您需要指定一个引流请求头ASM 网关将会根据引流请求头的内容将流量发往不同的流量泳道。本文介绍如何在 ASM 中使用宽松模式的流量泳道实现全链路流量管理。 宽松模式演练场景 1在链路中未透传引流请求头 本文首先介绍宽松模式流量泳道最常用的使用场景即调用链路中透传的请求头并非引流请求头的情况。 在这个宽松模式示例场景下将使用如图所示的三个服务 mocka、mockb、mockc 创建代表服务调用链三个版本的三个泳道s1、s2、s3。其中 s1 为基线泳道包含完整的三个服务而 s2 仅包含 mocka、mockc 两个服务s3 仅包含 mockb 一个服务。 前提条件 已创建 ASM 企业版或旗舰版实例且版本为 1.18.2.111 及以上。具体操作请参见创建 ASM 实例[1]。已添加集群到 ASM 实例。具体操作请参见添加集群到 ASM 实例[2]。已创建名称为 ingressgateway 的 ASM 网关。具体操作请参见创建入口网关服务[3]。已创建名称为 ingressgateway 且命名空间为 istio-system 的网关规则。具体操作请参见管理网关规则[4]。 apiVersion: networking.istio.io/v1beta1 kind: Gateway metadata:name: ingressgatewaynamespace: istio-system spec:selector:istio: ingressgatewayservers:- port:number: 80name: httpprotocol: HTTPhosts:- *步骤一部署示例服务 为 default 命名空间启用 Sidecar 网格代理自动注入。具体操作请参见启用自动注入[5]。关于自动注入的更多信息请参见开启 Sidecar 自动注入[6]。2. 在 ACK 集群中执行以下命令部署示例服务。 kubectl apply -f https://alibabacloudservicemesh.oss-cn-beijing.aliyuncs.com/asm-labs/swimlane/v1/mock-v1.yaml kubectl apply -f https://alibabacloudservicemesh.oss-cn-beijing.aliyuncs.com/asm-labs/swimlane/v2/mock-v2.yaml kubectl apply -f https://alibabacloudservicemesh.oss-cn-beijing.aliyuncs.com/asm-labs/swimlane/v3/mock-v3.yaml步骤二创建泳道组和对应泳道 创建泳道组。 a. 登录 ASM 控制台[7]在左侧导航栏选择服务网格 网格管理。 b. 在网格管理页面单击目标实例名称然后在左侧导航栏选择流量管理中心 流量泳道。 c. 在流量泳道页面单击创建泳道组在创建泳道组面板配置相关信息然后单击确定。 配置项说明泳道组名称本示例配置为test。入口网关选择ingressgateway。泳道模式选择宽松模式请求头设定由于示例应用在调用链路中透传了请求头my-request-id链路透传请求头填写my-request-id。引流请求头用于网关根据请求头内容向不同泳道引流及泳道上下文保持可任意指定这里引流请求头填写x-asm-prefer-tag。泳道服务选择目标Kubernetes集群和default命名空间在下方列表中选中mocka、mockb和mockc服务单击图标添加目标服务到已选择区域。 配置完成后会自动生成对应的流量标签 TrafficLabel。例如针对 mocka 服务会生成如下的流量标签 TrafficLabel。 apiVersion: istio.alibabacloud.com/v1beta1 kind: TrafficLabel metadata:labels:asm-system: trueprovider: asmswimlane-group: testname: asm-swimlane-test-mockanamespace: default spec:rules:- labels:- name: asm-labelvalueFrom:- $getExternalInboundRequestHeader(x-asm-prefer-tag, my-request-id)workloadSelector:labels:app: mocka创建 s1、s2、s3 泳道并分别绑定 v1、v2、v3 版本。 a. 在流量泳道页面的流量规则定义区域单击创建泳道。 b. 在创建泳道对话框配置相关信息然后单击确定。 配置项说明泳道名称对于不同泳道分别填写s1、s2和s3。配置服务标签本示例中标签名称配置为ASM_TRAFFIC_TAG针对s1、s2、s3泳道标签值分别配置为v1、v2和v3。添加服务对于s1泳道选择mocka(default)、mockb(default)和mockc(default)。对于s2泳道选择mocka(default)、mockc(default)。对于s3泳道选择mockb(default)。 下图给出了创建 s1 泳道时的界面示例 默认情况下您在泳道组中创建的第一个泳道将被设定为基线泳道您可以修改基线泳道当流量发往其它泳道中不存在的服务时通过回退机制将请求转发至基线泳道。三个泳道创建完成后示例效果如下 每创建一个泳道会自动创建对应的目标规则 DestinationRule。例如所有泳道创建完成后会针对 s1 服务自动创建如下的目标规则 DestinationRule。 apiVersion: networking.istio.io/v1beta1 kind: DestinationRule metadata:labels:asm-system: trueprovider: asmswimlane-group: testname: trafficlabel-dr-test-default-mockanamespace: istio-system spec:host: mocka.default.svc.cluster.localsubsets:- labels:ASM_TRAFFIC_TAG: v1name: s1- labels:ASM_TRAFFIC_TAG: v2name: s2三个泳道创建完成后针对泳道组中的每个服务都将生成泳道规则对应的虚拟服务 VirtualService。例如针对 mocka 服务会自动创建如下虚拟服务 VirtualService。 apiVersion: networking.istio.io/v1beta1 kind: VirtualService metadata:labels:asm-system: trueprovider: asmswimlane-group: testname: trafficlabel-vs-test-default-mockanamespace: istio-system spec:hosts:- mocka.default.svc.cluster.localhttp:- name: defaultroute:- destination:host: mocka.default.svc.cluster.localsubset: $asm-labelfallback:target:host: mocka.default.svc.cluster.localsubset: s1创建各个泳道对应的引流规则。下文以创建 s1 泳道的引流规则为例进行说明请参照以下步骤创建 s2 和 s3 泳道的引流规则。 a. 在流量泳道页面的流量规则定义区域单击目标泳道右侧操作列下的引流规则。 b. 在添加引流规则对话框配置相关信息然后单击确定。本文以泳道服务对应入口 API 均为 /mock 为例为每个泳道配置相同的引流规则。 配置项说明入口服务选择mocka.default.svc.cluster.local。引流规则配置名称为r1域名为*。匹配请求的URI配置匹配方式为精确匹配内容为/mock。 三个泳道的引流规则创建成功后示例效果如下 创建成功后会自动生成每条泳道的引流规则即虚拟服务 VirtualService。例如针对泳道 s2 会生成如下的虚拟服务 VirtualService apiVersion: networking.istio.io/v1beta1 kind: VirtualService metadata:labels:asm-system: trueprovider: asmswimlane-group: testname: swimlane-ingress-vs-test-s2namespace: istio-system spec:gateways:- istio-system/ingressgatewayhosts:- *http:- match:- headers:x-asm-prefer-tag:exact: s2uri:exact: /mockname: r2route:- destination:host: mocka.default.svc.cluster.localsubset: s2fallback:target:host: mocka.default.svc.cluster.localsubset: s1步骤三验证全链路灰度功能是否生效 获取 ASM 网关的公网 IP。具体操作请参见获取 ASM 网关地址[8]。 执行以下命令设置环境变量。xxx.xxx.xxx.xxx 为上一步获取的 IP。 export ASM_GATEWAY_IPxxx.xxx.xxx.xxx验证全灰度链路功能是否生效。 a. 执行以下命令查看 s1 泳道的访问效果。x-asm-prefer-tag 对应的值 s1 为步骤二创建 s1 泳道时配置的泳道名称。 for i in {1..100}; do curl   -H x-asm-prefer-tag: s1 -Hmy-request-id: x000$i http://${ASM_GATEWAY_IP}/mock ;  echo ; sleep 1; done;预期输出 - mocka(version: v1, ip: 172.17.0.54)- mockb(version: v1, ip: 172.17.0.129)- mockc(version: v1, ip: 172.17.0.130)由预期输出得到通过设置 HTTP 标头 x-asm-prefer-tag: s1 声明的流量流向 s1 泳道下的相关服务符合预期。 b. 执行以下命令查看 s2 泳道的访问效果。x-asm-prefer-tag 对应的值 s2 为步骤二创建 s2 泳道时配置的泳道名称。 for i in {1..100}; do curl   -H x-asm-prefer-tag: s2 -Hmy-request-id: x000$i http://${ASM_GATEWAY_IP}/mock ;  echo ; sleep 1; done;预期输出 - mocka(version: v2, ip: 172.17.0.9)- mockb(version: v1, ip: 172.17.0.129)- mockc(version: v2, ip: 172.17.0.128)由预期输出得到通过设置 HTTP 标头 x-asm-prefer-tag: s2 声明的流量流向 s2 泳道下的相关服务当流量发往泳道 s2 中不存在的服务 mockb 时流量通过回退机制发往基线泳道 s1 中的 mockb 服务后续流量发往 mockc 服务时目标重新设定为 s2 泳道中的 mockc 服务符合预期。 c. 执行以下命令查看 s3 泳道的访问效果。x-asm-prefer-tag 对应的值 s3 为步骤二创建 s3 泳道时配置的泳道名称。 for i in {1..100}; do curl   -H x-asm-prefer-tag: s3 -Hmy-request-id: x000$i http://${ASM_GATEWAY_IP}/mock ;  echo ; sleep 1; done;预期输出 mocka(version: v1, ip: 192.168.1.103)- mockb(version: v3, ip: 192.168.1.120)- mockc(version: v1, ip: 192.168.1.105)由预期输出得到通过设置 HTTP 标头 x-asm-prefer-tag: s3 声明的流量流向 s3 泳道下的相关服务当流量发往泳道 s3 中不存在的服务 mockb、mockc 时流量通过回退机制发往基线泳道 s1 中的 mockb、mockc 服务符合预期。 宽松模式演练场景 2在链路中已透传引流请求头 在宽松模式演练场景 1 中引流请求头与链路透传请求头并不相同分别为 my-request-id 和 x-asm-prefer-tag。在这种情况下需要链路透传请求头中的内容针对每次请求都不相同即每次调用链路都有唯一的链路 id。而如果同时将链路透传请求头也指定为引流请求头则针对链路透传请求头不再需要上述的限制只需用链路透传请求头的内容向不同泳道引流即可。 在第二个宽松模式示例场景下将使用如图所示的三个服务 mocka、mockb、mockc 创建代表服务调用链三个版本的三个泳道s1、s2、s3。其中 s1 为基线泳道包含完整的三个服务而 s2 仅包含 mocka、mockc两个服务s3 仅包含 mockb 一个服务。同时链路透传请求头与引流请求头都指定为 my-request-id。 前提条件 已创建 ASM 企业版或旗舰版实例且版本为 1.18.2.111 及以上。具体操作请参见创建 ASM 实例[1]。已添加集群到 ASM 实例。具体操作请参见添加集群到 ASM 实例[2]。已创建名称为 ingressgateway 的 ASM 网关。具体操作请参见创建入口网关服务[3]。已创建名称为 ingressgateway 且命名空间为 istio-system 的网关规则。具体操作请参见管理网关规则[4]。 apiVersion: networking.istio.io/v1beta1 kind: Gateway metadata:name: ingressgatewaynamespace: istio-system spec:selector:istio: ingressgatewayservers:- port:number: 80name: httpprotocol: HTTPhosts:- *步骤一部署示例服务 为 default 命名空间启用 Sidecar 网格代理自动注入。具体操作请参见启用自动注入[5]。关于自动注入的更多信息请参见开启 Sidecar 自动注入[6]。2. 在 ACK 集群中执行以下命令部署示例服务。 kubectl apply -f https://alibabacloudservicemesh.oss-cn-beijing.aliyuncs.com/asm-labs/swimlane/v1/mock-v1.yaml kubectl apply -f https://alibabacloudservicemesh.oss-cn-beijing.aliyuncs.com/asm-labs/swimlane/v2/mock-v2.yaml kubectl apply -f https://alibabacloudservicemesh.oss-cn-beijing.aliyuncs.com/asm-labs/swimlane/v3/mock-v3.yaml步骤二创建泳道组和对应泳道 创建泳道组。 a. 登录 ASM 控制台[7]在左侧导航栏选择服务网格 网格管理。 b. 在网格管理页面单击目标实例名称然后在左侧导航栏选择流量管理中心 流量泳道。 c. 在流量泳道页面单击创建泳道组在创建泳道组面板配置相关信息然后单击确定。 配置项说明泳道组名称本示例配置为test。入口网关选择ingressgateway。泳道模式选择宽松模式请求头设定在本例中引流请求头与链路透传请求头都为my-request-id。泳道服务选择目标Kubernetes集群和default命名空间在下方列表中选中mocka、mockb和mockc服务单击图标添加目标服务到已选择区域。 创建 s1、s2、s3 泳道并分别绑定 v1、v2、v3 版本。 a. 在流量泳道页面的流量规则定义区域单击创建泳道。 b. 在创建泳道对话框配置相关信息然后单击确定。 配置项说明泳道名称对于三条泳道泳道名称分别填写s1、s2和s3。配置服务标签本示例中标签名称配置为ASM_TRAFFIC_TAG针对s1、s2、s3泳道标签值分别配置为v1、v2和v3。添加服务对于s1泳道选择mocka(default)、mockb(default)和mockc(default)。对于s2泳道选择mocka(default)、mockc(default)。对于s3泳道选择mockb(default)。 下图给出了创建 s1 泳道时的界面示例 默认情况下您在泳道组中创建的第一个泳道将被设定为基线泳道您可以修改基线泳道当流量发往其它泳道中不存在的服务时通过回退机制将请求转发至基线泳道。 三个泳道创建完成后示例效果如下 每创建一个泳道会自动创建对应的目标规则 DestinationRule。例如所有泳道创建完成后会针对 s1 服务自动创建如下的目标规则 DestinationRule。 apiVersion: networking.istio.io/v1beta1 kind: DestinationRule metadata:labels:asm-system: trueprovider: asmswimlane-group: testname: trafficlabel-dr-test-default-mockanamespace: istio-system spec:host: mocka.default.svc.cluster.localsubsets:- labels:ASM_TRAFFIC_TAG: v1name: s1- labels:ASM_TRAFFIC_TAG: v2name: s2三个泳道创建完成后针对泳道组中的每个服务都将生成泳道规则对应的虚拟服务 VirtualService。例如针对 mocka 服务会自动创建如下虚拟服务 VirtualService。 apiVersion: networking.istio.io/v1beta1 kind: VirtualService metadata:labels:asm-system: trueprovider: asmswimlane-group: testname: trafficlabel-vs-test-default-mockanamespace: istio-system spec:hosts:- mocka.default.svc.cluster.localhttp:- match:- headers:my-request-id:exact: s1route:- destination:host: mocka.default.svc.cluster.localsubset: s1fallback:target:host: mocka.default.svc.cluster.localsubset: s1- match:- headers:my-request-id:exact: s2route:- destination:host: mocka.default.svc.cluster.localsubset: s2fallback:target:host: mocka.default.svc.cluster.localsubset: s1- match:- headers:my-request-id:exact: s3route:- destination:host: mocka.default.svc.cluster.localsubset: s3fallback:target:host: mocka.default.svc.cluster.localsubset: s1创建各个泳道对应的引流规则。下文以创建 s1 泳道的引流规则为例进行说明请参照以下步骤创建 s2 和 s3 泳道的引流规则。 a. 在流量泳道页面的流量规则定义区域单击目标泳道右侧操作列下的引流规则。 b. 在添加引流规则对话框配置相关信息然后单击确定。本文以泳道服务对应入口 API 均为 /mock 为例为每个泳道配置相同的引流规则。 配置项说明入口服务选择mocka.default.svc.cluster.local。引流规则配置名称为r1域名为*。匹配请求的URI配置匹配方式为精确匹配内容为/mock。 三个泳道的引流规则创建成功后示例效果如下 创建成功后会自动生成每条泳道的引流规则即虚拟服务 VirtualService。例如针对泳道 s2 会生成如下的虚拟服务 VirtualService apiVersion: networking.istio.io/v1beta1 kind: VirtualService metadata:labels:asm-system: trueprovider: asmswimlane-group: testname: swimlane-ingress-vs-test-s2namespace: istio-system spec:gateways:- istio-system/ingressgatewayhosts:- *http:- match:- headers:my-request-id:exact: s2uri:exact: /mockname: r2route:- destination:host: mocka.default.svc.cluster.localsubset: s2fallback:target:host: mocka.default.svc.cluster.localsubset: s1步骤三验证全链路灰度功能是否生效 获取 ASM 网关的公网 IP。具体操作请参见获取 ASM 网关地址[8]。 执行以下命令设置环境变量。xxx.xxx.xxx.xxx为上一步获取的 IP。 export ASM_GATEWAY_IPxxx.xxx.xxx.xxx验证全灰度链路功能是否生效。 a. 执行以下命令查看 s1 泳道的访问效果。my-request-id 对应的值 s1 为步骤二创建 s1 泳道时配置的泳道名称。 for i in {1..100}; do curl -Hmy-request-id: s1 http://${ASM_GATEWAY_IP}/mock ;  echo ; sleep 1; done;预期输出 - mocka(version: v1, ip: 172.17.0.54)- mockb(version: v1, ip: 172.17.0.129)- mockc(version: v1, ip: 172.17.0.130)由预期输出得到通过设置 HTTP 标头 my-request-id: s1 声明的流量流向 s1 泳道下的相关服务符合预期。 b. 执行以下命令查看 s2 泳道的访问效果。my-request-id 对应的值 s2 为步骤二创建 s2 泳道时配置的泳道名称。 for i in {1..100}; do curl -Hmy-request-id: s2 http://${ASM_GATEWAY_IP}/mock ;  echo ; sleep 1; done;预期输出 mocka(version: v2, ip: 192.168.1.101)- mockb(version: v1, ip: 192.168.1.100)- mockc(version: v2, ip: 192.168.1.116)由预期输出得到通过设置 HTTP 标头 my-request-id: s2 声明的流量流向 s2 泳道下的相关服务当流量发往泳道 s2 中不存在的服务 mockb 时流量通过回退机制发往基线泳道 s1 中的 mockb 服务后续流量发往 mockc 服务时目标重新设定为 s2 泳道中的 mockc 服务符合预期。 c. 执行以下命令查看 s3 泳道的访问效果。my-request-id 对应的值 s3 为步骤二创建 s3 泳道时配置的泳道名称。 for i in {1..100}; do curl -Hmy-request-id: s3 http://${ASM_GATEWAY_IP}/mock ;  echo ; sleep 1; done;预期输出 mocka(version: v1, ip: 192.168.1.103)- mockb(version: v3, ip: 192.168.1.120)- mockc(version: v1, ip: 192.168.1.105)由预期输出得到通过设置 HTTP 标头 my-request-id: s3 声明的流量流向 s3 泳道下的相关服务当流量发往泳道 s3 中不存在的服务 mockb、mockc 时流量通过回退机制发往基线泳道 s1 中的 mockb、mockc 服务符合预期。 相关链接 [1] 创建 ASM 实例 https://help.aliyun.com/document_detail/147793.html#task-2370657 [2] 添加集群到 ASM 实例 https://help.aliyun.com/document_detail/148231.html#task-2372122 [3] 创建入口网关服务 https://help.aliyun.com/document_detail/150510.html#task-2372970 [4] 管理网关规则 https://help.aliyun.com/document_detail/150504.html [5] 启用自动注入 https://help.aliyun.com/document_detail/150501.html#section-30o-vil-3n7 [6] 开启 Sidecar 自动注入 https://help.aliyun.com/document_detail/186136.html#task-1962690 [7] ASM 控制台 https://servicemesh.console.aliyun.com/ [8] 获取 ASM 网关地址 https://help.aliyun.com/document_detail/444079.html#section-ida-zt6-md7
http://www.sadfv.cn/news/235805/

相关文章:

  • 重庆智能网站建设设计贵阳网站建设是什么
  • 手机营销网站制作西西美人美体
  • 行业网站建设收费明细做购物网站需要接口吗
  • 网站建设综合实训心得体会湘潭做网站的公司
  • 德阳网站开发熊掌号北京企业建站服务中企
  • 找一个网站做优化分析我要表白网站在线制作
  • 怎样做金融网站百度seo推广计划类型包含
  • wordpress建站优缺点wordpress仿喜马拉雅
  • 电大亿唐网不做网站做品牌人才招聘网最新招聘2023
  • 济南外贸网站建设公司建设工程教育网题库
  • 黔东南网站建设学编程从哪儿入手
  • 为什么做织梦网站时图片出不来开通微信公众号流程需要什么
  • 网站建设开发公司报价长沙旅游文案
  • wordpress 商场模板辽宁好的百度seo公司
  • 小新pro更改网站设置佰牛深圳网站建设
  • 网站设计与开发专家wordpress 推广 插件
  • 网站建设方案文库网络推广业务员是干什么的
  • 深圳网站优化公司哪家好品牌建设让
  • 域名购买后网站搭建艾辰做网站
  • 自己可以建个免费网站吗seo咨询邵阳
  • wordpress网站注册不了logo创意设计
  • 百度网做网站吗广告设计网址
  • 做网站找哪家好?聚禄鼎科技是一家给企业做网站的公司永久免费云linux服务器网页
  • 手机网站建设技术方案书百度地图手机网页版
  • 天河做网站服务什么做网站赚钱
  • 网站单页生成器导航网站怎么建
  • 越城区建设和交通运输局网站免费建站微信
  • 医院网站备案流程网络工程师证
  • 网站改成html5备案ip 查询网站
  • 个人网站开发总结文档html网页作业