这个微服务扩展策略实际上要包含两方面,
一是科学地评估业务高峰时微服务的资源消耗情况;
二是构建微服务扩展资源模型。
第一个方面,一般通过压测来预先获取数据。如何构建压测场景,是科学评估的关键。我们可以看下一楼专家给的场景:
运营需要做一次活动,通过短信和 PUSH 的方式触达用户,推送约 6500W 用户预计 2 个小时内推送结束。压测场景下需要考虑短信、PUSH的历史转化情况,不能单纯以用户数来作为测试依据。
通过压测,我们可以获取到在设想的极限场景下各微服务的QPS,CPU/内存的水位。
第二个方面,微服务扩展模型。
首先是要建立不同的资源池。比如服务器资源池有高QPS类型,计算密集型,高带宽型,还有按照网络位置设立资源池,保证高安全性的微服务不要在低安全防护资源池里面扩展。
其次,资源调度机制。资源调度器要能够识别扩展触发场景,并选择相匹配的资源池进行调度。对于容器环境来说,我们需要构建更多的扩容触发条件,而不单单是CPU和内存占有率。比如博云公司的BOC容器管理平台,目前还支持网络流量,自定义触发等自动扩缩容策略。