1、单体架构。
在项目初期,为了产品快速上线、快速验证,架构是比较简单直接的,就是单体架构,如下图:
就我以前画的哪些,勉强能够得上吧。
这儿就不用别人的图了,献丑了。
单体架构快速了实现了产品的核心功能,可以提供给种子用户快速验证。但是随着业务的扩大,渐渐的问题就会暴露出来了。
业务服务和基础功能服务需要解耦(我处理好了的)
业务服务中有不少长耗时的任务,这些都影响了业务服务的横向扩展,长耗时任务也必须从业务服务解耦(我上一个项目就处理了这个)
应用服务和基础服务拆分后,也需要机制保障通信(这个我,后面有)
服务必须可扩展(这个我前一个项目就做了)
一旦大范围使用,单点服务不足以应对,一定要集群(这个我,后面有)
架构演进五条原则
确定当前的架构现状:每次架构演进,一定是针对当前架构的,所以必须非常清楚当前的架构现状和问题。
确定重构的目的和必要性:架构重构的原因是什么?除了架构重构之外,是否有别的备选方案?
定义“重构完成”的标准:为每一次架构演进定义清晰的重构目标和成功标尺。
渐进式重构:为每一个模块配备基准测试。最好在模块开发前先把测试脚本开发好,至少文档要先出,如果让我带团队的话。
远离虚的东西:例如使用热门的技术,使用不成熟的技术。要脚踏实地,根据实际需要以及团队的技术背景,合理的选择重构方案。
2、集群架构
emmm,我这个图要结合前面那张图来看。
第一次画集群架构,没什么经验,不要笑哈。
再看看人家的吧,对比一下:
各有千秋哈。
实现了集群架构以后,服务的能力,稳定性和可靠性都上了一个台阶,但是随着用户的使用越来越深入,平台提供的服务越来越多,集群架构的问题也逐步开始显现:
平台提供的服务能力越来越多,业务越来越复杂
简单的说,一个服务dump了,集群全都有可能挂了,因为集群上的每台机子都有这个服务。
平台服务要提供集成与被集成的能力,与其他的CI服务集成,与测试平台集成
平台要与其他产品打通 - 与运维产品打通,获取客户运维数据,做到DevOps闭环,通过反馈和运维数据反向推动产品持续迭代改进
平台要对外开放,面向生态合作伙伴提供服务能力,对外开放,第一步就是要让用户能进来,这就涉及到整个用户中心体系的建立,用户管理、统一身份认证等。
虽然集群架构已大大提高了可靠性和可用性,但是随着服务的深入使用和用户规模的不断增长,对可靠性和可用性的要求也越来越高,对平台服务以及服务资源的运维也变得越来越重要和紧迫
面对上述问题,需要对服务进行拆分,治理,提供服务和资源的运维、监控能力,而都需要架构
3、微服务架构
那微服务我还没体验过,就没自己的图了。
微服务架构的特点如下:
提炼CI引擎,丰富集成能力
服务按领域拆分,提供服务治理能力
服务运维能力,提供监控、告警、统计分析
提供日志服务,便于错误分析和运营分析
提供统一的容器云服务, 提供高可用、可伸缩的容器应用管理
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
最后
2020年在匆匆忙忙慌慌乱乱中就这么度过了,我们迎来了新一年,互联网的发展如此之快,技术日新月异,更新迭代成为了这个时代的代名词,坚持下来的技术体系会越来越健壮,JVM作为如今是跳槽大厂必备的技能,如果你还没掌握,更别提之后更新的新技术了。
更多JVM面试整理:
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
13743124232)]
更多JVM面试整理:
[外链图片转存中…(img-LW5z3l2n-1713743124232)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!