模块一作业
画出微信的业务架构图
参考链接: https://weixin.qq.com/
我的思路是这样的:其实,我本身对微信的业务不太熟悉,所以首先在查询了微信的业务图,参考的是微信的官网,https://www.tencent.com/zh-cn/business.html,我个人认为微信总体分为三大业务板块;1. 社交通讯; 2. 微信支付和钱包;3. 三方平台;
社交通讯,就是手机和电脑终端的通讯录管理和聊天,以及朋友圈和直播,视频号;还有针对企业用户的企业微信。
支付板块,涉及到微信支付和香港钱包,马来西亚钱包;
三方平台,我这边按照用户群的不同分为了 2 类,一类是对技术人员来说的对外开放的平台,比如各类接口 api 的接入;另一类是对普通大众和买卖商家开放的平台,我这里定义不准确,我这里定义为公众平台,也不知道该取个什么名字好,暂定这名字吧。
虚线---逻辑意义上的划分板块,实线---具体的业务功能模块。
按照面向复杂度设计的架构思想,从合适,简单,演化原则出发,即(合适,从当前业务的实际情况出发,根据团队人数和技术能力;简单,适合当前业务的技术体系,能演化;演化,可以从可扩展,可伸缩,高可用高性能方向演进)。
方案一:
优点:合适;(人员安排:3 个人,1 人 php 写前端,2 人 java 写后端接口; 技术上,安排人员开发效率高);
简单;应用端和存储端相对简单;
演进;应用端可水平扩展;
缺点:暂无;
方案二:
特点:合适:人员配置和技术能力,资源有限的情况下,也是合适的;
简单:技术和部署比较简单;
演进:不太适合演进;
方案三:
特点:
合适: 技术上简单,一个程序包部署在 2 台机器上;数据库也是如此;
简单: 适合峰值很小的量级;
演进: 相对来说,业务服务器没有影响,存储需要扩展,并且无法做到高可用,故障率高;
总结: 还是方案 1 合适;
不管怎么画架构图,业务部分服务器至少需要 2 台,数据库主备至少 2 台;如果资源有限,只能将数据库落到应用服务器上去部署;
评论