联享懂营销的专业网站设计制作公司

云开发的架构奥秘

2022-12-27 围观热度 906小程序/H5/公众号
  体验了云开发的便捷与高效,你可能会发出“哇”的一声惊叹,同时你也会疑惑,究竟云开发是怎么做到的呢?省去了域名证书,又能快速拿到用户的 openid 等信息。通过本节的架构揭秘,相信你就会理解为什么云开发的功能会有如此的设计。

  图 12-33 是云开发的架构图,可以看出,请求的来源主要有两个:一个是从小程序端,另一个是从服务器端(云函数或云服务器)。无论哪种来源,一律会经过云开发的网关服务。但有一点不同的是,从小程序端过来的请求会先经过微信后台,因此这些请求都会带上该请求的用户信息,而服务器端的请求则没有这些信息。因此在设计上,小程序端过来的请求只拥有个人用户的权限,而服务器端的请求都具备管理员的权限。云开发暴露给用户的数据库、存储、云函数等能力,其底层实质上都是腾讯云的能力,只是针对性地做了一些不同的处理罢了。

  那么云开发网关服务层究竟做了些什么工作呢?其实主要是从以下 4 个方面保证了全平台请求的性能、稳定和安全。
默认接入负载均衡
  对于有一定规模的小程序来说,一台服务器远远支撑不了大量用户的请求,随时会被大量请求冲垮,造成服务器无法正常响应用户的请求。最常见的办法是堆机器,用机器来支撑大量的请求。云开发也是采用了同样的做法,接入了腾讯云自研的负载均衡 CLB,除了可顶住大量用户的请求外,还可以非常方便地进行扩容,最关键的是,这些运维的操作不需要用户操心,使用云开发就默认接入了负载均衡,在套餐配额的范围内都可以自由使用。
平台维护数据库连接池
  在后台服务中,除了网关层的请求并发是服务的一个瓶颈,数据库的读写往往也是一个令人头疼的问题。如果是自建服务,你需要去维护这个连接池,并且要考虑主从数据库的同步问题。而云开发的网关层则帮开发者处理好了这些逻辑,并且对数据做了一层缓存,提升读取的性能。
免除鉴权的烦恼
  无论是开发 Web 应用还是小程序,比较麻烦的是请求的鉴权问题,意思就是这个请求是否合法,能否允许这个请求进行资源的操作。云开发已经提供了一套标准化的鉴权体系,在小程序端的请求一律会带上用户信息,用户一般只能操作与他相关的资源;而在服务器端的请求一律具有管理员权限,具有最高的权限可以操作任意资源。当然,你也可以设计自己的一套体系,但还是建议你围绕官方提供的这套体系进行自定义设计,比如可以使用 JWT Token 进行鉴权,但 Token 中会包含用户的 openid 等信息。
全链路一致性
  校验为了保证数据的安全,云开发还在整个请求的通路引入了全程票据的办法。大体的原理就是小程序侧在初始化请求的时候,微信后台与云开发网关服务会联合下发一个票据,这个票据具有一定的时效性,在有效期内,云开发的请求都会带上这个票据并校验该票据是否合法,非法的请求会被拒绝,这样就能有效保障用户的数据安全。

  • 7x24

    全国售后支持123

  • 14

    14年行业服务经验

  • 26

    全国售后支持

  • 200

    超百人设计、研发团队

  • 2

    服务企业客户2万家

  • 9

    连续9年守合同重信用企业

关于我们
广州联享信息科技有限公司成立于2011年,是成熟的企业互联网解决方案服务商。致力于帮助每个企业实现互联网智能经营。截止目前,联享科技在全国设有26家分公司,拥有员工200余人,总公司现设有客服事业部、运营事业部、网络事业部、行政事业部四大职能部门...
联享科技已覆盖互联网主要城市
目前总部设立于广州,并在深圳、上海、北京、杭州、长沙、武汉、郑州、石家庄等全国26座城市设有分公司及30余家核心城市代理,更多城市正在筹建中,敬请期待

Copyright © 2007-2022 联享信息科技有限公司(a020.cn)版权所有

常年法律顾问:广东梵意律师事务所 周乙飞律师(主任)