开发者社区 > 云原生 > 微服务 > 正文

什么是微服务架构?

什么是微服务架构?

展开
收起
Lee_tianbai 2021-01-05 15:27:32 747 0
1 条回答
写回答
取消 提交回答
  • 对于微服务架构,一直有一种说法,认为它是 SOA 架构的一种变体,或者是 SOA 的子集。关于这个问题,我们不去讨论他的对错(其实也没有对错之分),我们直接从这两 者的区别入手来理解到底什么是微服务: image.png 通信手段、数据等的不同只是表象,其本质区别还是由于两者诞生于不同历史时期,需 要解决的问题域不同。SOA 解决的核心问题是复用,而微服务解决的核心问题是扩展。 关于什么是微服务,Martin Fowler 有如下的定义(更多 MartinFowler 关于微服务 的内容,可以参考链接):

    The microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.?

    这里提到几个重要的概念:  一套小服务

     独立进程

     轻量级通信协议

     可独立部署

     多语言&不同储技术

    这个定义对微服务做了一个比较具象化较为易于理解的描述,通常来说我们看到的为服 务架构如下图所示:

    image.png

    但是事实上,在实际生产环境中,微服务的架构要考虑的问题远比上面的示意图复杂的 多,主要包括但不限于如下问题:  通过服务实现组件化  根据业务组织系统  做产品而不是做项目  简单高效的通信协议  自动化基础设施  面向失败的设计  具备进化能力的设计 纵然有 Martin Fowler 这样的大神在前面引路,但是我们依然认为“微服务”不是一 个被设计出来的架构,而是在不断是尝试中总结出的一套适合在互联网行业使用的架构模 式。以下的是微服务较为完整的架构图 image.png 今天我们所说的“微服务”是一个庞大且复杂的概念集合,它既是一种架构模式,也是 实现这种架构模式时所使用的技术方案的集合。

    2021-01-08 15:49:52
    赞同 展开评论 打赏
问答分类:
问答地址:

为微服务建设降本增效,为微服务落地保驾护航。

相关电子书

更多
从业务架构到微服务 立即下载
微服务在云上的架构演进 立即下载
实施微服务架构 立即下载