繁体   English   中英

微服务和网络服务有什么区别?

[英]What is the difference between microservices and webservices?

我最接近发现实际差异的是这篇文章

但我不明白是什么让我选择一个而不是另一个,如果微服务也可以使用 REST API 并通过 http 进行通信。

主要是不明白微服务是什么,能不能代替webservice来,除了目的

将大型软件应用程序分解为松散耦合的模块

微服务是一种软件架构,可以通过网络服务来实现。

一个Web服务仅仅是在“网络”或HTTP提供服务的技术(许多之一)。

我在这里得到了一个简单的答案:微服务是一种新的软件架构。 它基于网络服务。 但它可以是任何作为独立功能实现的服务,它拥有自己的数据库并且可以独立部署。

微服务是一种架构,其中系统的所有组件都放入单独的组件中,这些组件可以单独构建、部署和扩展。

要点是: Web 服务(正如名称所宣布的)是您期望“处理”HTTP 的东西——换句话说,它在万维网的上下文中做一些事情。

而微服务不受 WWW 上下文的影响。 就其核心而言,微服务应该提供一项特定的服务 - 但例如对 http 协议没有限制。

微服务通常会实现一个宁静的“Web 服务”——但它不一定是那样的!

除此之外,微服务通常意味着作为一个巨大的单体应用程序的反模型,该应用程序为许多不同类型的请求提供服务。

微服务是 Web 服务的扩展。

  • Web 服务本质上通常是垂直的(提供者-消费者通信),而微服务本质上是水平的
  • 由于以下原因,微服务被视为架构。
  • 微服务属于一种特定的应用程序。
  • 微服务正在解决特定问题,因此可以说是轻量级的。
  • 更改本质上是隔离的,因为一个微服务的更改不会影响其他微服务(例如,登录微服务中所做的更改不会影响支付微服务)
  • 扩展单个微服务很容易。
  • 微服务通常有自己的数据库。

微服务:-

微服务是一种可以与 Web 服务一起使用的软件架构。 这种方法涉及将大型软件应用程序拆分为解耦模块,其中微服务运行独特的进程并通过 API 进行通信。 它的开发可以通过使用消息传递、事件驱动的 API 或使用非 HTTP 支持的 RPC 机制。

当大型应用程序出现故障或停机时,微服务架构可以挽救这一天。 如果某个特定服务在通信中出现故障,则整个应用程序不会受到单个模块故障的影响。 Java、C#、Python 和移动软件开发语言的微服务组合是可能的。 它可以独立部署在业务领域的服务模型中。 在此处输入图片说明

网络服务:-

Web 服务只是可以通过“Web”或 HTTP 提供服务的几种技术之一。 作为一种特定类型的面向服务的体系结构 (SOA),Web 服务代表 Web 应用程序的功能。

它通过使用标准的 HTTP 协议和数据表示的通用格式(如 XML、JSON 等)定义了 API 和主代码之间的交互机制。 这允许由不同技术开发的软件应用程序相互通信。

Web 服务不涉及前端开发。 它们不连接到任何开发语言或用户设备软件平台。 如果用不同的语言和不同的操作系统编写,也可以将不同的 Web 服务组合成一个单一的服务,就像在微服务中一样。

微服务是 web 服务的一个子集 也用于命名架构,例如“基于微服务的架构”

微服务是一个神器,而不是一个架构。 几家世界class公司都知道

https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environments-cfg-alb-shared.html

在此处输入图像描述

在微服务神器之前,我们有经典的 web 服务或 rest api。甚至在此之前我们有 Soap web 服务和 XML。

因此,作为总结,当有人谈论微服务时,他指的是 web 服务的一个子集,具有一些区别于经典 web 服务或 rest api 的特征

一个主要特征是每个服务一个唯一的数据库或数据库

这里的另一个特点来自于 AWS 之类的商品。 其中一些适用于 rest api 或 soap 服务。 我将用粗体标记一些非常具体的微服务。

https://aws.amazon.com/microservices/

  • 敏捷
  • 灵活缩放
  • 易于部署
  • 技术自由
  • 可重用代码
  • 弹力

https://microservices.io/

  • 高度可维护和可测试
  • 松耦合
  • 可独立部署
  • 围绕业务能力组织
  • 由一个小团队拥有

https://www.baeldung.com/cs/microservices-db-design

  • 每个服务的数据库
  • CQRS

https://learn.microsoft.com/en-us/azure/architecture/microservices/design/data-considerations

在此处输入图像描述

服务是为更大的应用程序架构执行的自治应用程序。

Web服务是一种通过web ui使应用程序对其他应用程序可用的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM