模块一作业
一、 微信的业务架构图
整个微信的业务架构由微信基础服务、个人微信服务、企业微信服务三部分构成。
(1)微信基础服务提供所有服务的基础:聊天、通讯录、朋友圈、钱包、用户、小程序、搜一搜;
(2)个人微信服务主要为对个人(对私)服务,主要提供中间业务服务(生活类、金融类、出行类)、再提供文档和小消息发布订阅类服务(公众号)。
(3)企业微信服务主要为对企业/政府(对公)服务,主要提供邮件、文档、已经 OA 类(审批、客户关系维护、效率办公)
二、"学生管理系统" 毕业架构设计
(一) 合适原则:
开发人员全部会使用 java 开发、建议采用 Java 语言开发体系。
经济条件一般、建议采用云产品(主要设备为服务器,DNS 为免费设置),例如阿里云/腾讯云/华为云
(二)简单原则:
由于是毕业设计、建议采用单体应用+集群的部署模式进行【部署较为简单】
用户量较少、建议采用通用易懂的关系数据库进行处理【学习成本较低|Java 和 MySQL 非常通用】
建议采用开源度较高的通用 java 开源的管理系统去实现,减少权限和用户的开发,更加关于业务,例如 Ruoyi/jcccgBoot【前提一定是单体架构】
(三)可扩展原则:
系统本身是为毕业设计服务、用户的访问量较低。建议本身系统支持数据不丢失、应用不宕机,就已经满足其扩展性。
方案一:
(1) 由域名的 DNS 进行解析,一个域名对应两个主机地址(在阿里云中是支持),通过阿里云的 DNS 进行负载均衡处理(不建议购买 SLB 负载设备处理费用较高),
(2)购买两台阿里云 ECS 服务器,每台服务器分别部署应用和数据库,
(3)数据库采用主从复写模式,数据库采用 Mysql
(4) 应用采用单体架构+集群部署模式,采用 ruoyi 的系统框架实现,只注重业务开发
优点:保证高可用由 DNS 切换,管理系统的基础功能(权限管理、用户管理)、保证数据的高可用性(数据不易丢失)
缺点:费用稍微高一些,设计应用时要注意 session 不能共享问题。
方案二:
(1)购买一台阿里云 ECS 服务器,和购买阿里云的 Oss 存储【成本:0.5 元/天】
(2)单台服务器分别部署应用和数据库
(3)数据库采用 MySQL,每个一个小时向对象存储存入数据库增量数据
(4) 应用采用单体架构+集群部署模式,采用 ruoyi 的系统框架实现,只注重业务开发
优点:与方案一比较节省费用、设计应用时不需要注意 session 共享问题。
缺点:不具备高可用功能、数据只能找回一定时间之前(例如要求每隔 1 小时,上传到 OSS 存储上数据,那只能找回宕机之前的数据)存在一定的数据差。
方案三:
(1)购买一台阿里云 ECS 服务器,和购买阿里云的 Oss 存储【成本:0.5 元/天】
(2)单台服务器分别部署应用和数据库
(3)数据库采用 Derby,每个一个小时向对象存储存入数据库增量数据
(4) 应用采用单体架构+集群部署模式,采用 ruoyi 的系统框架实现,只注重业务开发
优点:最节省费用【数据库和应用集成到一起了服务器的要求可以降低】、设计应用时不需要注意 session 共享问题。
缺点:不具备高可用功能、数据只能找回一定时间之前(例如要求每隔 1 小时,上传到 OSS 存储上数据,那只能找回宕机之前的数据)存在一定的数据差,此处每次上传数据都是全量备份。
最终方案:
建议采用方案一,
(1)只要用于毕业设计,整个购买的成本平均会很低【方案一只比另两个方案相差 230.00 元左右,整个项目的周期也就一个月】
(2) 系统架构比另两个方案,架构稍微复杂一些【高可用这块,同时采用了 MySQL 数据复写功能】,在答辩时,考官会根据相关的功能,评分会较多些。
版权声明: 本文为 InfoQ 作者【joak】的原创文章。
原文链接:【http://xie.infoq.cn/article/02fb026f138215f6f02b08bee】。文章转载请联系作者。
评论