服务

一、软件架构或系统设计下的服务类型

  1. Web服务:属于应用程序层的服务类型,用于实现应用程序的跨平台通信和相互操作。
  2. RESTful服务:属于应用程序层的服务类型,用于实现应用程序的跨平台通信和相互操作。

  3. 消息队列服务:属于消息传递层的服务类型,用于实现异步通信和解耦不同组件或系统之间的通信。

  4. 文件传输服务:属于数据传输层的服务类型,用于安全、可靠地传输文件。

  5. 数据库服务:属于数据存储层的服务类型,用于管理和访问数据。

  6. 身份认证和授权服务:属于安全和身份管理层的服务类型,用于验证用户身份、授权访问资源等。

  7. 定时任务服务:属于任务调度和执行层的服务类型,用于定时执行预定任务。

二、服务调用与服务访问的区别

  1. 服务调用:指在一个应用程序中直接调用另一个应用程序或组件提供的功能,通常是通过方法调用或函数调用来实现的,可以是本地调用,即在同一个应用程序内部进行,也可以是远程调用,即通过网络与其他应用程序进行通信。

  2. 服务访问:指使用相关的协议和机制从外部服务获取数据或与外部服务进行交互,通常涉及使用网络协议(如HTTP、SOAP等)通过网络与服务进行通信、获取服务数据、执行服务操作。

三、常用远程调用技术

  1. 远程过程调用(Remote Procedure Call,RPC):通过远程过程调用机制,RPC框架将底层的网络通信细节进行封装,使应用程序可以像调用本地函数一样调用远程应用程序或服务的函数。

  2. Web服务(Web Services):一种基于Web标准的远程调用技术,它使用标准的Web服务技术,如SOAP(Simple Object Access Protocol)、WSDL(Web Services Description Language)和UDDI(Universal Description, Discovery, and Integration),通过网络进行应用程序之间的通信。

  3. RESTful API:一种基于HTTP协议的远程调用技术,通过使用标准的HTTP方法(如GET、POST、PUT、DELETE)和URL来调用和访问服务,应用程序可以通过网络与其他应用程序进行通信。

四、URL、API网关与服务

  1. 当客户端点击一个URL时,实际上是发送了一个HTTP请求给API网关,API网关根据请求的路由规则将请求转发到适当的后端服务,而不是直接访问服务端的特定服务。
  2. API网关是位于服务端的一个中间层,充当了客户端和后端服务之间的入口点,用于处理客户端的请求,可执行以下任务:

     路由请求:API网关可以根据请求的URL路径、HTTP方法或其他标识符,将请求路由到适当的后端服务。

     认证和授权:API网关可以验证请求中的身份信息,并确保客户端有权限访问特定的服务或资源。

     请求转换和协议转换:API网关可以根据需要,将请求从一个协议(如HTTP)转换为另一个协议(如WebSocket),或者将请求的格式进行转换(如从XML转换为JSON)。

     缓存和性能优化:API网关可以缓存响应,以减少对后端服务的请求,并提高响应速度。

     监控和日志记录:API网关可以记录请求和响应的日志,并提供监控和分析功能,帮助开发人员和运维人员进行故障排除和性能优化。

五、从服务入口到数据持久层的过程

  1. 服务调用和路由:客户端通过服务入口点(如API网关)发送请求到特定的服务,API网关可以根据请求的路由规则将请求转发到相应的服务。
  1. 服务逻辑处理:服务接收到请求后,进行业务逻辑处理包括验证用户身份、执行业务逻辑和调用其他服务。
  1. 数据访问和持久化:在服务逻辑处理阶段,服务可能需要从数据持久层(如数据库)中读取或写入数据。服务可以使用适当的数据访问技术(如ORM框架或直接SQL查询),与数据库进行交互。
  1. 数据持久层操作:数据持久层是实际存储数据的地方,如关系型数据库、NoSQL数据库等。服务在访问数据持久层时,可能需要执行查询、插入、更新或删除等操作。

数据返回和响应:服务处理完数据访问和持久化后,将结果返回给调用方。服务将数据组织为适当的格式(如JSON或XML),并将其作为响应发送给客户端。

六、微服务中,服务编排和管理的实现方式

  1. 服务注册与发现:通过使用服务注册与发现机制,服务可以在运行时注册自己的网络位置和服务能力,并从注册中心获取其他服务的位置信息,实现了通过服务名称进行服务之间的通信。
  1. 服务网关:服务网关是一个入口点,用于聚合和路由来自客户端的请求,并将请求转发给适当的后端服务。服务网关可以处理认证、授权、请求转换、缓存等功能。可使用Spring Cloud Gateway等服务网关工具,将来自客户端的请求路由到不同的微服务,并提供统一的API入口、认证和授权等功能。
  1. 服务编排工具:服务编排工具可以定义和控制服务之间的调用顺序、数据传递和错误处理等,协调和管理多个微服务之间的交互和协作,可使用如Spring Cloud的Spring Cloud Stream等工具,实现微服务之间的流控、熔断和消息传递等功能。
  1. 容器编排平台:使用如Kubernetes等的容器编排平台提供的弹性扩展、服务调度、健康检查和故障恢复等功能,对微服务进行部署、扩展和管理。容器编排平台

 

posted @   sTruth  阅读(47)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
点击右上角即可分享
微信分享提示