├── .gitignore ├── LICENSE ├── README.md ├── bug-list.md ├── large_solution.md └── medium_solution.md /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | LICENSE - "MIT License" 2 | 3 | Copyright (c) 2016 by Tencent Cloud 4 | 5 | Permission is hereby granted, free of charge, to any person 6 | obtaining a copy of this software and associated documentation 7 | files (the "Software"), to deal in the Software without 8 | restriction, including without limitation the rights to use, 9 | copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the 11 | Software is furnished to do so, subject to the following 12 | conditions: 13 | 14 | The above copyright notice and this permission notice shall be 15 | included in all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 18 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 19 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 20 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 21 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 22 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 24 | OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 小程序初始化配置指引 2 | 3 | 假如您已成功创建了小程序资源,需要对现有的资源进行一些简单配置后,才能让小程序跑起来 4 | >未创建过资源的用户可以先在[小程序控制台](https://console.qcloud.com/la)进行创建 5 | 6 | 7 | ## 1.配置微信小程序通信域名 8 | 9 | 首先我们在[小程序资源视图](https://console.qcloud.com/la)中将二级域名拷贝下来,在后面的几个流程中都会用到。 10 | 11 | ![小程序资源视图](https://mc.qcloudimg.com/static/img/95d83cc575c1aabc66cbdcaf63bc8619/18.png) 12 | 13 | 然后前往[微信公众平台](https://mp.weixin.qq.com) -【开发】-【基本配置】-【服务器配置】-【修改配置】,使用二级域名完成通信域名设置,设置完后可能需要稍等几分钟重启微信开发者工具生效。 14 | 15 | ![微信域名配置](https://imgcache.qq.com/open_proj/proj_qcloud_v2/wechat_mc/css/img/doc/1.jpg) 16 | 17 | - `request合法域名`:填腾讯云分配的二级域名 18 | - `socket合法域名`:填腾讯云分配的 Socket 域名,如 `12345678.ws.qcloud.la` 19 | - `uploadFile合法域名`:填腾讯云分配的二级域名 20 | - `downloadFile合法域名`:填腾讯云分配的二级域名 21 | 22 | 23 | ## 2.修改业务服务器配置 24 | 25 | >如果开发语言环境是`CentOS`操作系统,创建资源时已默认下发好配置到`/etc/qcloud/sdk.config`,可略过此步 26 | 27 | >登录云服务器的密码请在[站内信](https://console.qcloud.com/message)、手机短信、邮箱中查看 28 | 29 | Windows Server系统修改`c://qcloud`下`sdk.config`文件 30 | 31 | ``` 32 | { 33 | "serverHost": "xxxx.qcloud.la", //资源视图给出的二级域名 34 | "authServerUrl": "http://内网IP/mina_auth/", //内网IP改成会话管理服务器的内网IP 35 | "tunnelServerUrl": "https://xxxx.ws.qcloud.la", //不用修改 36 | "tunnelSignatureKey": "62aaa14292b3a65a61c14b8c30437bc648e087b2", //填写一份随机字符 37 | "networkTimeout": "30000" 38 | } 39 | ``` 40 | 41 | 修改完成后,需要重启 IIS 中的网站来生效。 42 | 43 | 44 | ## 3.下载微信小程序 Demo 和 SDK 45 | 46 | 1) 前往[github](https://github.com/tencentyun/qcloud-weapp-client-demo)将 Demo 下载到本地 47 | 48 | 2) 修改 Demo 根目录下的 config.js 配置文件里主机配置 49 | 50 | ``` 51 | var host = 'www.qcloud.la'; //host替换成微信小程序资源视图中分配的二级域名 52 | 53 | var config = { 54 | service: { 55 | host, 56 | loginUrl: `https://${host}/login`, 57 | tunnelUrl: `https://${host}/tunnel` 58 | } 59 | }; 60 | 61 | module.exports = config; 62 | ``` 63 | 64 | 5) 微信开发者工具导入 Demo 工程目录,然后点击调试即可打开聊天室 Demo 开始体验 65 | 66 | >开发者工具下载地址:[windows 64](https://servicewechat.com/wxa-dev-logic/download_redirect?type=x64&from=mpwiki&t=1476434677599)、[windows 32](https://servicewechat.com/wxa-dev-logic/download_redirect?type=ia32&from=mpwiki&t=1476434677599)、[mac](https://servicewechat.com/wxa-dev-logic/download_redirect?type=darwin&from=mpwiki&t=1476434677599) 67 | 68 | ![小程序Demo](https://imgcache.qq.com/open_proj/proj_qcloud_v2/wechat_mc/css/img/doc/3.jpg) 69 | 70 | 71 | ## 4.升级方案 72 | 如果现有的配置满足不了您的业务需求,我们提供了[单机版架构升级](https://github.com/tencentyun/weapp-doc/blob/master/medium_solution.md)、[集群版架构扩容](https://github.com/tencentyun/weapp-doc/blob/master/large_solution.md)来对现有资源进行配置升级、扩容。 73 | 74 | 75 | ## 常见问题 76 | 77 | ### 微信 AppId 和 AppSecret 在购买时填写错误怎么办 78 | 79 | 如果在购买解决方案时,把 AppId 和 AppSecret 填写错误。小程序用户在登录时,便会返回错误码40029,错误信息MA_WEIXIN_CODE_ERR。此时便需要手动修改 AppId 和 AppSecret 80 | 81 | 修改步骤如下: 82 | 83 | 1) 登录会话管理服务器,进入`/opt/lampp/htdocs/mina_auth/system/db/`目录,查看`db.ini`文件,文件中保存着 云数据库 CDB 的ip、port、username、passwd以及 dbname 等信息。 84 | 85 | 1.1) 进入CDB配置文件目录 86 | 87 | cd /opt/lampp/htdocs/mina_auth/system/db/ 88 | 89 | 1.2) 查看服务器配置文件 90 | 91 | vi db.ini 92 | 93 | 2) 拿到这些信息以后,登录云数据库 CDB,修改 cAppinfo 表中的 AppId 和 secretKey 即可。 94 | 95 | 2.1)进入安装mysql命令的目录 96 | 97 | cd /opt/lampp/bin/ 98 | 99 | 2.2)连接CDB 100 | 101 | ./mysql -h #ip -P #port -u #username -p #passwd(其中#ip、#port、#username、#passwd是在1.2步骤中查看到的具体信息) 102 | 103 | 2.3)更新AppId 和 AppSecret 104 | 105 | use cAuth;//选中数据库。 106 | 107 | update cAppinfo set appid = "your appid",secret = "your secret";//更新正确的AppId 和 AppSecret 108 | 109 | ### 创建资源时填的AppID和AppSecret在哪找到? 110 | 111 | 要查看 AppID,请前往[微信公众平台](https://mp.weixin.qq.com) -【选择设置】- 开发者设置】在`开发者ID`一栏中可以看到。AppSecret 是小程序私有密钥,微信不再保存,无法查看,只能重置。重置后请妥善保管,并参考上面的流程修改 Wafer 服务中保管的版本。 112 | 113 | ### 一站式构建小程序分配的CVM/CDB密码哪里获取? 114 | 115 | 分配的服务器及数据库资源的密码请在[站内信](https://console.qcloud.com/message)、手机短信、邮箱中可以获取到 116 | 117 | 118 | ### 重装开发语言环境 119 | 120 | > 目前业务服务器提供了PHP、Node.js、Java、.NET版本的语言环境,用户如果要切换需要做以下操作: 121 | 122 | 1) 备份配置文件 123 | 124 | 将`sdk.config`从服务器拷贝到本地、`CentOS`系统在`/etc/qcloud`路径下,`Windows Server`系统在`c://qcloud`路径下 125 | 126 | 2) 重装系统 127 | 128 | > 如有重要数据请提前保存好 129 | 130 | 首先需要登录[腾讯云CVM控制台](https://console.qcloud.com/cvm),在会话管理CVM实例右侧操作栏,点击【更多】-【重装系统】。 131 | 132 | 弹出框内镜像来源选`服务市场`,镜像选`基础环境`,下拉列表中找到四个语言的镜像来选中镜像,设置好系统密码后点`开始重装` 133 | 134 | ![重选系统镜像](https://mc.qcloudimg.com/static/img/57da50a2f470d7186020b4e39f5ea15a/22.png) 135 | 136 | 3) 上传配置文件 137 | 138 | 系统重装好后将步骤1中保存下来的`sdk.config`上传至服务器上,`CentOS`系统在`/etc/qcloud`路径下,`Windows Server`系统在`c://qcloud`路径下 139 | 140 | 4) 重启服务 141 | 142 | - Node.js环境进入`/data/release/node-weapp-demo`下执行`pm2 start process.json` 143 | - .NET环境需要重启 IIS 中的网站来生效配置 144 | - Java环境重启tomcat执行命令`systemctl restart tomcat` 145 | -------------------------------------------------------------------------------- /bug-list.md: -------------------------------------------------------------------------------- 1 | # 会话管理服务BUG修复与升级 2 | 3 | ## 程序BUG修复与代码升级 4 | 5 | ### 针对2016年11月9号之前(包括11月9号)购买腾讯云微信小程序解决方案的用户 6 | 7 | 1)通过公测发现小程序会话管理服务器的两处BUG 8 | 9 | 1.1)会话管理服务器程序bug导致鉴权失败。 10 | 11 | 1.2)如果用户昵称中包含emoji表情,会话管理服务无法解析。 12 | 13 | 1.3)数据库优化升级 14 | 15 | 现在两处bug已经修复,现在给出升级解决方案: 16 | 17 | 2.1)腾讯云微信小程序资源视图页(https://console.qcloud.com/la) 18 | 19 | 查看会话管理服务器的IP信息。如图1所示。点击进去,查看IP信息,如图2所示。 20 | 21 | ![image](https://cloud.githubusercontent.com/assets/12195370/20167547/37ad1042-a757-11e6-878d-54371a3be01e.png) 22 | 23 | 图1 微信小程序资源视图 24 | 25 | ![image](https://cloud.githubusercontent.com/assets/12195370/20167593/6aa45b90-a757-11e6-8348-7d48e1e9b3f3.png) 26 | 27 | 图2 会话管理服务器IP地址 28 | 29 | 2.2)使用拿到的IP信息,使用xshell或者其他工具登录至会话管理服务器,执行以下shell命令,完成升级。(注意:登录服务器的时候只能使用22端口) 30 | 31 | wget 'http://mina-1252789078.costj.myqcloud.com/update_mina.sh' #下载程序升级脚本 32 | 33 | chmod 755 update_mina.sh #修改程序升级脚本的权限 34 | 35 | ./update_mina.sh #执行代码升级 36 | 37 | 注意:原来的会话管理程序已经被覆盖,原来的代码备份在当前的目录下以日期命名的目录下面,例如161110。在这个目录下的代码是不安全的,如果升级前的代码还想保留,建议手动备份到其他目录。 38 | 39 | 2.3)数据库升级命令 40 | 41 | wget 'http://mina-1252789078.costj.myqcloud.com/upgradeDb.sh' 42 | 43 | chmod 755 upgradeDb.sh 44 | 45 | ./upgradeDb.sh 46 | 47 | 考虑到数据库的安全性和扩展性问题将数据库进行升级,原来表(cSessioninfo)中的数据将会被迁移到新的数据表(cSessionInfo)中,用户无需考虑数据迁移问题,只要执行上述三条shell命令即可。 48 | -------------------------------------------------------------------------------- /large_solution.md: -------------------------------------------------------------------------------- 1 | # 集群版架构扩容 2 | 3 | 对于小型的程序应用,通常在初始阶段访问量会维持在一个较低的水平。但随着访问量上来,虽然可以对单台服务器进行配置升级,但是到后期还是会遇到单机性能瓶颈。所以对于大型应用来说,我们可以考虑将云服务器横向扩容,通过负载均衡技术对外提供服务,可以有效解决单机性能瓶颈以及单点故障问题。 4 | 5 | 我们的[微信小程序解决方案](https://console.qcloud.com/la)的初始架构如下图:业务和会话管理服务器都只有一台。 6 | 7 | ![单机版架构图](https://mc.qcloudimg.com/static/img/7d40df0347cbfad83c16a011a435271c/24.png) 8 | 9 | 通过外网、内网负载均衡绑定扩容的云服务器后,业务和会话管理服务器都可形成如下所示集群架构: 10 | 11 | ![集群版架构图](https://mc.qcloudimg.com/static/img/6031cecf849a1b43174244b3189dad0c/25.png) 12 | 13 | 接下来我们具体来操作下`会话管理服务器`以及`业务服务器`横向扩容 14 | 15 | ## 会话管理服务器扩容 16 | 17 | >注意所有新创建的资源与存量资源的地域、可用区、项目需要保持一致 18 | 19 | ### 1. 制作会话管理服务器镜像 20 | 21 | 首先需要登录[腾讯云CVM控制台](https://console.qcloud.com/cvm),在会话管理CVM实例右侧操作栏,点击【更多】-【制作镜像】。 22 | 23 | ![制作镜像](https://mc.qcloudimg.com/static/img/6c42ba12fad765d5ee56ebd0ef557ae5/8.png) 24 | 25 | 填写好`镜像名称`和`镜像描述`后点击`确定`,接下来会提示该服务器的镜像正在创建中 26 | 27 | ![镜像制作中](https://mc.qcloudimg.com/static/img/3f3c4431a7567eba25e8635e788e59ba/9.png) 28 | 29 | ### 2. 基于镜像创建会话管理服务器 30 | 31 | 创建好镜像后,我们进入[镜像控制台](https://console.qcloud.com/cvm/image),选中镜像点击创建云主机 32 | 33 | ![镜像控制台](https://mc.qcloudimg.com/static/img/1713a78dc7b759884cfb0e32f15b91eb/10.png) 34 | 35 | 在[云服务器购买页](https://buy.qcloud.com/cvm)使用我们之前创建好的镜像来创建云服务器 36 | 37 | ![购买选择镜像](https://mc.qcloudimg.com/static/img/6f4880fa18431780d760e65ab436e04e/11png.png) 38 | 39 | ### 3. 创建内网负载均衡 40 | 41 | 首先需要登录[负载均衡购买页](https://buy.qcloud.com/lb),选择 `内网类型` `微信小程序`项目下负载均衡 42 | 43 | ![购买负载均衡](https://mc.qcloudimg.com/static/img/9c39b5a4ab00d5dffd2c1afb6c3e6c91/12.png) 44 | 45 | 创建完后在[负载均衡控制台](https://console.qcloud.com/loadbalance/index)找到刚建好的负载均衡实例,点击`实例ID`进入实例详情,点击`绑定云主机`,勾选用于会话管理的云服务器(包括之前创建好的),点击`确定`进行绑定 46 | 47 | >注意只要绑定的云服务器开启了安全组,必须将负载均衡 VIP 加入到后端服务器的放通规则中 48 | >左侧列表中显示的是未被隔离、未过期、带宽不为0的可选云服务器列表 49 | 50 | ![绑定云主机](https://mc.qcloudimg.com/static/img/1130782b0aee1e24ab721f9dd5d2c2eb/13.png) 51 | 52 | 创建负载均衡监听器 53 | 54 | - 监听协议选`TCP`,监听端口即业务服务器访问会话管理服务器用的端口(配置文件中默认是**80**) 55 | - 后端端口填会话服务的端口(默认是**80**) 56 | 57 | ![监听器](https://mc.qcloudimg.com/static/img/a5dd10bac2f3629ed78fa013a7d312fe/21.png) 58 | 59 | ### 4. 修改业务服务器配置 60 | 61 | 配置文件`CentOS`系统在`/etc/qcloud`路径下,`Windows Server`系统在`c://qcloud`路径下 62 | 63 | 修改`sdk.config`中的`authServerUrl`字段值, 64 | 65 | ``` 66 | "authServerUrl": "http://VIP/mina_auth/", //VIP上个步骤创建负载均衡实例的VIP 67 | ``` 68 | 69 | 重启服务来生效配置 70 | - Node.js环境,进入`/data/release/node-weapp-demo`下执行`pm2 start process.json` 71 | - .Net环境 需要重启 IIS 中的网站来生效配置 72 | - JAVA环境 重启tomcat执行命令`systemctl restart tomcat` 73 | 74 | ![负载均衡ip](https://mc.qcloudimg.com/static/img/9e5600b9e52677566c3139e86a40087f/14.png) 75 | 76 | 到此我们已经完成了对`会话管理服务器`的横向扩容,接下我们进行`业务服务器`的扩容 77 | 78 | ## 业务服务器扩容 79 | 80 | >注意所有新创建的资源与存量资源的地域、可用区、项目需要保持一致 81 | 82 | ### 1. 制作业务服务器镜像 83 | 84 | 制作流程可以参考`制作会话管理服务器镜像`流程 85 | 86 | >注意选择业务服务器实例来进行镜像制作 87 | >如果制作Windows Server系统镜像的话可能稍慢点,请耐心等待 88 | 89 | ### 2. 基于镜像创建业务服务器 90 | 91 | 创建流程可以参考`基于镜像创建会话管理服务器`流程 92 | >注意`地域``可用区``项目`需要保持一致,镜像则选择业务服务器镜像 93 | 94 | ### 3. 配置外网负载均衡 95 | 96 | 云主机创建好后,我们只需在[负载均衡控制台](https://console.qcloud.com/loadbalance/index)实例详情中,将新创建的云服务器绑定到负载均衡,流程可以参考上面的会话管理服务器绑定操作 97 | 98 | 到此为止我们的横向扩容操作已经全部完成 99 | 100 | 101 | #配置更智能的弹性伸缩策略 102 | 我们推荐您为小程序的业务服务器集群及会话服务器集群配置上弹性伸缩AS(auto scaling)策略,充分利用公有云“灵活”“弹性”的优势。 103 | 104 | ##为什么配置弹性伸缩? 105 | 以下两个场景下弹性伸缩能降低成本和提高业务连续性: 106 | 107 | 1、 小程序访问有明显的高峰低谷:根据测算,如果业务服务器集群和会话服务器集群需要不只一台机器,且高峰短于8个小时,采用“按闲时保留固定服务器+高峰时期增加临时服务器”的方式,能节约30%左右成本。您通过AS设置定时扩缩容任务,让腾讯云在忙时扩容临时服务器,闲时回收终止未充分利用的服务器。 108 | 109 | 2、 小程序访问量稳定的预期下,配置基于监控告警的伸缩策略可应对意外高负载,保障服务的持续可用,给问题解决争取时间。异常高负载包括[CC攻击](http://baike.baidu.com/link?url=aSNcL5Q_xzDxPvFYRU3qbS11NIQXD5vwvI5yxtJTVlL0xhjAaLntwmDHVW8buUlH4bbNJqMzCPp8b1N2LX-OnwAUR3MnE9GhH-F7fomUac3),以及意外流量(类似“脸萌”刚上线的远超预期的传播速度,或特定事件带来的突发访问)。可参看公益网站[“宝贝回家”](https://www.qcloud.com/community/article/651089001483090830)的案例。 110 | 111 | >注:弹性伸缩能力免费,扩容的CVM按秒正常计费。 112 | 113 | ##弹性伸缩会做哪些事情? 114 | 1、 定时给集群增加机器或减少机器 115 | 116 | 2、 根据集群服务器的负载情况自适应地增加机器或减少机器 117 | 118 | 3、 增加的机器会自动注册到负载均衡中,实现全自动扩容 119 | 120 | 121 | ##为会话服务器配置弹性伸缩策略 122 | ###1、创建启动配置 123 | 扩容时以启动配置为模板创建机器,因此我们事先通过启动配置指定地域、机型、镜像。 124 | 125 | 126 | 登录[弹性伸缩控制台](https://console.qcloud.com/autoscaling/config),点击导航条中的【启动配置】。 127 | 128 | 选择项目和地域: 129 | ![](https://mc.qcloudimg.com/static/img/653ebf516d940a90fd79728e5d319cdc/image.png) 130 | 这里要注意必须选择小程序所在的项目和地域。 131 | 132 | 接下来的操作与购买机器类似。您可跟着指引完成启动配置创建。 133 | 134 | ![](https://mc.qcloudimg.com/static/img/4cecf25e8ad9caa67271159c67d0b770/image.png) 135 | 136 | 137 | >注意:此前您已经做好了镜像,这里需确保镜像里的应用能随操作系统启动的,这样扩容出来的机器就能直接工作,无需人工介入。 138 | ![](https://camo.githubusercontent.com/c58d92b133f44b3d70a0936cf4d6f087e7e0d3ee/68747470733a2f2f6d632e71636c6f7564696d672e636f6d2f7374617469632f696d672f33663363343433316137353637656261323565383633356537383865353962612f392e706e67) 139 | 140 | 141 | 142 | ###2、 创建伸缩组 143 | 144 | 在弹性伸缩的[【控制台】](https://console.qcloud.com/autoscaling),点击【新建】,按如下填写集群的管理信息: 145 | 146 | 【名称】:按需起一个名字。这里填“会话服务器集群” 147 | 148 | 【最小伸缩数】:集群服务器数量的下限,这里填0即可 149 | 150 | 【起始实例数】:伸缩组刚创建时,自动创建的机器数量。这里填0即可. 151 | 152 | 【最大伸缩数】:集群服务器数量的上限,这里按需填写 153 | 154 | 【启动配置】:选择刚才您创建的启动配置 155 | 156 | 【支持网络】:会话服务器的网络环境,一般选“基础网络”即可 157 | 158 | 【支持可用区】:即选择机扩容器落在哪个可用区里,此处按会话服务器所在的可用区勾选即可 159 | 160 | 【移出策略】:选择默认即可 161 | 162 | 【负载均衡】:选择会话服务器的负载均衡,即刚才创建的 163 | 164 | ![](https://mc.qcloudimg.com/static/img/f665314e51db863d3f57cd75534f69f6/932.jpg) 165 | 166 | 最后点击“确定”,完成创建。 167 | 168 | ###3、 添加现有机器进伸缩组 169 | 170 | 在[【控制台】](https://console.qcloud.com/autoscaling)点击伸缩组名字,进入管理页,在页面下方点击“添加云主机”, 171 | 172 | ![](https://mc.qcloudimg.com/static/img/8ed547b6d545cff5b6e22cd71a75402c/08.jpg) 173 | 174 | 在弹出的对话框中选择已有的会话服务器加入伸缩组。 175 | ![](https://mc.qcloudimg.com/static/img/5c91d826a3aab5bbb478a1c0524302e8/08113043.jpg) 176 | 177 | 加入后对服务器设置“免于缩容”,这样在缩容活动中,伸缩组不会选择这台服务器缩容。 178 | ![](https://mc.qcloudimg.com/static/img/62319473a1a05e98d51c64c22ca24424/0308113553.jpg) 179 | 180 | ###4、 设置扩容策略 181 | 您可以选择定时扩容、或者基于告警动态扩容。通常扩容任务和缩容任务成对出现。 182 | 183 | ![](https://mc.qcloudimg.com/static/img/41763806c8d05ae89128b5a87e772974/08121006.jpg) 184 | 185 | **a. 定时扩容**: 186 | 187 | 比如一个点餐小程序,可预期午饭时间的负载比其他时间高,就可以设置每天11:00-13:00扩容两台额外服务器支撑负载。 188 | 189 | 190 | 先设置一个定时扩容任务: 191 | 192 | ![](https://mc.qcloudimg.com/static/img/d276c8d6924b4126a1532ddcefae8f0c/0170308120453.jpg) 193 | 194 | 再设置一个定时缩容任务: 195 | 196 | ![](https://mc.qcloudimg.com/static/img/ae7b0f21529d9f483a455e6148594926/20170308120822.jpg) 197 | 198 | **b. 基于告警扩容**: 199 | 200 | 预期无明确的扩容,但需要防范出现意料之外的流量/攻击: 201 | 202 | 先设置一个告警扩容策略,用于应对异常流量: 203 | ![](https://mc.qcloudimg.com/static/img/d23dde14b8e12241d3315286682c2d8d/455.jpg) 204 | 205 | 再设置一个告警缩容策略,用于清退未充分利用的服务器: 206 | ![](https://mc.qcloudimg.com/static/img/92b7fccdfb2b863e4798574e0cb06bde/22630.jpg) 207 | 208 | 209 | ##为业务服务器配置弹性伸缩策略 210 | 211 | 这个过程与会话服务器类似: 212 | 213 | - 为业务服务器创建一个启动配置 214 | - 为业务服务器创建一个伸缩组“业务服务器集群”,指向业务服务器的负载均衡 215 | - 为业务服务器设置伸缩策略 216 | 217 | ##验证伸缩性和查看伸缩活动 218 | 将伸缩组的期望实例数+1,伸缩组会自动扩容一台服务器到集群中。如果新扩的机器能正常处理请求,说明伸缩组已正常工作。 219 | ![](https://mc.qcloudimg.com/static/img/665e029c6abfa6a7ef3f9063c88df486/05.jpg) 220 | 221 | 伸缩组还支持[查询历史伸缩活动](https://www.qcloud.com/document/product/377/3804),确保您完全掌控伸缩活动情况。 222 | 223 | 至此,您的小程序已经具备了智能扩容的能力。您无需为扩容缩容的问题再操心,留意伸缩组通知或者不定期查看历史伸缩活动即可。 224 | 其他问题具体可查看[弹性伸缩](https://www.qcloud.com/doc/product/377/3578)文档。  225 | -------------------------------------------------------------------------------- /medium_solution.md: -------------------------------------------------------------------------------- 1 | # 单机版架构升级 2 | 3 | ![单机版架构图](https://mc.qcloudimg.com/static/img/7d40df0347cbfad83c16a011a435271c/24.png) 4 | 5 | 如果您在使用小程序云资源过程中发现现有配置不能满足您的业务需求,您可以选择升级云服务器和云数据库的配置。 6 | 7 | - 云服务器 CVM 提供带宽、CPU、内存、磁盘等配置的升级 8 | - 云数据库 CDB 提供内存、硬盘的升级 9 | 10 | ## 云服务器配置升级 11 | 首先需要登录[腾讯云CVM控制台](https://console.qcloud.com/cvm) 12 | 13 | ### 升级CPU和内存 14 | 15 | >只有**关机状态**下的,**系统盘与数据盘均为云盘**的CVM实例可以调整配置。 16 | 17 | 1) 对于要调整配置的关机CVM实例,在右侧操作栏,点击【更多】-【云主机设置】-【调整配置】。 18 | 19 | 2) 在调整配置弹出框中,选择升级后的配置,完成支付或确认后即可即时调整主机配置。 20 | 21 | ![调整配置](https://mc.qcloudimg.com/static/img/fe9f8398edcb067e2a300de63418eeea/2.png) 22 | 23 | ### 调整CVM磁盘配置 24 | 25 | >只有**关机状态**下的,**数据盘为云盘**的CVM实例可以调整磁盘。 26 | >如果您的云服务器还没有数据盘,可以先购买弹性云盘后进行挂载,**注意购买的云盘必须与要挂载的云服务器同地域同可用区**,见具体[操作文档](https://www.qcloud.com/doc/product/362/2922), 27 | 28 | 1) 对于要调整配置的关机CVM实例,在右侧操作栏,点击【更多】-【云主机设置】-【调整磁盘】 29 | 30 | 2) 选择需要调整的磁盘 31 | 32 | ![选择云盘](https://mc.qcloudimg.com/static/img/b085b0259bade00f6277b359c3f779c7/3.png) 33 | 34 | 3) 在调整磁盘弹出框中,选择调整后的磁盘大小(不可低于当前磁盘大小),完成支付后即时调整主机磁盘大小,调整后的磁盘需要手动挂载才可使用。 35 | 36 | ![调整磁盘](https://mc.qcloudimg.com/static/img/e30855318f8bef937cdc035b83c30dc5/4.png) 37 | 38 | ### 调整网络 39 | 40 | 对于要调整配置的关机CVM实例,在右侧操作栏,点击【更多】-【云主机设置】-【调整网络】。 41 | 42 | ![调整网络](https://mc.qcloudimg.com/static/img/5c4143697880b932891548732ab12ae8/1.png) 43 | 44 | ## 云数据库配置升级 45 | >升级过程中,是不能取消本次升级操作的。 46 | 47 | 登录[云数据库管理控制台](https://console.qcloud.com/cdb),可通过“升级”操作升级指定实例的实例规格。 48 | ![升级](https://mc.qcloudimg.com/static/img/0056b6d5165e0afe240763963a302bf3/5.png) 49 | 50 | ### 注意事项 51 | 52 | 1.实例升级过程中原实例的正常使用将不受影响,如数据的导入、导出功能。 53 | 54 | 2.升级前后实例的名称、访问IP、访问端口均不发生变化。 55 | 56 | **3.升级完成时会产生秒级的MySQL数据库连接断开,建议程序有自动重连功能。** 57 | 58 | **4.在升级过程中,请尽量避免修改MySQL的全局参数、实例名称、用户密码等操作。** --------------------------------------------------------------------------------