前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >分布式和微服务有什么区别

分布式和微服务有什么区别

作者头像
心平气和
发布2021-07-15 13:08:48
5K0
发布2021-07-15 13:08:48
举报

最近有朋友面试被问到这个问题,好像自己也没好好想过这个问题,所以大概整理了下。

微服务准确的说是微服务架构,而分布式则有分布式系统和分布式架构之说,为了不引起不必要的误会,这里统一指分布式架构。

先看下定义:

1、微服务架构

微服务最早由软件开发大师Martin Flower提出,以下是中文翻译:

微服务架构风格是一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制(通常用HTTP资源API)。这些服务围绕业务能力构建并且可通过全自动部署机制独立部署。这些服务共用一个最小型的集中式的管理,服务可用不同的语言开发,使用不同的数据存储技术。

https://blog.csdn.net/jason_wang1989/article/details/88321698

微服务的九大特征:

组件化与服务

围绕业务功能的组织

产品不是项目

智能端点和哑管道

分散治理/去中心化治理

分散数据管理/去中心化数据管理

基础设施自动化

容错性设计

演进性设计

2、分布式架构

网上搜了一圈也没有准确的定义,我们简单点,如果是分布式系统, 我们说说这个系统是分布式架构,看下分布式系统的定义:

分布式系统是若干独立计算机的集合,这计算机对用户来说就像单个相关系统 分布式系统原理与范型

即整个系统是由不同的计算机组成,而用户是无感知的,就像访问一台计算机一样。这里强调的是系统由不同物理上分离的计算机(服务器)组成。

举个例子,下面这个系统是分布式架构的,它由WEB集群、数据库集群、缓存集群组成,各个子系统是由不同的计算机组成的,但这个系统不是微服务的。

微服务解决的是系统复杂度问题,一般来说是业务问题,即在一个系统中承担职责太多了,需要打散,便于理解和维护,进而提升系统的开发效率和运行效率,微服务一般来说是针对应用层面的。微服务如果用在其它系统,如存储系统感觉怪怪的,就像说Mysql集群是微服务的,总觉得哪里不舒服。

分布式解决的是系统性能问题,即解决系统部署上单点的问题,尽量让组成系统的子系统分散在不同的机器上进而提高系统的吞吐能力。

两者概念层面也是不一样的,微服务是设计层面的东西,一般考虑如何将系统从逻辑上进行拆分,也就是垂直拆分;

而分布式是部署层面的东西,即强调物理层面的组成,即系统的各子系统部署在不同计算机上。

微服务可以是分布式的,即可以将不同服务部署在不同计算机上,当然如果量小也可以部署在单机上。

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

本文分享自 程序员升级之路 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 组件化与服务
  • 围绕业务功能的组织
  • 产品不是项目
  • 智能端点和哑管道
  • 分散治理/去中心化治理
  • 分散数据管理/去中心化数据管理
  • 基础设施自动化
  • 容错性设计
相关产品与服务
数据保险箱
数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档