微服务学(一)什么是六边形架构“六边形架构”是Cockburn大牛在提出的。该架构提供了一种将业务逻辑和具体输入输出技术分离的模式。为什么采用微服务现在大多数开发一个应用,哪怕是类似Uber或者淘宝的应用。基本上都是已单体模式开发。虽然在应用自身架构上采用了模块化设计,但在本质上她还是一个单体应用。例如:如下图这样的单体应用不好吗?上图,是比较经典优秀的单体六边形架构。在很多公司实际上因为各种原因单体应用架构还没有达到这个水平。,当应用越来越庞大后,进行新功能开发或者功能修改将会很困难。,一样当应用庞大。解耦将是一个叫你头疼的问题。,维护性差。当她足够庞大。新来的同事将会接手一个对她们看来是个怪物的东西,你会听到这些抱怨。这都是什么??你们到底在想什么??,因为各种原因,主要是开发人员水平不一。你会发现整个应用越来越慢,你想找到原因变的越来越困难。代码有大量沉余,你每天都在纠结是否能够重建她(不是重构!!)。为什么要采用微服务?不能直接采用比较高级的架构吗?微服务实际上就是用多个单体应用的集合。用多个单体服务来处理一些复杂业务。在实际开发中,除了架构师,对单个开发人员来说她只是需要开发一个简单的单体应用。开发门槛比较低,你以为在成都,西安等这些二三线城市高水平的程序员是那么好找的吗?(二三线小城市公司开不起工资,理解高级架构的高级程序员至少20,30K工资)。综上,微服务将是解决二三线小城市,小公司问题的一个优秀方案。什么是微服务?微服务开发团队怎么组建?上文已经说了,微服务实际就是多个单体应用的集合。那么一个微服务开发团队需要那些人员呢?下面我就说下我的理解。一个微服务最小开发团队:首先明确开发基础环境。既然微服务了。那么你的应用已经不是一个简单的服务能够满足需求或者你设想中的业务是需要一个服务平台才能解决的。那么最小配置将需要以下岗位。项目经理:她会负责产品开发进度把控等等。优秀的项目经理决定你团队的战斗力。产品经理:一个优秀的产品经理能够快速把你的想法或者用户的需要精确形成各种需求,她是不可或缺的。架构师:一个精通各种设计理论,有丰富一线开发经验而且了解微服务的架构师她将是整个团队的核心。决定你整个产品的质量。核心高级工程师:她将会负责整个微服务开发门槛最高的APIGateway服务的人选。她的好坏直接决定你的产品性能。高级工程师:她是带领开发小组进行具体开发的人选。她决定了代码质量和单个单体应用的性能。初中级工程师:她们将是大多数具体功能开发者。在高级工程师的指导下开发出符合要求的代码,同时也是公司的后备人才,人才储备。微服务的架构是什么?我先展示一个最粗粒度的微服务架构,然后我们在一起一步一步完善它。为什么采用APIGateway?对应用来说,不论你怎么变化技术。实际处理的业务能够抽象成一句话,客户端请求服务返回数据并向客户展示。客户端与服务端的通信我们常见的有两种方式。。。理论上说,一个客户端能够直接给多个微服务中的任何一个发起请求。每一个微服务都会有一个对外服务端。这个URL可能会映射到微服务的负载均衡上,它再转发请求到具体节点上。为了搜索产品细节,移动端需要向上述微服务逐个发请求
微服务学习笔记(一) 来自淘豆网m.daumloan.com转载请标明出处.