30

这样的学习方法很棒,我们以微服务学习为例……

 4 years ago
source link: http://mp.weixin.qq.com/s?__biz=MzU2NjIzNDk5NQ%3D%3D&%3Bmid=2247488572&%3Bidx=1&%3Bsn=e5b3d81a6f13b88513ad4d05379584dd
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

点击上方 匠心零度 ,选择“ 设为星标

做积极的人,而不是积极废人

emuUFre.jpg!web

本文来源:

https://www.cnblogs.com/jackyfei/p/10019621.html

希望给你3-5分钟的碎片化学习,可能是坐地铁、等公交,积少成多,水滴石穿,码字辛苦,如果你吃了蛋觉得味道不错,希望点个赞,谢谢关注。

如何学习

学习是一个人的核心竞争力,终生持续学习是别人离不开你的秘诀,如果能分享和教会别人,你的收获可能是双边甚至更多。就技术领域的学习,我还是一个在海边玩耍的小孩,时不时因为捡到一块漂亮的石头就开心不已。

学习金字塔

学习金字塔是个被熟知的好方法,如下图所示。

该方法至少内置了两层含义:1.学习是循序渐进的过程,不要希望走捷径,刷聪明才智。2.学习是从理论到实践再到理论的反复迭代的过程,不要觉得一个闭环就能搞的定。如果人家恭维觉得你是某一方面的专家,你要有所保留,不要掉进赞美的坑里。

ruuInym.jpg!web

学习好比小孩玩乐高游戏,首先要明确要拼什么,是航空母舰还是直升机,其次要尽可能的占有更多有价值的学习资源,也就是要有足够的的积木,接下来就是看说明书,按步骤,分阶段,按级别的动手过程。

所以回到我们的主题,我们要学习的是微服务这个总目标,接下来搜集尽可能多的有价值的资源,最后查一查我们的说明书或者叫地图,了解学习图谱和路径了(百度脑图)。下面接着要规划的就是我的脑图和学习要点,如果您有更好的方式,请多指教。

学习路径

学习路径属于学习的细节部分,根据以上的路径,我们需要整体了解微服务整片森林的构成,也是就后面要展示的思维导图,随后导图的每个构件需要逐个拆分梳理,比如微服务包含的六大组建,最后我们开始行动,各个击破。在分阶段学习的过程中,我们至少要循序渐进,由简入深,避免一开始拔高门槛,导致的心理受挫。最后一环,通过讨论,分享进行知识的盘点和复习、固话。

提到学习方法,另外补充一个左耳朵耗子提出ARTS的学习小技巧,即每周至少做一个 leetcode 的算法题、阅读并点评至少一篇英文技术文章、学习至少一个技术技巧、分享一篇有观点和思考的技术文章。(也就是 Algorithm、Review、Tip、Share 简称 ARTS)需要坚持至少一年。我觉得这种方式也很不错,不过那是学习的细节和学习毅力的问题了,但凡有这种好习惯的人,值得敬仰,我知道的有阮一峰前辈有这种持续的学习毅力。

学习什么

微服务已经不是什么新技术,只是闻道有先后,大厂和趋势在前行,你不得不迈开脚步(可能你反对,但是趋势挡不住),当微服务扑面而来的时候,你是否还在观望或者犹豫,当你恍然大悟的时候,你是否又迷茫不知所措?是的,我们需要一份微服务的脑图,也许这份图谱不一定是标准答案,但是在你做参考和评估的时候,希望能对你有所帮助。如下图所示:

rAJJjqV.jpg!web

由于内容较多,查看全貌请移步百度脑图。

为了更好地理解微服务和设计微服务架构,列出几个比较经典的设计图辅助理解:

图一

emuAVf2.jpg!web

图二:(胡忠想 微博技术专家)

6BvYBb7.jpg!web

六大组件

如脑图所示,微服务总体的内容包含有六大组件:服务描述,注册中心,服务架构,服务监控,服务跟踪和服务治理。这六大组件互相依赖,相辅相成,纵深挖掘,又可以牵扯出DevOps和容器化技术等周边信息,这些武器库代表的是技术的未来,不管是你是在小企业还是大厂,还是大厂里的小部门,不知道你是否有这种体验?

IFNb6bB.jpg!web

(微服务生态)

服务描述:

类似服务的说明文档,简单但不可或缺。比如,服务调用首先要解决的问题就是服务如何对外描述。比如,你对外提供了一个服务,那么这个服务的服务名叫什么?调用这个服务需要提供哪些信息?调用这个服务返回的结果是什么格式的?该如何解析?这些就是服务描述要解决的问题。

注册中心:

有了服务的接口描述,下一步要解决的问题就是服务的发布和订阅,就是说你提供了一个服务(Provider),如何让外部(Consumer)想调用你的服务的人知道。这个时候就需要一个类似注册中心(Registry)的角色,服务提供者将自己提供的服务以及地址登记到注册中心,服务消费者则从注册中心查询所需要调用的服务的地址,然后发起请求。如下图所示:

YrQJV3m.jpg!web

服务框架:

通过注册中心,服务消费者就可以获取到服务提供者的地址,有了地址后就可以发起调用。但在发起调用之前你还需要解决以下几个问题。服务通信采用什么协议?是RESTful API还是gRPC?数据传输采用什么方式数据压缩采用什么格式?这些活通常集成到了我们的服务框架里面,市面上有很多这样的开源框架,相对都比较成熟,接下来考验你的是快速上手的能力。

服务监控:

一旦服务消费者与服务提供者之间能够正常发起服务调用,你就需要对调用情况进行监控,以了解服务是否正常。通常来讲,服务监控主要包括三个流程,指标收集,数据处理,数据展示。监控是为了发现问题和异常,如果要进一步跟踪和定位问题,则需要进一步了解服务追踪。

服务追踪:

除了需要对服务调用情况进行监控之外,你还需要记录服务调用经过的每一层链路,以便进行问题追踪和故障定位,最后达到接近问题的目的。服务监控和追踪可以合并起来,但是要明确各自的职责是不一样的。

服务治理:

服务监控能够发现问题,服务追踪能够定位问题所在,而解决问题就得靠服务治理了。服务治理就是通过一系列的手段来保证在各种意外情况下,服务调用仍然能够正常进行。就目前开源的服务框架,大部分都不包括服务治理的内容,所以有可能这块是需要你和你的团队进行定制化开发,就看你做到什么程度了,就好比你有数据库但是你没有ER图描述,并不影响你用微服务,当然如果有就是锦上添花的东西了。

以上六大组件可以粗暴的定义为微服务的二级目录,他们共同组成了微服务架构,在生产环境下缺一不可。

相信通过以上的整理,你对微服务的学习方法和学习路径已经有了一个大概的思路了,接下来就是迈开脚步,持续输出的能力了,你准备好了吗?

参考文献:

  • 微服务架构理解

  • 微服务架构设计

  • Martinfowler博客Microservices

  • Microservice Architecture

  • Wikipedia

END

如果读完觉得有收获的话,欢迎点【好看】,关注【匠心零度】,查阅更多精彩历史!!!

nmqYriz.gif

让我“ 好看 ”  bYreamJ.gif


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK