文档章节

微服务究竟该如何理解

 透明的鱼
发布于 2017/08/01 14:35
字数 1145
阅读 1
收藏 0

在谈微服务之前我们需要先了解两个概念:SOA和ESB。

SOA

面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。

这是百度百科中给出的解释。简单来说,SOA可以理解为企业内部各类系统的集成,每个系统对外提供粗粒度的服务,这些服务都部署在一个中心平台上,这个平台就是ESB(Enterprise Service Bus)—企业服务总线。

这是我们对于SOA的理解,不难看到,ESB是一个很重的机制,首先他集成了多种异构系统,使得内部通讯方式复杂,协议众多。其次,ESB的高度中心化给企业带来了一定的单点故障的隐患,并且在ESB上统一部署服务,也一定程度上限制了服务的后期扩展。基于以上这些不足,微服务应运而生。

在微服务架构中,首当其冲强调的第一个重点就是,企业的业务系统要彻底的组件化,模块化,服务化。首先要把整体业务分割成一个个可以独立设计,开发,运行的小业务。这里的独立是指从业务层,应用层,到数据层,物理层都是独立的。这个就是微服务分散管理的思想。另一个重点就是每个独立的服务之间通过轻量级的设备与HTTP型的API进行沟通,解决了传统SOA架构中ESB机制下内部通讯复杂,协议众多,调用困难的难点。其实对于微服务来说,每个独立的业务所提供的接口能力本身其实就是这个业务所能提供的服务,服务和业务是一起部署的,服务通过已有的接口能力发布和暴露出来。

谈完了微服务的概念,最后让我们来聊聊微服务的优缺点和它能给企业带来的收益。

首先微服务的优势显而易见—独立。微服务的架构下每个服务都是独立的,可以由不同的团队独立开发,使得开发团队可以关注于这一个业务功能,提高开发效率,并且因为它的独立性,使得每个服务可以应用不同的语言和开发环境进行开发。而且微服务架构并不是完全的独立,它强调每个服务间是松散耦合的,服务间通过轻量级的接口进行沟通,各自独立存在的同时还保证了服务之间的耦合关联。能完成传统SOA架构的功能的同时,在很大程度上解决了SOA架构中的难点。

有优势就有劣势,对于微服务架构来说,首当其冲的缺点就是,不同的团队之间要解决沟通上的冲突。团队多了,交流就显得更加重要,甚至很多专家认为实现微服务需要DevOps的同步推进。其次就是技术上的难点,分割成一个个独立的业务模块以后,服务间进行通信的接口设计就变得尤为重要。最后就是微服务架构的部署,如何科学合理的将微服务架构下的系统部署到服务器上,在保证各个服务高效运行的同时,尽可能的降低成本,是采用微服务架构的企业要考虑的重点。

最后,给大家推荐一个采用微服务架构设计开发的项目管理工具—华为软件开发云,这是一款涵盖软件开发全生命周期管理的工具,面向开发者提供软件开发云服务,即开即用,随时随地在云端进行项目管理、配置管理、代码检查、流水线、编译、构建、部署、测试、发布等,让开发者快速而又轻松地开启云端开发之旅。

© 著作权归作者所有

共有 人打赏支持
粉丝 0
博文 70
码字总数 110649
作品 0
阿里巴巴前架构师 360 度无死角剖析微服务

摘要: 阿里巴巴前架构师对于微服务毫无保留的分享,360 度无死角剖析微服务 微服务是当前软件架构领域非常热门的词汇,在社区中也有很多热烈的讨论。因此,在 OSC 第 130 期高手问答中,我们...

yuanzhitang
2016/11/28
0
0
阿里巴巴前架构师 360 度无死角剖析微服务

微服务是当前软件架构领域非常热门的词汇,在社区中也有很多热烈的讨论。因此,在 OSC 第 130 期高手问答中,我们策划的主题是“究竟什么才是微服务”,并邀请了黄勇作为高手嘉宾。 黄勇,现...

OSC源创君
2016/11/09
15.5K
29
OSC 第 130 期高手问答 — 究竟什么才是微服务?

OSCHINA 本期高手问答(10 月 17 日-10 月 23 日) 我们请来了@黄勇 为大家解答关于微服务架构方面的问题。 黄勇,现任特赞公司 CTO,曾任阿里巴巴公司系统架构师。对微服务架构与大数据技术有...

局长
2016/10/17
12.3K
152
Java程序员该如何突破瓶颈!

一、源码分析 源码分析是一种临界知识,掌握了这种临界知识,能不变应万变,源码分析对于很多人来说很枯燥,生涩难懂。 源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心。 我认为...

JAVA高级架构开发
08/31
0
0
微服务指南走北(五):什么样的服务才可以说是微服务?

最近有朋友提出了问题:“是不是拥有了服务发现就是微服务了?”,对于这个问题,很难回答,毕竟微服务的定义在每个人心里都是不一样的,就像“互联网思维”一样,我们说得清“互联网”,却总...

gsying1474
2017/04/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

RESTful架构详解

1. 什么是REST REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移。 它首次出现在2000年Roy Fielding的博士论文中,Roy Fielding是HTTP规范的主...

kitty1116
17分钟前
0
0
精通Spring Boot——第十篇:Quartz动态配置定时任务

定时任务简述 定时任务,在企业开发中尤其重要,很多业务都是需要定时任务去做的。比如说10点开售某件东西,凌晨0点统计注册人数,统计其他各种等等。这个时候不可能说让人为的去开启某个开关...

developlee的潇洒人生
19分钟前
0
0
将一些内容输出到文件中

看到一个面试题,如下: 第八题: 一个字符串将其输入到一个文件中,代码如下: <?php$a = '[{"teamId": "43", "serial": "1"},{"teamId": "1", "serial": "2"},{"teamId": "14", "serial":...

vinci321
28分钟前
0
0
nginx的简单使用:负载均衡

nginx:反向代理的服务器;用户发送请求到nginx,nginx把请求发送给真正的服务器,等待服务器处理完数据并返回,再把数据发送给用户。 nginx作为一个反向代理服务器,能缓存我们项目的静态文...

osliang
今天
2
0
网站title标题被改并被百度网址安全中心提醒的解决办法

国庆假日期间我们Sine安全接到众多网站站长求助网站标题被改导致在百度搜索中百度安全中心提醒被拦截,导致网站正常用户无法浏览网站被跳转到一些菠菜du博网站,而且很明显的一个特征就是在百...

网站安全
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部