前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >不会微服务架构,你连初试机会都没有!领取秘籍,一周速通,快人一步拿高薪!

不会微服务架构,你连初试机会都没有!领取秘籍,一周速通,快人一步拿高薪!

作者头像
寒树Office与RPA
发布2020-02-20 13:24:29
3490
发布2020-02-20 13:24:29
举报
文章被收录于专栏:寒树Office与RPA

权威招聘网站显示,超过五成的高薪岗位,都要求掌握微服务架构,如果还不会,你可能连初试机会都没有!想高薪?Microservice你必须懂!

微服务(Microservice)这个概念是2012年出现的,2014年开始受到各方的关注;经过数年发展到现在,越来越多的论坛、社区、blog以及互联网行业巨头开始对微服务进行讨论、实践。2020年了,再不了解微服务就out了!快来跟着小编一探究竟吧!【文末有彩蛋】

一 微服务的出现

微服务架构(Microservice Architecture)是一种架构概念,它的主要作用是将功能分解到离散的各个服务当中,从而降低系统的耦合性,并提供更加灵活的服务支持。

微服务的流行,Martin Fowler功不可没。这老头是个奇人,特别擅长抽象归纳和制造概念。微服务这个名词就是典型:一解释就懂,一问就不知,一讨论就打架。

二 传统开发模式和微服务的区别

下面我们来通过对比一下两种方式,比较容易理解什么是微服务架构。这种传统Web开发方式一般被称为Monolithic(单体式开发)。

图一 单体结构

如上图,所有的功能打包在一个程序里,基本没有外部依赖(除了容器),部署在一个网站进程里,包含了 DAL,Service,UI等所有逻辑。

图二 微服务架构

如上图,微服务有效的拆分应用,实现敏捷开发和部署。它由一系列的独立的服务共同组成系统;单独部署,跑在自己的进程中,分布式管理,具有非常强调隔离性。这样一来,系统的架构可按照业务,而不是技术来划分组织,具有高度容错性,并实现了快速演化和迭代。

三 微服务的多种实现模式

1 聚合器微服务设计模式这是一种最常见也最简单的设计模式:

聚合器调用多个服务实现应用程序所需的功能。它可以是一个客户端将数据进行处理展示,也可以是更高层次的组合微服务,对数据增加业务逻辑后进一步发布成一个新的微服务。一般来说,每个服务都有自己的缓存和数据库。

2、代理微服务设计模式

这是聚合模式的一个变种:

在这种情况下,客户端并不聚合数据,但会根据业务需求的差别调用不同的微服务。代理可以仅仅委派请求,也可以进行数据转换工作。

3、链式微服务设计模式

这种模式在接收到请求后会产生一个经过合并的响应:

在这种情况下,服务A接收到请求后会与服务B进行通信,类似地,服务B会同服务C进行通信。所有服务都使用同步消息传递。在整个链式调用完成之前,客户端会一直阻塞。因此,服务调用链不宜过长,以免客户端长时间等待。

4、分支微服务设计模式

这种模式是聚合器模式的扩展,允许同时调用两个微服务链:

5、数据共享微服务设计模式

自治是微服务的设计原则之一,就是说微服务是全栈式服务。但在重构现有的“单体应用”时,SQL数据库反规范化可能会出些问题。因此,在单体应用到微服务架构的过渡阶段,可以使用这种设计模式:

6、异步消息传递微服务设计模式

虽然REST设计模式非常流行,但它是同步的,会造成阻塞。因此部分基于微服务的架构可能会选择使用消息队列代替REST请求/响应:

从理论上,解读了微服务架构的方方面面,但微服务架构的实操落地,却不是那么简单!涉及到对整个系统方方面面的规划设计和重构......

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 寒树Office与RPA 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档