专栏首页dotNET知音2020年flag,微服务架构你准备好了吗?

2020年flag,微服务架构你准备好了吗?

权威招聘网站显示,超过五成的高薪岗位,都要求掌握微服务架构,如果还不会,你可能连初试机会都没有!想高薪?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请求/响应:

本文分享自微信公众号 - dotNET知音(AAshiyou),作者:朝夕net社区

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-02-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • .NET Core微服务开发选项

    微服务构最终的目标是实现业务的价值,交付,为了让开发人员更加关注业务开发和交付,微服务需要一些比较底层的基础设置,我们也称为微服务公共关注点。

    李明成
  • 优秀的开发者从命名开始

    如何码出高质量的代码呢?其实命名也没有那么难,关键看你重不重视,愿不愿意花时间。以下是课程笔记和阿里巴巴的开发手册中觉得适用的部分,分享出来。

    李明成
  • .net 微服务实践

    来源:https://www.cnblogs.com/lgdvvvv/p/lgdvvvv.html

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

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

    寒树Office与RPA
  • .NetCore+微服务架构,春招高薪必备,你造吗?来领取秘籍,一周搞定!

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

    梁规晓
  • 【微服务】微服务架构下,名字服务的使用体验和功能设计

    本文记录下接入微服务时,名字服务的使用体验以及名字服务的相关知识概念。作为“消费”侧,理解概念以帮助熟练使用工具即可,并不需要深入其中的原理。

    心谭博客
  • 微服务架构在Netflix的应用:架构设计的经验教训

    Rainbond开源
  • 云平台架构实践中的微服务分解原则

    羽客
  • 京东微服务平台架构解密

    平台初心 微服务组件平台是承载京东集团所有业务的服务调用、消息通知的底层架构平台、运维管理平台、知识分享平台、沟通协作平台和服务评价及诊断平台。 底层架构平台...

    京东技术
  • 盘点云计算的六大商业模式

    服务是什么?云服务是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云服务指通过网络以按需、易扩展的方式获得...

    静一

扫码关注云+社区

领取腾讯云代金券