识堂 | 笔记分享讨论社区,让知识说话

微服务和分布式

微服务是架构设计方式,分布式是系统部署方式,两者的概念不同

微服务

微服务就是很小的服务,小到一个服务只对应一个单一的功能,只做一件事,这个服务单独部署运行,服务之间通过RPC来进行交互。
每个微服务可以由一个很小的团队来进行开发、测试、部署和发布。

In short, 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.

翻译:简而言之,微服务架构风格是一种将单个应用程序开发成一套小型服务的方法,每个服务都在自己的进程中运行,并与轻量级机制(通常是HTTP资源API)进行通信。这些服务是围绕业务能力建立的,并且可以通过完全自动化的部署机制进行独立部署。这些服务有最低限度的集中管理,它们可以用不同的编程语言编写,并使用不同的数据存储技术。

  • 微服务是一种架构风格
  • 将一组应用拆分成多个小型的服务
  • 每个应用都运行在自己的进程中,可以独立部署和升级
  • 服务之间使用轻量HTTP进行交互
  • 服务围绕业务功能拆分
  • 去中心化(服务和语言)不同服务可以使用不同的语言、不同的存储技术

微服务有如下技术问题:

  • 服务调用
  • 服务降级
  • 服务注册与发先
  • 服务熔断
  • 负载均衡
  • 服务消息队列
  • 服务网关
  • 配置中心管理
  • 自动化构建部署
  • 服务监控
  • 全链路追踪
  • 服务定时任务
  • 调度操作

    微服务架构

    如果系统的用户量只有几百人,那么单体应用就能搞定
    但是如果是很大的用户量,那么某些业务部分会被频繁访问,导致整个系统的效率都会降低,因此可以将应用拆解为多个子系统,各自负责各自的功能,这就是微服务架构
    微服务和分布式 - 图1

    分布式

  • 顾名思义,分布式服务就是将服务分散部署在不同的机器之上的,一个服务可以负责多个功能。

  • 系统应用部署在超过一台服务器或者虚拟机之上,且各个分开部署的部分彼此之间通过各种通讯协议交互信息,就算作是分布式部署。
  • 生产环境下的微服务部署肯定都是分布式部署的,但分布式部署的应用不一定是微服务架构的,比如集群部署,只是将多个相同的应用复制到不同的服务器上,但是逻辑功能上还是单体应用。