首页 > 其他分享 >关于微服务-服务通信调用

关于微服务-服务通信调用

时间:2023-06-29 10:55:05浏览次数:28  
标签:调用 服务 Service 队列 通信 API 消息

描述:

  RESTful API和RPC是两种常见的服务通信方式,而Feign是一种用于简化基于RESTful API的服务调用的框架。消息队列是一种在软件系统中用于异步通信的中间件技术。它充当了消息的缓冲区或代理,允许发送者将消息发送到队列中,而不需要立即知道消息被哪个接收者处理。消息队列的基本原理是生产者将消息发送到队列中,然后消费者从队列中获取并处理消息。这种解耦的方式使得生产者和消费者之间可以独立工作,并且不需要实时的交互。

  1. RESTful API(Representational State Transfer)是一种设计风格,通过HTTP协议进行通信,使用不同的HTTP方法(如GET、POST、PUT、DELETE)对资源进行操作。它基于URL定位资源,使用不同的HTTP状态码表示不同的操作结果。RESTful API通常使用JSON或XML格式进行数据交换,使得服务之间的通信灵活和可扩展。

  2. RPC(Remote Procedure Call)是一种远程过程调用的通信方式,允许一个计算机程序请求另一个程序提供的服务。RPC隐藏了底层的通信细节,使得调用方可以像调用本地函数一样调用远程服务。RPC常用于使用特定协议进行二进制数据传输,比如Protocol Buffers、Thrift、gRPC等。RPC在性能上通常比RESTful API更高效。

  3. Feign是一个基于RESTful API的声明式服务调用框架,通过编写接口规范来定义服务调用的方式。Feign自动处理与目标服务之间的通信细节,包括负载均衡、请求的序列化和反序列化、错误处理等。开发者只需编写接口,并使用注解指明目标服务和具体请求路径,就可以直接调用远程服务,无需手动编写HTTP请求代码。Feign可以看作是一种封装了RESTful API调用的RPC框架,使得基于HTTP的服务调用更加简单和统一。它通过注解方式定义了API接提供了与Spring Cloud等微服务框架的集成,方便开发者进行服务之间的通信。

   4. 使用消息队列作为微服务之间的通信媒介可以提供异步、可靠和解耦的通信方式。以下是一个简单的示例来说明如何在微服务架构中使用消息队列进行通信:

假设你有三个微服务:Service AService BService C,它们之间需要进行通信。

  1. 配置消息队列:首先,在应用程序中引入消息队列中间件(例如RabbitMQ、Kafka等),并进行相应的配置。确保每个微服务都可以与消息队列建立连接。

  2. 定义消息:确定要在微服务之间传递的消息格式。这可以是一个POJO类或者JSON对象,包含需要传递的数据。

  3. 发送消息:Service A发送消息到消息队列,将消息发送给特定的队列(或主题)。这可以通过使用消息队列客户端的API来完成。

  4. 接收消息:Service BService C订阅该队列(或主题),以便能够接收从Service A发送的消息。一旦有新消息到达队列,消息队列会将其推送给所有订阅了该队列的微服务。

  5. 处理消息:Service BService C接收到消息后,根据消息的内容进行相应的处理。这可能涉及到业务逻辑的执行、数据的更新等操作。

通过以上步骤,Service A可以通过发送消息将信息传递给其他微服务。其他微服务订阅相应的队列后,即可接收并处理这些消息。

标签:调用,服务,Service,队列,通信,API,消息
From: https://www.cnblogs.com/origin-zy/p/17513506.html

相关文章

  • docker-compose 部署java微服务项目
    1、准备条件:安装docker,安装docker-compose,docker安装可自行百度,docker-compose安装由于太慢,我这里提供两个版本:win和linux版本的百度网盘版,大家可根据需要自行下载:链接:https://pan.baidu.com/s/10W81TX6cWQqyi92xyeuZQQ提取码:2evg这里一linux系统为例:下载docker-compose-linux-......
  • F5配置http请求自动跳转https到后端服务器
    F5配置http请求自动跳转https到后端服务器关联irules_sys_https_redirect实现跳转#HTTP_to_HTTPS_iRule自定义whenHTTP_REQUEST{HTTP::redirect"https://[HTTP::host][HTTP::uri]"}#FactoryF5httpsredirectiRule官方定义whenHTTP_REQUEST{HTTP::redirecthttps://[g......
  • Taurus .Net Core 微服务开源框架:Admin 插件【4-1】 - 配置管理-Kestrel【含https启用
    前言:继上篇:Taurus.NetCore微服务开源框架:Admin插件【3】-指标统计管理本篇继续介绍下一个内容:1、系统配置节点:App- Config 界面界面图如下:双击节点即可进入修改模式,如: 修改说明: 不勾选持久化,该配置当前生效,下次重次失效,修改后配置值旁边带有【temp】说明文......
  • 【从零开始学微服务】06.微服务架构的建设思路
    大家好,欢迎来到万猫学社,跟我一起学,你也能成为微服务专家。微服务看起来很美,但其实是需要一个技术体系或平台体系来支撑并且落地的。微服务架构建设分为两种思路:框架模式服务网格(ServiceMesh)模式接下来我们对上面的两个思路进行详细的介绍和对比。框架框架模式的典型代......
  • Qt编写的CAN通信调试工具源代码支持吉阳光电CAN盒和致远周立功USB转CAN卡
    Qt编写的CAN通信调试工具源代码支持吉阳光电CAN盒和致远周立功USB转CAN卡,带多线程接收可完成标准和扩展CAN帧YID发送和接收,带配置参数自动保存,定时发送,帧类型选择,文本和十六进制等。带有折叠相同的帧YID的功能,如果有相同的帧YID,则会自动折叠显示。可组装发送字节,short,int,float......
  • PaddleOCR学习笔记2-初步识别服务
    今天初步实现了网页,上传图片,识别显示结果到页面的服务。后续再完善。采用flask+paddleocr+bootstrap快速搭建OCR识别服务。代码结构如下: 模板页面代码文件如下:upload.html:<!DOCTYPEhtml><html><metacharset="utf-8"><head><title>PandaCodeOCR</title>......
  • hasattr和getattr判断并调用方法属性
    下面是一个使用hasattr和getattr判断并调用方法属性的示例代码,实现了一个简单的FTP服务器:classFtpServer:defserve_forever(self):#服务器逻辑filename="example.txt"ifhasattr(self,"get"):get_method=getattr(self,"g......
  • 一个JVM参数,服务超时率降了四分之三
    先说结论:通过优化Xms,改为和Xmx一致,使系统的超时率降了四分之三1.背景一个同事说他负责的服务在一次上线之后超时率增加了一倍2.分析2.1机器的监控首先找了一台机器,看了监控上线后最明显的变化就是CPU使用率变高了2.2上线改动点上线只加了简单的判断条件,按理不应该......
  • wifi智能计量插座-10A 定时上传插座状态,电压,电流有功功率,视在功率,功率因数电量,温度 至
    wifi智能计量插座-10A定时上传插座状态,电压,电流有功功率,视在功率,功率因数电量,温度至MQTT服务器wifi智能计量插座-10A定时上传wifi智能计量插座-10A定时上传插座状态,电压,电流有功功率,视在功率,功率因数电量,温度至MQTT服务器插座状态,电压,电流有功功率,视在功率,功率因数电量,温度......
  • api接口接入淘宝/天猫平台采集添加到购物车数据调用演示案例
    ​淘宝添加到购物车API接口的作用是向淘宝购物车中添加指定的商品,实现用户将商品加入购物车的功能。通过该API接口,用户可以将商品加入购物车,方便后续进行结算和购买。使用淘宝添加到购物车API接口,可以帮助开发者和商家进行以下操作:购物车管理:允许用户将商品添加到购物车并进行......