1 / 12
文档名称:

《从单体应用到微服务》读后感.doc

格式:doc   大小:51KB   页数:12页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

《从单体应用到微服务》读后感.doc

上传人:maxdoer 2021/8/29 文件大小:51 KB

下载得到文件列表

《从单体应用到微服务》读后感.doc

相关文档

文档介绍

文档介绍:《从单体应用到微服务》读后感

《从单体应用到微服务》读后感
  目标:共同学****共同进步、告别码农,成为受人敬仰的、有态度的程序猿。拒绝不知其所以然的复制粘贴、拒绝人云亦云。用最严谨的态度、最专业的方法、最可靠的知识来源,探究技术内幕,死磕到底!!!
  内容简介
  原书名字是《Monolith To Microservices》,是大神Sam Newman的新书,目前还没有中文版本。原本是想写一个简短的读后感的,但是写着写着,发现书中的内容真的是太经典了,浅尝辄止的描述完全不能体现本书的价值。于是就改成了用我自己的语言对书中每一章的内容进行了精炼。因此这个读后感也可以作为原书的精简版来看,只不过用的是我自己的语言总结的。也是由于这个原因,这篇文章越写字数越多,最后接近三万字,花费的时间也很多。为了便于阅读,分成4部分来发。
  注:本文中的图片截自原书
  第一章、微服务介绍
  什么是微服务应用?
  微服务是围绕一个业务领域建模的可独立部署的服务。通过网络彼此交互。微服务是一种SOA架构,并且它是技术不可知论的,即:微服务并不要求使用特定的技术。这点需要重点强强调下,因为很多人采用微服务都是技术驱动的,这种认识不是非常合适。微服务通过网络端点互相访问,这让微服务具有分布式系统的特点。下面罗列一些微服务的核心思想:
  独立可部署性
  这本书认为微服务最重要的特性就是独立可部署性。这要求微服务在部署自身的时候,不依赖任何其它服务。为了保证独立可部署性,因此需要服务之间松耦合、服务之间使用稳定的协议交互数据。
  围绕一个业务领域建模
  传统的单体应用中,我们最常用的架构是分层架构,如将系统分为展示层、业务层和数据层。根据康威定律:任何设计系统的组织,都会产生这样一个设计,即该设计的结构与该组织的沟通结构相一致。因此在分层架构中,不同技术角色的人员被分配在一起工作,如前端组、后端组和DBA组等。这是一种以技术视角设计的架构。在微服务中,则是围绕业务领域的,将一个大的业务领域划分成若干尽可能独立的子域,每个子域自己可以是分层架构的。根据康威逆定律,这样的架构势必也会影响到组织的沟通方式的变化。
  拥有自己数据的所有权
  微服务的核心思想之一是不使用共享的数据库,每个服务唯一的拥有自身数据的控制权。这可以让服务决定公开哪些数据和隐藏哪些数据。这进一步要求了微服务之间需要维护稳定的接口协议。对数据的控制会促进服务做到高内聚,而通过隐藏自身数据又可以促进服务间的松耦合。
  微服务带来的优势
  微服务带来的优势很多。天生的可独立部署性可以促进系统的伸缩性和鲁棒性,并且可以混合使用多种技术。通过服务和团队的划分,每个服务都是独立演进的,也就是说,所有的服务都可以并行开发,服务的开发团队也将专注于一个特定的业务领域,不受其它业务领域的影响。
  虽然微服务带来了很多优势,但是这并不代表可以免费的使用微服务。另一方面,微服务的优势中,针对某个方面可能还有其它替代方面,而并非只能使用微服务来获得。因此在应用微服务架构时,非常重要的一点是需要明确自身想从微服务中获得哪些好处。
  微服务带来的问题
  计算机的价格越来越低,这让SOA架构广泛的被应用。使用SOA可以将系统分布在多台计算机上。但这带来的挑战是服务之间的网络通信问题。网络连接是不稳定的,尤其是考虑延迟的时候,延迟会让整个系统变得不可预测,除此之外,还需要额外处理网络错误的情况。分布式的部署结构会让一切变得复杂起来。某种意义上说,单体应用也存在一些分布式的场景,例如:数据库在一台服务器上,另一台服务器上的程序从数据库服务器读取数据,而客户端使用一台电脑访问程序获取数据。在这个场景中已经出现了3台电脑间的网络通信。单体应用和微服务在分布式上的差别主要在分布的程度上,微服务会使用更多的主机、更多的网络通信。开始的时候,微服务的规模较小,问题可能看起来并不十分严重,但随着微服务规模的逐渐增多,出现问题的频率和难度也会逐步上升。为了解决微服务带来的分布式问题,将会花费很多的真金白银。这也是在打算使用微服务架构时需要考虑的一点:是否值得?
  用户界面
  使用微服务架构的一个误区是只对服务端程序进行微服务架构,而依然采用单体应用来作为展示层提供UI访问。单体的展示层使得从用户视角来看,服务无法独立的发布,这是不正确的。根据上面围绕业务领域建模中讲述的,每个微服务都应该负责自身业务领域的所有分层,包括:UI层、业务层和数据层。因此在用户界面

最近更新

小学生国旗下五一劳动节讲话稿 5页

2024年代理记账项目资金申请报告代可行性研究.. 59页

2024年大金龙客车项目资金需求报告代可行性研.. 71页

幼儿园元宵节的活动总结范文 10页

2024年垂直电梯项目资金需求报告代可行性研究.. 61页

心理健康教师培训心得体会 21页

土壤胶体和土壤离子交换 91页

2024年彩涂板(卷)项目资金筹措计划书代可行.. 65页

2024年安全、消防用金属制品项目资金申请报告.. 65页

2024年专业技术人员继续教育公需课题库(有一.. 26页

2024年保安员考试题库附参考答案(综合卷) 121页

2024年PF-C3耐高温驱油固沙剂项目资金筹措计划.. 76页

2024年公务员考试常识题400道含答案【名师推荐.. 109页

2024年县乡教师选调进城考试《教育学》题库加.. 114页

2024年县乡教师选调进城考试《教育学》题库附.. 115页

2024年县乡教师选调进城考试《教育法律法规》.. 145页

2024年大学计算机基础等级考试题库含答案ab卷.. 22页

2024年大学计算机考试题库800道及参考答案【达.. 146页

2024年宪法知识竞赛题库精品【达标题】 51页

2024年政工职称考试题库含完整答案【精选题】.. 61页

交警劳务派遣合同 3页

乡镇卫生院医疗质量管理考核评分标准 9页

外宿申请书 2页

2023晚上的晚祷范文七篇 8页

《佛说天地八阳神咒经》注音版(可直接A4纸打印.. 13页

中学校长试用期满转正述职报告 49页

DL T 819-2019《火力发电厂焊接热处理技术规程.. 24页

福州市第一批地区综合性评标专家库评标专家详.. 30页

输血法律法规 27页

2016年飞行航空俱乐部建设可研报告可行性研究.. 13页