点赞投票微信群

当前位置: > 点赞投票微信群

微信选票平台 创造营2019微信小程序的背面——云 API 网关ip轻轻松松确保干万粉丝们投票撑着

当前栏目:点赞投票微信群|更新时间:2021-12-07 17:51:50|浏览:0

作者介绍:yousa,腾讯云服务技术工程师,Apache APISIX PMC,开源系统发烧友

《创造营2020》在上星期完美谢幕,想来大伙儿早已使用过微信小程序“纯甄小蛮腰”给自己钟爱的漂亮小姐姐撑着。“纯甄小蛮腰”做为运动的投票通道微信选票平台,它的可靠性极其重要,与此同时工作也期待投票作用可以尽快落地式。在全方位使用云服务器的趋势下,怎样运用云计算平台的工作能力迅速完成业务流程高可用性呢?

创造营2019微信小程序应用腾讯云服务API网关ip迅速完成投票作用,并运用API网关ip过流保护等工作能力确保业务流程高可用性,文中汇总了在此次行动中迅速运用云计算平台商品完成连接楼高可以用的一些工作经验,也为后面别的业务流程应用 API 网关ip完成业务流程高可用性给予一些引导。

系统架构图

决胜千里才可以运筹帷幄。我们在做高可用性系统软件时,最先要对高可用性科学方法论不在话下,次之掌握业务流程和构架,最终融合以上二者整理怎样确保业务流程高可用性。高可用性科学方法论

磨刀不误砍柴工,工欲善其事。高可用性在不一样层面考虑到的点也不尽相同:市场营销策略:轻和重逻辑性分离出来、客户分离、作用简单化手机客户端:再试、不成功提醒提升、手机客户端任意丢掉要求连接层:全局性过流保护、服务降级、身份验证和ACL逻辑性层:鉴别网络热点目标和网络热点目标预备处理、事务管理一致性及其事务管理回退储存层:稳定性(主备/外地容灾备份/数据信息分布式锁)、一致性运维管理:灰度发布、常见故障演习、混沌工程

文中主要是立在连接层的视角,浅谈怎样确保业务流程高可用性。另一方面,灵便的全局性过流保护及其服务降级作用,也是顾客挑选 API 网关ip的缘故。业务流程介绍

图中是创造营2019微信小程序的简单化架构图:微信小程序根据外网访问 API 网关ip,API 做为传输层为每一个业务流程建立 restful API,分享到后端不一样业务流程扫二维码服务项目用以自动跳转到该微信小程序为漂亮小姐姐撑着的作用是由投票服务项目给予抽奖活动和领奖服务项目则各自给予抽奖活动及其换取礼品的作用

在腾讯云服务 API 网关ip建立的 API 如下图所示:不一样业务流程各自创建有关 API 且配备相对应后端开发scan、vote、drawGift、getGift各自相匹配扫二维码、投票、抽奖活动和兑奖业务流程通常 restful API 是根据途径或是途径加方式开展配对,不一样业务流程提议应用不一样途径,还可以依据必须一些业务流程 API 再进一步分拆API 方式提议挑选 ANY方式不建议只建立一个/ ANY 的 API,那样便失去 API 项目生命周期管理方法的实际意义剖析

服务项目过流保护是连接楼高可以用必要条件,但过流保护设定为是多少比较好呢?普适性的预案是必须通过业务场景工作压力预计值融合全链路压测得到的业务流程容积评定而出。

融合上边的具体内容,文中主要会从以下几个方面确保业务流程高可用性:全链路压测明确业务流程容积依据容积设置过流保护,防止高负荷造成山崩区别次序业务流程,优先选择确保关键业务流程微信选票平台,主次业务流程根据过流保护开展服务降级高可用性关键点压测

兵马未动,兵马未动;业务流程确保,压测优先。压测可以及时处理业务流程中的特性问题,还可以计算出业务流程容积,是确保业务流程高可用性不可或缺的一个自然环境。但压测有一些普遍的留意点:做业务流程稳定性测试时,最好是应用公司的信息和网上的自然环境。由于接口测试和网上自然环境通常存有各式各样的差别,危害稳定性测试結果。另一方面,为了更好地不影响到一切正常业务流程,压测时常常要在业务流程低峰期压测,例如22点之后或是早晨9点之前。压测检测时尽可能应用网上总流量或是仿真模拟网上总流量。由于网上业务流程的浏览实体模型并并不是均值的,无差压测和仿真模拟网上总流量的实体模型的压测她们二者的效果通常会差别非常大。不必从单一的网络服务器进行总流量。一是压测时非常容易做到压测设备的短板,危害压测結果;另一方面,因为互联网链接中web服务、对话维持等作用的存有,每台设备压测通常会负荷不均匀,也会危害压测結果。

那麼该采用哪一个压测工具呢?ab和wrk均是较为常见的开源系统压测工具。相比于ab,wrk的特性相比于ab特性更强,并且适用根据lua脚本结构特殊的压测要求,因此wrk用的更加普遍。开源系统压测工具尽管胜在简单和完全免费,可是应用他们仿真模拟网上总流量比较复杂,故不考虑到采用。

根据以上压测常见问题,大家采用WeTest自主研发的压测高手。它可以很便捷的依据网上总流量模型模拟压测要求,让压测试数据更加精确。

主要是相互配合顾客侧开展压测,根据网上总流量实体模型压测結果如下所示:

能够看见:业务流程全链路容积是58K TPS,关键投票逻辑性获取排行榜、获得投票情况及其投票容积各自可以做到18K、4K、13K TPS。延迟、TPS及其通过率均合乎预估(投票是因为投票业务流程自身的流控限定)服务项目过流保护

为了更好地确保投票系统软件在负载的情形下不容易出问题,大家必须服务项目过流保护。

过流保护是一个十分普遍的作用,例如在 nginx/openresty 等网关ip中,过流保护可以限定高并发线程数(ngx_http_limit_conn_module 控制模块 / resty.limit.conn 库)或是 QPS (ngx_http_limit_req_module 控制模块 / resty.limit.req 库);在数据库系统中,数据库连接池还可以看成是过流保护的一种(golang 的 database/sql 库文件 DB 目标维护保养着数据库连接池)。

在文中中探讨的是连接层网关ip,故过流保护指的是要求过流保护(例如QPS)。过流保护业务场景

连接层过流保护在不一样的业务场景下也是有不一样的岗位职责。过流保护通常用以维护后端开发服务项目或是当今服务项目不被总流量冲毁,确保服务项目的可扩展性,普遍的例如连接层网关ip的过流保护作用或是各种各样RPC/微服务框架的过流保护软件(例如 Sentinel 架构),这样的事情下,服务项目的易用性至关重要,有时候的过流保护禁止是可以接纳的;过流保护还可以用以读取收费,例如腾讯官方等等销售市场会将服务提供商的 API 以流量包(读取频次)的方式出售给顾客,对于 API 读取次数开展收费,由于牵涉到钱,这样的事情下 API 的加载频次就规定精que,不可闪失。

腾讯云服务 API 网关ip当今对于于这二种情景的过流保护情景均比较有限流对策,前面一种在 API 网关ip叫过流保护,可以从 API 层面、API 组层面及其客户层面(必须相互配合身份验证)对要求开展 QPS 过流保护;后者相匹配腾讯云服务 API 网关ip配额制定义,该作用当今关键供应给云市场应用,用以精que测算读取频次。过流保护优化算法

过流保护优化算法分成单机版过流保护和全局性过流保护,针对业内普遍的单机版过流保护的优化算法比照如下所示:

过流保护优化算法优点和缺点参照库固定不动对话框完成简易临界值问题,不适宜时间长的过流保护滑动窗口完成简易,处理过流保护临界值振荡过流保护优化算法精密度比较有限、不足光滑(开启过流保护只有丢包率)漏桶优化算法光滑总流量,过流保护后根据总流量匀速运动没法处理突发性总流量ngx_http_limit_req_module 控制模块令牌桶算法可以解决突发性总流量总流量不光滑 当今业内流行网络层过流保护方式是令牌桶算法或漏桶优化算法。

具体连接层网关ip业务流程通常是分布式系统的,单机版过流保护并不可以满足要求,通常必须分布式系统过流保护。尽管可以使用预置,将过流保护值均值到每台设备上,但若负荷总流量不匀称、设备服务器宕机或是临时性扩充,均会严重影响分布式系统过流保护作用。

自己当今掌握到的生产制造级分布式系统过流保护均是集中型过流保护计划方案:全局性过流保护情况在一个集中型连接点/集群维护保养(例如redis等),按时向这一核心记数或是取动态口令集中型连接点/集群也存有概率不能用,若不能用,则通常方法是将分布式系统过流保护衰退成单机版过流保护。 若有去集中型(去中心化)的生产制造级过流保护计划方案,十分热烈欢迎线下推广沟通交流#p#分页标题#e#

腾讯云服务 API 网关ip当今是根据滑动窗口优化算法完成的单机版过流保护,根据一个集中型连接点维护保养全局性过流保护情况完成分布式系统过流保护。配备方式

讲了这么多,那麼该怎么使用腾讯云服务 API 网关ip配备过流保护呢?

上边压测表明业务流程总体容积在 58K 的 TPS左右,故依照后端开发50%最大负荷确保业务流程可靠性,设定该总体业务流程的 API 组限流(换句话说是服务项目过流保护)为 30K

参照下面的图设定 API 组限流(服务项目过流保护) 出自于维护分享 API 网关ip集群,若必须设定超过5000 QPS的服务项目过流保护,必须提订单改动。 服务降级

服务降级实质是处理浏览过多与資源不足的分歧,根据将一部分不重要的业务流程屏蔽掉,来给关键业务流程分派大量的資源,确保关键业务流程及其全部系统软件稳定运作。

我记得我以前仍在朗科商务大厦工作时,这一商务大厦的扶梯速率较慢并且整幢楼几乎满座了人,每到下午或是夜里吃晚饭的情况下,会有几个电梯轿厢变成由商务大厦物业管理专业操纵,不会再回应每楼高电梯楼层按钮。这目地也是为了更好地将电梯轿厢资源配置的更匀称微信选票平台,让绝大多数人都能够迅速的下楼梯。这样的事情实际上便是一种服务降级——将一部分电梯轿厢由人工干预,让我们在高峰时段可以上下楼梯,不会等好长时间。服务降级归类

说白了,服务降级必须放弃一些作用,通常有如下所示几类:

微信选票平台


作者介绍:yousa,腾讯云服务技术工程师,Apache APISIX PMC,开源系统发烧友

《创造营2020》在上星期完美谢幕,想来大伙儿早已使用过微信小程序“纯甄小蛮腰”给自己钟爱的漂亮小姐姐撑着。“纯甄小蛮腰”做为运动的投票通道微信选票平台,它的可靠性极其重要,与此同时工作也期待投票作用可以尽快落地式。在全方位使用云服务器的趋势下,怎样运用云计算平台的工作能力迅速完成业务流程高可用性呢?

创造营2019微信小程序应用腾讯云服务API网关ip迅速完成投票作用,并运用API网关ip过流保护等工作能力确保业务流程高可用性,文中汇总了在此次行动中迅速运用云计算平台商品完成连接楼高可以用的一些工作经验,也为后面别的业务流程应用 API 网关ip完成业务流程高可用性给予一些引导。


系统架构图

决胜千里才可以运筹帷幄。我们在做高可用性系统软件时,最先要对高可用性科学方法论不在话下,次之掌握业务流程和构架,最终融合以上二者整理怎样确保业务流程高可用性。

高可用性科学方法论

磨刀不误砍柴工,工欲善其事。高可用性在不一样层面考虑到的点也不尽相同:

  • 市场营销策略:轻和重逻辑性分离出来、客户分离、作用简单化
  • 手机客户端:再试、不成功提醒提升、手机客户端任意丢掉要求
  • 连接层:全局性过流保护、服务降级、身份验证和ACL
  • 逻辑性层:鉴别网络热点目标和网络热点目标预备处理、事务管理一致性及其事务管理回退
  • 储存层:稳定性(主备/外地容灾备份/数据信息分布式锁)、一致性
  • 运维管理:灰度发布、常见故障演习、混沌工程

文中主要是立在连接层的视角,浅谈怎样确保业务流程高可用性。另一方面,灵便的全局性过流保护及其服务降级作用,也是顾客挑选 API 网关ip的缘故。

业务流程介绍

图中是创造营2019微信小程序的简单化架构图:

  1. 微信小程序根据外网访问 API 网关ip,API 做为传输层
  2. 为每一个业务流程建立 restful API,分享到后端不一样业务流程
  3. 扫二维码服务项目用以自动跳转到该微信小程序
  4. 为漂亮小姐姐撑着的作用是由投票服务项目给予
  5. 抽奖活动和领奖服务项目则各自给予抽奖活动及其换取礼品的作用

在腾讯云服务 API 网关ip建立的 API 如下图所示:

  • 不一样业务流程各自创建有关 API 且配备相对应后端开发
  • scan、vote、drawGift、getGift各自相匹配扫二维码、投票、抽奖活动和兑奖业务流程
  • 通常 restful API 是根据途径或是途径加方式开展配对,不一样业务流程提议应用不一样途径,还可以依据必须一些业务流程 API 再进一步分拆
  • API 方式提议挑选 ANY方式
  • 不建议只建立一个/ ANY 的 API,那样便失去 API 项目生命周期管理方法的实际意义

剖析

服务项目过流保护是连接楼高可以用必要条件,但过流保护设定为是多少比较好呢?普适性的预案是必须通过业务场景工作压力预计值融合全链路压测得到的业务流程容积评定而出。

融合上边的具体内容,文中主要会从以下几个方面确保业务流程高可用性:

  1. 全链路压测明确业务流程容积
  2. 依据容积设置过流保护,防止高负荷造成山崩
  3. 区别次序业务流程,优先选择确保关键业务流程微信选票平台,主次业务流程根据过流保护开展服务降级

高可用性关键点

压测

兵马未动,兵马未动;业务流程确保,压测优先。压测可以及时处理业务流程中的特性问题,还可以计算出业务流程容积,是确保业务流程高可用性不可或缺的一个自然环境。但压测有一些普遍的留意点:

  1. 做业务流程稳定性测试时,最好是应用公司的信息和网上的自然环境。由于接口测试和网上自然环境通常存有各式各样的差别,危害稳定性测试結果。另一方面,为了更好地不影响到一切正常业务流程,压测时常常要在业务流程低峰期压测,例如22点之后或是早晨9点之前。
  2. 压测检测时尽可能应用网上总流量或是仿真模拟网上总流量。由于网上业务流程的浏览实体模型并并不是均值的,无差压测和仿真模拟网上总流量的实体模型的压测她们二者的效果通常会差别非常大。
  3. 不必从单一的网络服务器进行总流量。一是压测时非常容易做到压测设备的短板,危害压测結果;另一方面,因为互联网链接中web服务、对话维持等作用的存有,每台设备压测通常会负荷不均匀,也会危害压测結果。

那麼该采用哪一个压测工具呢?ab和wrk均是较为常见的开源系统压测工具。相比于ab,wrk的特性相比于ab特性更强,并且适用根据lua脚本结构特殊的压测要求,因此wrk用的更加普遍。开源系统压测工具尽管胜在简单和完全免费,可是应用他们仿真模拟网上总流量比较复杂,故不考虑到采用。

根据以上压测常见问题,大家采用WeTest自主研发的压测高手。它可以很便捷的依据网上总流量模型模拟压测要求,让压测试数据更加精确。

主要是相互配合顾客侧开展压测,根据网上总流量实体模型压测結果如下所示:

能够看见:

  • 业务流程全链路容积是58K TPS,关键投票逻辑性获取排行榜、获得投票情况及其投票容积各自可以做到18K、4K、13K TPS。
  • 延迟、TPS及其通过率均合乎预估(投票是因为投票业务流程自身的流控限定)

服务项目过流保护

为了更好地确保投票系统软件在负载的情形下不容易出问题,大家必须服务项目过流保护。

过流保护是一个十分普遍的作用,例如在 nginx/openresty 等网关ip中,过流保护可以限定高并发线程数(ngx_http_limit_conn_module 控制模块 / resty.limit.conn 库)或是 QPS (ngx_http_limit_req_module 控制模块 / resty.limit.req 库);在数据库系统中,数据库连接池还可以看成是过流保护的一种(golang 的 database/sql 库文件 DB 目标维护保养着数据库连接池)。

在文中中探讨的是连接层网关ip,故过流保护指的是要求过流保护(例如QPS)。

过流保护业务场景

连接层过流保护在不一样的业务场景下也是有不一样的岗位职责。过流保护通常用以维护后端开发服务项目或是当今服务项目不被总流量冲毁,确保服务项目的可扩展性,普遍的例如连接层网关ip的过流保护作用或是各种各样RPC/微服务框架的过流保护软件(例如 Sentinel 架构),这样的事情下,服务项目的易用性至关重要,有时候的过流保护禁止是可以接纳的;过流保护还可以用以读取收费,例如腾讯官方等等销售市场会将服务提供商的 API 以流量包(读取频次)的方式出售给顾客,对于 API 读取次数开展收费,由于牵涉到钱,这样的事情下 API 的加载频次就规定精que,不可闪失。

腾讯云服务 API 网关ip当今对于于这二种情景的过流保护情景均比较有限流对策,前面一种在 API 网关ip叫过流保护,可以从 API 层面、API 组层面及其客户层面(必须相互配合身份验证)对要求开展 QPS 过流保护;后者相匹配腾讯云服务 API 网关ip配额制定义,该作用当今关键供应给云市场应用,用以精que测算读取频次。

过流保护优化算法

过流保护优化算法分成单机版过流保护和全局性过流保护,针对业内普遍的单机版过流保护的优化算法比照如下所示:

过流保护优化算法优点和缺点参照库固定不动对话框完成简易临界值问题,不适宜时间长的过流保护滑动窗口完成简易,处理过流保护临界值振荡过流保护优化算法精密度比较有限、不足光滑(开启过流保护只有丢包率)漏桶优化算法光滑总流量,过流保护后根据总流量匀速运动没法处理突发性总流量ngx_http_limit_req_module 控制模块令牌桶算法可以解决突发性总流量总流量不光滑

当今业内流行网络层过流保护方式是令牌桶算法或漏桶优化算法。

具体连接层网关ip业务流程通常是分布式系统的,单机版过流保护并不可以满足要求,通常必须分布式系统过流保护。尽管可以使用预置,将过流保护值均值到每台设备上,但若负荷总流量不匀称、设备服务器宕机或是临时性扩充,均会严重影响分布式系统过流保护作用。

自己当今掌握到的生产制造级分布式系统过流保护均是集中型过流保护计划方案:

  1. 全局性过流保护情况在一个集中型连接点/集群维护保养(例如redis等),按时向这一核心记数或是取动态口令
  2. 集中型连接点/集群也存有概率不能用,若不能用,则通常方法是将分布式系统过流保护衰退成单机版过流保护。
若有去集中型(去中心化)的生产制造级过流保护计划方案,十分热烈欢迎线下推广沟通交流#p#分页标题#e#

腾讯云服务 API 网关ip当今是根据滑动窗口优化算法完成的单机版过流保护,根据一个集中型连接点维护保养全局性过流保护情况完成分布式系统过流保护。

配备方式

讲了这么多,那麼该怎么使用腾讯云服务 API 网关ip配备过流保护呢?

上边压测表明业务流程总体容积在 58K 的 TPS左右,故依照后端开发50%最大负荷确保业务流程可靠性,设定该总体业务流程的 API 组限流(换句话说是服务项目过流保护)为 30K

参照下面的图设定 API 组限流(服务项目过流保护)

出自于维护分享 API 网关ip集群,若必须设定超过5000 QPS的服务项目过流保护,必须提订单改动。

服务降级

服务降级实质是处理浏览过多与資源不足的分歧,根据将一部分不重要的业务流程屏蔽掉,来给关键业务流程分派大量的資源,确保关键业务流程及其全部系统软件稳定运作。

我记得我以前仍在朗科商务大厦工作时,这一商务大厦的扶梯速率较慢并且整幢楼几乎满座了人,每到下午或是夜里吃晚饭的情况下,会有几个电梯轿厢变成由商务大厦物业管理专业操纵,不会再回应每楼高电梯楼层按钮。这目地也是为了更好地将电梯轿厢资源配置的更匀称微信选票平台,让绝大多数人都能够迅速的下楼梯。这样的事情实际上便是一种服务降级——将一部分电梯轿厢由人工干预,让我们在高峰时段可以上下楼梯,不会等好长时间。

服务降级归类

说白了,服务降级必须放弃一些作用,通常有如下所示几类:

相关信息