是否可以使用客户端-服务器架构和微服务架构?
Is it possible to use a Client-Server-Architecture and a Microservice Architecture?
我尝试实施和记录一个软件项目,其中我有一个用于前端的移动应用程序和不同的微服务来保存新用户等等。所以构建所有架构:我使用客户端服务器架构是否正确,服务器是使用微服务架构实现的?还是我理解有误?
简答:
这取决于你问谁。简而言之,您可以说是的,您的服务器端是您的微服务,或者它们中的多个正在为一个或多个提供某种服务
客户喜欢您的移动应用程序、某些 Web/Browser 应用程序和其他类型的客户端应用程序。请记住,微服务是后端的一种软件架构模式,大多数时候 运行 在某些 server/servers 上。
对于"Client-server model"这个词,有些人会有不同的看法。我将尝试在下面解释。
更长的答案:
Client-Server 模型 historical/classic 概述:注意文档中的术语,因为它可能会使人感到困惑。有很多人当你说
"Client-Server architecture or model" 可以想到传统的Client-Server 应用程序。在这个 traditional/classic 意义上
客户端是专用应用程序(桌面应用程序,如 Outlook、Skype for
桌面或类似设备),运行 在客户端计算机上,并通过网络与远程服务器通信。在这个
感觉客户端和服务器可以 运行 在不同的计算机上,但也可以 运行 在同一台计算机上。
从这种思维方式来看,Web 应用程序不是 Client-server 应用程序,因为它没有代表客户端的专用应用程序。它使用浏览器来表示不是专用应用程序的客户端。
因此,如果您的移动应用程序是本机应用程序或混合应用程序(专用应用程序),它会更倾向于历史 "Client-Server architecture or model" 的方向。如果它是移动网络应用程序(运行ning 在浏览器中),则不会。
当涉及到服务器部分时,经典 "Client-Server" 和微服务之间的区别可以看作类似于
"Client-Server" 和 SOA(面向服务的架构)之间的区别。在这个经典的 "Client-Server architecture or model" 中,客户端和服务器更加耦合并开发在一起使用。当谈到微服务架构时,它们公开的服务通常被设计为松耦合使用并服务于多个不同的客户端(移动应用程序、Web 应用程序等)。
在这个问题中,您可以阅读更多关于 SOA 和 "Client-Server" 之间的区别的信息:
SOA vs Client-Server vs Web Service - what is the difference?
Client-Server模特一样宽松concept/term:
另一边也有很多人用"Client-Server Architecture or model"思考这个词
代表 "Client part" 的任何类型的客户端应用程序,而不仅仅是专用的桌面应用程序。当谈到服务器端时,任何类型的服务器(Web 服务器、文件服务器或其他无论它们使用哪种内部架构)都将代表服务器。因此,例如与某个服务器通信的移动应用程序(本机、混合或基于浏览器)或 Web 应用程序(单页应用程序等)将被视为 "Client-Server architecture or model"。
这样 "Client-server architecture or model" 被用作通用术语。如果你阅读维基百科
(https://en.wikipedia.org/wiki/Client%E2%80%93server_model) Client-server 型号的页面,您也可以获得这种印象。
您的客户端应用程序通过网络与您的服务器通信以交换一些内容。大部分时间结束
HTTP 或其他协议。如果 server-side 有多个服务(微服务)部署在一台或多台机器上
服务内容对您的客户来说并不那么重要。所以从这个角度来看,你有一个术语 "Client-Server model"。
您的情况:
对于您的情况,这取决于您的服务器部件的使用方式或 运行。我不确定你是如何在你的应用程序中做到这一点的,但根据我的经验,有多种方法可以与你的服务器端通信。客户端和微服务之间最常见的两种通信方式:
- 客户端通过Api-Gateway
进行通信
- 客户端直接与微服务通信
总的来说,"Client-server" 一词可能会被错误理解。我的建议是描述您的架构
在您的文档中更具体一些以避免混淆。例如,你可以说你有一个系统,在服务器端 运行 宁在微服务架构之上,你的客户端是一个移动应用程序,它使用来自一个或多个微服务的服务(直接或通过一些代理、api 网关或其他)。这实际上取决于您的具体架构。
希望对您有所帮助。
我尝试实施和记录一个软件项目,其中我有一个用于前端的移动应用程序和不同的微服务来保存新用户等等。所以构建所有架构:我使用客户端服务器架构是否正确,服务器是使用微服务架构实现的?还是我理解有误?
简答:
这取决于你问谁。简而言之,您可以说是的,您的服务器端是您的微服务,或者它们中的多个正在为一个或多个提供某种服务 客户喜欢您的移动应用程序、某些 Web/Browser 应用程序和其他类型的客户端应用程序。请记住,微服务是后端的一种软件架构模式,大多数时候 运行 在某些 server/servers 上。 对于"Client-server model"这个词,有些人会有不同的看法。我将尝试在下面解释。
更长的答案:
Client-Server 模型 historical/classic 概述:注意文档中的术语,因为它可能会使人感到困惑。有很多人当你说 "Client-Server architecture or model" 可以想到传统的Client-Server 应用程序。在这个 traditional/classic 意义上 客户端是专用应用程序(桌面应用程序,如 Outlook、Skype for 桌面或类似设备),运行 在客户端计算机上,并通过网络与远程服务器通信。在这个 感觉客户端和服务器可以 运行 在不同的计算机上,但也可以 运行 在同一台计算机上。 从这种思维方式来看,Web 应用程序不是 Client-server 应用程序,因为它没有代表客户端的专用应用程序。它使用浏览器来表示不是专用应用程序的客户端。 因此,如果您的移动应用程序是本机应用程序或混合应用程序(专用应用程序),它会更倾向于历史 "Client-Server architecture or model" 的方向。如果它是移动网络应用程序(运行ning 在浏览器中),则不会。 当涉及到服务器部分时,经典 "Client-Server" 和微服务之间的区别可以看作类似于 "Client-Server" 和 SOA(面向服务的架构)之间的区别。在这个经典的 "Client-Server architecture or model" 中,客户端和服务器更加耦合并开发在一起使用。当谈到微服务架构时,它们公开的服务通常被设计为松耦合使用并服务于多个不同的客户端(移动应用程序、Web 应用程序等)。 在这个问题中,您可以阅读更多关于 SOA 和 "Client-Server" 之间的区别的信息: SOA vs Client-Server vs Web Service - what is the difference?
Client-Server模特一样宽松concept/term: 另一边也有很多人用"Client-Server Architecture or model"思考这个词 代表 "Client part" 的任何类型的客户端应用程序,而不仅仅是专用的桌面应用程序。当谈到服务器端时,任何类型的服务器(Web 服务器、文件服务器或其他无论它们使用哪种内部架构)都将代表服务器。因此,例如与某个服务器通信的移动应用程序(本机、混合或基于浏览器)或 Web 应用程序(单页应用程序等)将被视为 "Client-Server architecture or model"。 这样 "Client-server architecture or model" 被用作通用术语。如果你阅读维基百科 (https://en.wikipedia.org/wiki/Client%E2%80%93server_model) Client-server 型号的页面,您也可以获得这种印象。 您的客户端应用程序通过网络与您的服务器通信以交换一些内容。大部分时间结束 HTTP 或其他协议。如果 server-side 有多个服务(微服务)部署在一台或多台机器上 服务内容对您的客户来说并不那么重要。所以从这个角度来看,你有一个术语 "Client-Server model"。
您的情况: 对于您的情况,这取决于您的服务器部件的使用方式或 运行。我不确定你是如何在你的应用程序中做到这一点的,但根据我的经验,有多种方法可以与你的服务器端通信。客户端和微服务之间最常见的两种通信方式:
- 客户端通过Api-Gateway 进行通信
- 客户端直接与微服务通信
总的来说,"Client-server" 一词可能会被错误理解。我的建议是描述您的架构 在您的文档中更具体一些以避免混淆。例如,你可以说你有一个系统,在服务器端 运行 宁在微服务架构之上,你的客户端是一个移动应用程序,它使用来自一个或多个微服务的服务(直接或通过一些代理、api 网关或其他)。这实际上取决于您的具体架构。
希望对您有所帮助。