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

网站赚钱的方式外资公司代理注册

网站赚钱的方式,外资公司代理注册,站长之家网站排名,嘉定江桥网站建设简介#xff1a;很多用户量大并发度高的应用系统为了避免发布过程中的流量有损#xff0c;一般选择在流量较小的半夜发布#xff0c;虽然这样做有效果#xff0c;但不可控导致背后的研发运维成本对企业来说是一笔不小的负担。基于此#xff0c;阿里云微服务引擎 MSE 在应用…简介很多用户量大并发度高的应用系统为了避免发布过程中的流量有损一般选择在流量较小的半夜发布虽然这样做有效果但不可控导致背后的研发运维成本对企业来说是一笔不小的负担。基于此阿里云微服务引擎 MSE 在应用发布过程中通过应用下线时进行自适应等待主动通知应用上线时就绪检查与微服务生命周期对齐服务预热等技术手段所提供的微服务应用无损上下线功能能有效帮助企业规避线上发布所出现的流量资损。 很多用户量大并发度高的应用系统为了避免发布过程中的流量有损一般选择在流量较小的半夜发布虽然这样做有效果但不可控导致背后的研发运维成本对企业来说是一笔不小的负担。基于此阿里云微服务引擎 MSE 在应用发布过程中通过应用下线时进行自适应等待主动通知应用上线时就绪检查与微服务生命周期对齐服务预热等技术手段所提供的微服务应用无损上下线功能能有效帮助企业规避线上发布所出现的流量资损。 无损上下线功能设计 常见的流量有损现象出现的原因包括但不限于以下几种 服务无法及时下线服务消费者感知注册中心服务列表存在延时导致应用下线后在一段时间内服务消费者仍然调用已下线应用造成请求报错。初始化慢应用刚启动接收线上流量进行资源初始化加载由于流量太大初始化过程慢出现大量请求响应超时、阻塞、资源耗尽从而造成刚启动应用宕机。注册太早服务存在异步资源加载问题当服务还未初始化完全就被注册到注册中心导致调用时资源未加载完毕出现请求响应慢、调用超时报错等现象。发布态与运行态未对齐使用 Kubernetes 的滚动发布功能进行应用发布由于Kubernetes 的滚动发布一般关联的就绪检查机制是通过检查应用特定端口是否启动作为应用就绪的标志来触发下一批次的实例发布但在微服务应用中只有当应用完成了服务注册才可对外提供服务调用。因此某些情况下会出现新应用还未注册到注册中心老应用实例就被下线导致无服务可用。 无损下线 其中的服务无法及时下线问题如下图 1 所示 图1. Spring Cloud 应用消费者无法及时感知提供者服务下线 对于 Spring Cloud 应用当应用的两个实例 A’ 和 A 中的 A 下线时由于 Spring Cloud 框架为了在可用性和性能方面做平衡消费者默认是 30s 去注册中心拉取最新的服务列表因此 A 实例的下线不能被实时感知此时消费者继续通过本地缓存继续调用 A 就会出现调用已下线实例出现流量有损。 针对该问题阿里云微服务引擎 MSE 基于 Java Agent 字节码技术设计实现的无损下线功能如下图 2 所示 图2. 无损下线方案 在该套无损下线方案中服务提供者应用仅需接入 MSE相比一般的有损下线。应用在下线前会有一段自适应等待时期该时期待下线应用会通过主动通知的方式向其在自适应等待阶段发送了请求的服务消费者发送下线事件消费者接收到下线事件后会主动拉取注册中心服务实例列表以便实时感知应用下线事件避免调用已下线实例造成应用下线流量有损。 无损上线 延迟加载是软件框架设计中最常见的一种策略例如在 Spring Cloud 框架中 Ribbon 组件的拉取服务列表初始化时机默认是要等到服务的第 1 次调用时刻例如下图 3 是 Spring Cloud 应用中第 1 次和第 2 次通过 RestTemplate 调用远程服务的请求耗时情况 图3. 应用启动资源初始化与正常运行过程中耗时情况对比 由测试结果可见第一次调用由于进行了一些资源初始化耗时是正常情况的数倍之多。因此把新应用发布到线上直接处理大流量极易出现大量请求响应慢资源阻塞应用实例宕机的现象。针对该类大流量下应用资源初始化慢问题MSE 提供的小流量预热功能通过调节刚上线应用所分配的流量帮助其在进行充分预热后再处理正常流量从而对新实例进行保护。小流量预热过程如下图 4 所示 图4. 小流量服务预热过程 QPS 与启动时间关系图 除了针对上述应用第一次调用初始化慢所造成的有损上线问题MSE 还提供了资源预建连接、延迟注册、确保 Kubernetes 就绪检查通过前完成服务注册和确保 Kubernetes 就绪检查通过前完成服务预热等一整套无损上线手段来满足各类不同应用的无损上线需求整套方案如图 5 所示 图5. MSE 无损上线方案 如何使用 MSE 的无损上下线 接下来将演示阿里云微服务引擎 MSE 在应用发布时提供的无损上下线和服务预热能力最佳实践。假设应用的架构由 Zuul 网关以及后端的微服务应用实例Spring Cloud构成。具体的后端调用链路有购物车应用 A交易中心应用 B库存中心应用 C这些应用中的服务之间通过 Nacos 注册中心实现服务注册与发现。 前提条件 开启 MSE 微服务治理 已创建 Kubernetes 集群请参见创建 Kubernetes 托管版集群[1]。已开通 MSE 微服务治理专业版请参见开通 MSE 微服务治理[2]。 准备工作 注意本实践所使用的 Agent 目前还在灰度中需要对应用 Agent 进行灰度升级升级文档 https://help.aliyun.com/document_detail/392373.html 应用部署在不同的 Region暂时仅支持国内 Region请使用对应的 Agent 下载地址 http://arms-apm-cn-[regionId].oss-cn-[regionId].aliyuncs.com/2.7.1.3-mse-beta/ 注意替换地址中的[RegionId]RegionId 是阿里云 RegionId。 例如 Region 北京 Agent 地址为http://arms-apm-cn-beijing.oss-cn-beijing.aliyuncs.com/2.7.1.3-mse-beta/ 应用部署流量架构图 图6. 演示应用部署架构 流量压力来源 在 spring-cloud-zuul 应用中如图 6 所示其分别向 spring-cloud-a 的灰度版本和正常版本以 QPS 为 100 的速率同时进行服务调用。 部署 Demo 应用程序 将下面的内容保存到一个文件中假设取名为 mse-demo.yaml并执行 kubectl apply -f mse-demo.yaml 以部署应用到提前创建好的 Kubernetes 集群中注意因为 demo 中有 CronHPA 任务所以请先在集群中安装 ack-kubernetes-cronhpa-controller 组件具体在容器服务-Kubernetes-市场-应用目录中搜索组件在测试集群中进行安装这里我们将要部署 ZuulA, B 和 C 三个应用其中 A、B 两个应用分别部署一个基线版本和一个灰度版本B 应用的基线版本关闭了无损下线能力灰度版本开启了无损下线能力。C 应用开启了服务预热能力其中预热时长为 120 秒。 # Nacos Server --- apiVersion: apps/v1 kind: Deployment metadata:labels:app: nacos-servername: nacos-server spec:replicas: 1selector:matchLabels:app: nacos-servertemplate:metadata:labels:app: nacos-serverspec:containers:- env:- name: MODEvalue: standaloneimage: registry.cn-shanghai.aliyuncs.com/yizhan/nacos-server:latestimagePullPolicy: Alwaysname: nacos-serverresources:requests:cpu: 250mmemory: 512MidnsPolicy: ClusterFirstrestartPolicy: Always# Nacos Server Service 配置 --- apiVersion: v1 kind: Service metadata:name: nacos-server spec:ports:- port: 8848protocol: TCPtargetPort: 8848selector:app: nacos-servertype: ClusterIP#入口 zuul 应用 --- apiVersion: apps/v1 kind: Deployment metadata:name: spring-cloud-zuul spec:replicas: 1selector:matchLabels:app: spring-cloud-zuultemplate:metadata:annotations:msePilotAutoEnable: onmsePilotCreateAppName: spring-cloud-zuullabels:app: spring-cloud-zuulspec:containers:- env:- name: JAVA_HOMEvalue: /usr/lib/jvm/java-1.8-openjdk/jre- name: LANGvalue: C.UTF-8image: registry.cn-shanghai.aliyuncs.com/yizhan/spring-cloud-zuul:1.0.1imagePullPolicy: Alwaysname: spring-cloud-zuulports:- containerPort: 20000# A 应用 base 版本,开启按照机器纬度全链路透传 --- apiVersion: apps/v1 kind: Deployment metadata:labels:app: spring-cloud-aname: spring-cloud-a spec:replicas: 2selector:matchLabels:app: spring-cloud-atemplate:metadata:annotations:msePilotCreateAppName: spring-cloud-amsePilotAutoEnable: onlabels:app: spring-cloud-aspec:containers:- env:- name: LANGvalue: C.UTF-8- name: JAVA_HOMEvalue: /usr/lib/jvm/java-1.8-openjdk/jre- name: profiler.micro.service.tag.trace.enablevalue: trueimage: registry.cn-shanghai.aliyuncs.com/yizhan/spring-cloud-a:0.1-SNAPSHOTimagePullPolicy: Alwaysname: spring-cloud-aports:- containerPort: 20001protocol: TCPresources:requests:cpu: 250mmemory: 512MilivenessProbe:tcpSocket:port: 20001initialDelaySeconds: 10periodSeconds: 30# A 应用 gray 版本,开启按照机器纬度全链路透传 --- apiVersion: apps/v1 kind: Deployment metadata:labels:app: spring-cloud-a-grayname: spring-cloud-a-gray spec:replicas: 2selector:matchLabels:app: spring-cloud-a-graystrategy:template:metadata:annotations:alicloud.service.tag: graymsePilotCreateAppName: spring-cloud -amsePilotAutoEnable: onlabels:app: spring-cloud-a-grayspec:containers:- env:- name: LANGvalue: C.UTF-8- name: JAVA_HOMEvalue: /usr/lib/jvm/java-1.8-openjdk/jre- name: profiler.micro.service.tag.trace.enablevalue: trueimage: registry.cn-shanghai.aliyuncs.com/yizhan/spring-cloud-a:0.1-SNAPSHOTimagePullPolicy: Alwaysname: spring-cloud-a-grayports:- containerPort: 20001protocol: TCPresources:requests:cpu: 250mmemory: 512MilivenessProbe:tcpSocket:port: 20001initialDelaySeconds: 10periodSeconds: 30# B 应用 base 版本关闭无损下线能力 --- apiVersion: apps/v1 kind: Deployment metadata:labels:app: spring-cloud-bname: spring-cloud-b spec:replicas: 2selector:matchLabels:app: spring-cloud-bstrategy:template:metadata:annotations:msePilotCreateAppName: spring-cloud-bmsePilotAutoEnable: onlabels:app: spring-cloud-bspec:containers:- env:- name: LANGvalue: C.UTF-8- name: JAVA_HOMEvalue: /usr/lib/jvm/java-1.8-openjdk/jre- name: micro.service.shutdown.server.enablevalue: false- name: profiler.micro.service.http.server.enablevalue: falseimage: registry.cn-shanghai.aliyuncs.com/yizhan/spring-cloud-b:0.1-SNAPSHOTimagePullPolicy: Alwaysname: spring-cloud-bports:- containerPort: 8080protocol: TCPresources:requests:cpu: 250mmemory: 512MilivenessProbe:tcpSocket:port: 20002initialDelaySeconds: 10periodSeconds: 30# B 应用 gray 版本,默认开启无损下线功能 --- apiVersion: apps/v1 kind: Deployment metadata:labels:app: spring-cloud-b-grayname: spring-cloud-b-gray spec:replicas: 2selector:matchLabels:app: spring-cloud-b-graytemplate:metadata:annotations:alicloud.service.tag: graymsePilotCreateAppName: spring-cloud-bmsePilotAutoEnable: onlabels:app: spring-cloud-b-grayspec:containers:- env:- name: LANGvalue: C.UTF-8- name: JAVA_HOMEvalue: /usr/lib/jvm/java-1.8-openjdk/jreimage: registry.cn-shanghai.aliyuncs.com/yizhan/spring-cloud-b:0.1-SNAPSHOTimagePullPolicy: Alwaysname: spring-cloud-b-grayports:- containerPort: 8080protocol: TCPresources:requests:cpu: 250mmemory: 512Milifecycle:preStop:exec:command:- /bin/sh- -c- -wget http://127.0.0.1:54199/offline 2/tmp/null;sleep30;exit 0livenessProbe:tcpSocket:port: 20002initialDelaySeconds: 10periodSeconds: 30# C 应用 base 版本 --- apiVersion: apps/v1 kind: Deployment metadata:labels:app: spring-cloud-cname: spring-cloud-c spec:replicas: 2selector:matchLabels:app: spring-cloud-ctemplate:metadata:annotations:msePilotCreateAppName: spring-cloud-cmsePilotAutoEnable: onlabels:app: spring-cloud-cspec:containers:- env:- name: LANGvalue: C.UTF-8- name: JAVA_HOMEvalue: /usr/lib/jvm/java-1.8-openjdk/jreimage: registry.cn-shanghai.aliyuncs.com/yizhan/spring-cloud-c:0.1-SNAPSHOTimagePullPolicy: Alwaysname: spring-cloud-cports:- containerPort: 8080protocol: TCPresources:requests:cpu: 250mmemory: 512MilivenessProbe:tcpSocket:port: 20003initialDelaySeconds: 10periodSeconds: 30#HPA 配置 --- apiVersion: autoscaling.alibabacloud.com/v1beta1 kind: CronHorizontalPodAutoscaler metadata:labels:controller-tools.k8s.io: 1.0name: spring-cloud-b spec:scaleTargetRef:apiVersion: apps/v1beta2kind: Deploymentname: spring-cloud-bjobs:- name: scale-downschedule: 0 0/5 * * * *targetSize: 1- name: scale-upschedule: 10 0/5 * * * *targetSize: 2 --- apiVersion: autoscaling.alibabacloud.com/v1beta1 kind: CronHorizontalPodAutoscaler metadata:labels:controller-tools.k8s.io: 1.0name: spring-cloud-b-gray spec:scaleTargetRef:apiVersion: apps/v1beta2kind: Deploymentname: spring-cloud-b-grayjobs:- name: scale-downschedule: 0 0/5 * * * *targetSize: 1- name: scale-upschedule: 10 0/5 * * * *targetSize: 2 --- apiVersion: autoscaling.alibabacloud.com/v1beta1 kind: CronHorizontalPodAutoscaler metadata:labels:controller-tools.k8s.io: 1.0name: spring-cloud-c spec:scaleTargetRef:apiVersion: apps/v1beta2kind: Deploymentname: spring-cloud-cjobs:- name: scale-downschedule: 0 2/5 * * * *targetSize: 1 - name: scale-upschedule: 10 2/5 * * * *targetSize: 2# zuul 网关开启 SLB 暴露展示页面 --- apiVersion: v1 kind: Service metadata:name: zuul-slb spec:ports:- port: 80protocol: TCPtargetPort: 20000selector:app: spring-cloud-zuultype: ClusterIP# a 应用暴露 k8s service --- apiVersion: v1 kind: Service metadata:name: spring-cloud-a-base spec:ports:- name: httpport: 20001protocol: TCPtargetPort: 20001selector:app: spring-cloud-a--- apiVersion: v1 kind: Service metadata:name: spring-cloud-a-gray spec:ports:- name: httpport: 20001protocol: TCPtargetPort: 20001selector:app: spring-cloud-a-gray# Nacos Server SLB Service 配置 --- apiVersion: v1 kind: Service metadata:name: nacos-slb spec:ports:- port: 8848protocol: TCPtargetPort: 8848selector:app: nacos-servertype: LoadBalancer结果验证一无损下线功能 由于我们对 spring-cloud-b 跟 spring-cloud-b-gray 应用均开启了定时 HPA模拟每 5 分钟进行一次定时的扩缩容。 登录 MSE 控制台进入微服务治理中心-应用列表-spring-cloud-a-应用详情从应用监控曲线我们可以看到 spring-cloud-a 应用的流量数据 gray 版本的流量在 pod 扩缩容的过程中请求错误数为 0无流量损失。未打标的版本由于关闭了无损下线功能在 pod 扩缩容的过程中有 20 个从 spring-cloud-a 发到 spring-cloud-b 的请求出现报错发生了请求流量损耗。 结果验证二服务预热功能 我们在 spring-cloud-c 应用开启了定时 HPA 模拟应用上线过程每隔 5 分钟做一次伸缩在扩缩容周期内第 2 分钟第 0 秒缩容到 1 个节点第 2 分钟第 10 秒扩容到 2 个节点。 在预热应用的消费端 spring-cloud-b 开启服务预热功能。 在预热应用的服务提供端 spring-cloud-c 开启服务预热功能。预热时长配置为 120 秒。 观察节点的流量发现节点流量缓慢上升。并且能看到节点的预热开始和结束时间以及相关的事件。 从上图可以看到开启预热功能的应用重启后的流量会随时间缓慢增加在一些应用启动过程中需要预建连接池和缓存等资源的慢启动场景开启服务预热能有效保护应用启动过程中缓存资源有序创建保障应用安全启动从而实现应用上线的流量无损。 方案介绍 实操 更多方案设计细节请点击下方链接观看微服务应用如何实现无损上下线主题直播视频回放 微服务应用如何实现无损上下线-云栖号-阿里云 原文链接 本文为阿里云原创内容未经允许不得转载。
http://www.pierceye.com/news/810626/

相关文章:

  • 网站后台素材wordpress适用linux
  • 开发一个app大概需要多少钱seo按照搜索引擎的什么对网站
  • 比较好的网站建设公司电话珠海开发网站公司
  • 响应式网站怎么做无缝轮播图网站域名在哪里
  • 大连网站建设设计公司哪家好临海市城乡建设规划局网站
  • 福州商城网站建设网站建设的域名和空间价位
  • 如何做外卖网站网页设计照片
  • 长沙河西做网站自己做的网站怎么设置文件下载
  • 计算机本科论文 网站建设wordpress如何添加关键词和描述
  • div嵌套影响网站收录唐山做网站多少钱
  • 做网站挂谷歌广告赚钱吗windows优化大师自动安装
  • 网站下一步工作怎么做网上最好购物网站
  • OA 公司网站 铁道建设报自驾游网站建设
  • wordpress建站网站根目录短视频怎么赚钱
  • 亳州网站开发公司wordpress 添加分享
  • 如何查询网站接入信息移动网站开发框架
  • 河南做网站的百度竞价推广收费标准
  • 深圳的深圳的网站建设公司校园网站建设方向
  • 电商网站建设 解决方案的设计营销策略都有哪些方面
  • 菏泽网站建设兼职凡科网制作网站教程
  • 实验一 电子商务网站建设与维护北京网站设计培训学校
  • 周到的网站建设合肥建筑网站大全
  • 国外互联网资讯网站南宁网站制作费用
  • 建设公司网站要注意哪些蜜雪冰城推广软文
  • 做信息安全的网站博客网站的建设
  • 门户网站建设项目书提升学历是什么意思
  • 上海网站建设极简慕枫塘沽有哪些互联网公司
  • 社区网站如何做官方网站建设哪儿有
  • 做兼职的网站策划书大连中山网站建设
  • 中国摄影网站深圳网站建设龙华