文档章节

微服务究竟该如何理解

 透明的鱼
发布于 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
博文 74
码字总数 117942
作品 0
私信 提问
8月2日,深圳 | DockOne技术沙龙开始报名啦

微服务正在博客、社交媒体中获得越来越多的关注,在Gartner的2014 Hype Cycle上它的排名非常靠前。同时,软件社区中也有不少持怀疑论者,认为微服务不是什么新东西。Naysayers认为这就是SOA...

DockOne
2015/07/13
2.2K
17
OSC 第 130 期高手问答 — 究竟什么才是微服务?

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

局长
2016/10/17
13K
152
阿里巴巴前架构师 360 度无死角剖析微服务

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

yuanzhitang
2016/11/28
0
0
Java程序员该如何突破瓶颈!

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

JAVA高级架构开发
2018/08/31
0
0
阿里巴巴前架构师 360 度无死角剖析微服务

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

OSC源创君
2016/11/09
15.5K
29

没有更多内容

加载失败,请刷新页面

加载更多

传统IDC部署网站(三)

11. 重置密码 密钥和密码都支持远程登陆, 二选一 两个都可以登陆, 密钥相对于密码来说,相对安全一点 本地登陆无法是用密钥 修改密码 root 用户 passwd root 修改普通用户 passwd usernam...

miko0089
23分钟前
2
0
日志服务与SIEM(如Splunk)集成方案实战

背景信息 目标 本文主要介绍如何让阿里云日志服务与您的SIEM方案(如Splunk)对接, 以便确保阿里云上的所有法规、审计、与其他相关日志能够导入到您的安全运维中心(SOC)中。 名词解释 LOG(S...

阿里云官方博客
26分钟前
2
0
bash特性

1.支持别名 alias 2.命令替换 $(COMMANS) 或者 `COMMAND` 3. bash支持的引号: `` :命令替换 "":弱引用,可以实现变量替换 '':强引用,不实现变量替换 4.文件名通配 globbing:(man 7 glo...

忙碌的小蜜蜂
31分钟前
2
0
以语音评测的PC端demo代码为例,讲解口语评测如何实现

本文由云+社区发表 作者:腾讯智慧教育 概述 腾讯云智聆口语评测(英文版)(Smart Oral Evaluation-English,SOE-E)是腾讯云推出的语音评测产品,是基于英语口语类教育培训场景和腾讯云的语...

腾讯云加社区
43分钟前
1
0
浅谈SpringMVC之DispatcherServlet

Spring的MVC框架是围绕一个DispatcherServlet其实就是个Servlet(它继承自HttpServlet基类)来设计的, 它支持可配置的处理器映射、视图渲染、本地化、时区与主题渲染、文件上传等 控制器一般...

恋码之子
46分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部