初识go语言-架构初探 | 青训营笔记

103 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第9天

前言

在此之前,笔者也了解过一些架构的知识,不过不是很详细。最近学习了架构有关的课程,对此进行一些记录。记录的主要内容为架构的有关演进,至于一些深入的知识可以以后再讨论。

架构定义

架构又被称为软件架构,是有关软件整体结构和组件的抽象描述,用于指导软件系统各方面的设计。

架构的定义比较抽象(就和课本里面有些东西的定义一样),说通俗易懂点就是实现的方法有很多,但架构在方法选择上起着重要作用。比如画画一个人物,可以直接从轮廓开始画,但如果先画出一个人物骨架的话最后的人物线条比例应该会更完美。

架构的重要性就好比房子的地基,地基不好是建不了高楼大厦的,站不到大厦高处也就很难看得更远了。

单机架构

单机直观好理解,就是把所有功能、服务实现在一个进程里面放到一台机器上部署。

为数不多的优点:部署简单

一堆问题的其中之一:运维就得停服了,详情可参考单体架构的开发和架构问题_chengqiuming的博客-CSDN博客

单体架构、垂直应用架构|垂直切分

单体架构:分布式部署 垂直架构:按应用垂直切分的单体

部分优点:水平扩容、运维不停服。

部分缺点:职责多、开发效率不高、爆炸半径大。

详情可参考单体架构的优缺点_热牛奶啊的博客-CSDN博客_单体架构的缺点

微服务架构|水平切分

SOA(Service-Oriented Architecture):将应用不同单元抽象为服务,定义服务之间的通信标准。

微服务:SOA去中心化演讲方向。

优点:易于开发和维护。

缺点:分布式事务问题。

详情可以参考微服务架构的优缺点_AOSIDIN的博客-CSDN博客_微服务架构的优缺点

小结

架构演进就像做蛋糕一样,需求量越来越大终要增加人手,要求(功能)越做越复杂终要分工合作;蛋糕越来越大终要切分(水平切分|垂直切分)。

参考

  • 字节跳动青训营《架构初探-是谁动了我的蛋糕》课程