微服务和 Web 服务有啥区别?

Posted

技术标签:

【中文标题】微服务和 Web 服务有啥区别?【英文标题】:What is the difference between microservices and webservices?微服务和 Web 服务有什么区别? 【发布时间】:2018-01-09 05:16:59 【问题描述】:

我最接近发现实际差异的是article。

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

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

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

【问题讨论】:

服务只是一个应用程序,没有用户界面托管在服务器中,但微服务是一种架构设计,将大型服务分解为微服务,每个服务可以托管在单独的服务器中,微服务的目的是使应用程序易于维护。 【参考方案1】:

microservice 是一种软件架构,可以通过 Web 服务实现。

webservice 只是一种通过“网络”或 HTTP 提供服务的技术(众多技术之一)。

【讨论】:

看起来 Martin Fowler 写了一篇关于微服务的文章。 @ArnabBiswas 这是答案中的第一个链接。 我不相信。它基本上是一个网络服务。 Fowlers 的文章很长,但并不简洁。此外,Web 服务不是一种技术,而是一种架构。 @Aazim Web 服务曾经是一种架构,但在现代使用中,它指的是一组技术。 SOA 取代了架构术语。【参考方案2】:

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

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

【讨论】:

【参考方案3】:

重点是:Web 服务(正如其名称所表明的)是您期望“处理”HTTP 的东西 - 换句话说,它在全球范围内做某事网络

而微服务不受 WWW 上下文的约束。微服务的核心应该是提供一种特定的服务——但对 http 协议没有限制。

通常,微服务实现了一种宁静的“Web 服务”——但不一定非要如此!

除此之外,微服务通常被视为计数器模型,以服务于许多不同类型的请求。

【讨论】:

【参考方案4】:

微服务是网络服务的延伸。

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

【讨论】:

【参考方案5】:

微服务:-

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

微服务架构可以避免大型应用程序出现故障或停机。如果一个特定的服务通信失败,整个应用程序不会受到单个模块的失败的影响。 Java、C#、Python 和移动软件开发语言中的微服务组合是可能的。它可以独立部署在业务领域的服务模型中。

网络服务:-

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

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

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

【讨论】:

以上是关于微服务和 Web 服务有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

微服务间的调用和应用内调用的有啥区别

对于所提供的用例,微服务和单一方法之间有啥区别

SOA 和微服务有何区别?

SOA 和微服务有何区别?

SOA 和微服务有何区别?

微服务有啥作用?