首页 > 其他分享 >在微服务架构中进行服务间的通信。

在微服务架构中进行服务间的通信。

时间:2023-12-17 23:32:28浏览次数:30  
标签:服务 架构 方式 通信 RPC API HTTP

讨论如何在微服务架构中进行服务间的通信。这里提到了几种常见的服务间通信方式,包括API、RPC(远程过程调用)和HTTP。


API(应用程序接口):这是一种让外部系统可以访问和使用你的服务的方式。API通常是通过HTTP协议进行通信的,它可以提供一种安全、标准化的方式来让外部系统访问你的服务。


RPC(远程过程调用):这是一种让一个系统可以调用另一个系统中的函数或方法的技术。在这里提到的Dubbo就是一种常见的RPC框架。


HTTP:这是一种常见的网络通信协议,它可以用来在网络上传输数据。在这里提到的OpenFeign就是一种基于HTTP的服务间通信框架。


这段话中还提到了“service暴露出去”,这是指将你的服务的接口公开,让其他的服务可以调用。这通常是通过定义API或者RPC接口来实现的。


最后,这段话中的“service就是controller,service上加了映射地址”可能是指在某些系统中,服务的接口直接定义在了控制器(Controller)中,而不是在服务层(Service)。这种方式可能会使得系统的架构更加简单,但也可能导致控制器的职责过重,不利于代码的维护和扩展。


微服务间的通信主要有两类方式:同步通信和异步通信。

  1. 同步通信:客户端发出请求后,需要等待服务端处理和响应后才能继续执行后续操作。这种通信方式直接、实时,但以服务端处理能力为瓶颈,可能会阻塞客户端的运行。
  • HTTP/REST:此种通信方式广泛用于互联网应用,支持多种请求方法(GET、POST、PUT、DELETE等)以遵守REST原则。它的优势在于简单易用、可读性好,可直接用URI表示资源,并通过不同的请求方法操作。它的不足在于每次请求都需带HTTP头,占用的带宽较大。
  • gRPC:是Google推出的一种高性能、开源的RPC框架,基于HTTP 2.0协议,并采用Protocol Buffers数据格式,性能和速度都优于传统的HTTP/REST方式。但相比HTTP/REST,gRPC的使用并不是那么普遍且需要一些额外的学习成本。
  1. 异步通信:客户端发出请求后,不需要等待服务端的响应,直接进行后续操作。服务端在处理完成后,再通过回调或者其他方式通知客户端。这种通信方式为非阻塞式,提高了系统的并发能力,但因为不实时,可能会有数据一致性的问题。
  • 消息队列:消息队列是微服务间异步通信的常见方式,常见的消息队列有Kafka、RabbitMQ、ActiveMQ等。消息队列通过发布-订阅模式,解耦了微服务间的直接依赖关系,增强了系统的健壮性。
  • 事件驱动:也是异步通信方式之一,基于观察者模式,当一个服务状态改变,会触发其他关联服务的动作。如Spring Cloud Stream框架,能轻松实现事件驱动。

在进行服务间通信时,开发者需要根据微服务的具体业务需求和系统环境,选择合适的通信方式,保障系统的稳定运行和高效性能。

标签:服务,架构,方式,通信,RPC,API,HTTP
From: https://blog.51cto.com/u_16392501/8863756

相关文章

  • MetaFormer Is Actually What You Need for Vision:通用的ViT架构才是关键
    MetaFormerIsActuallyWhatYouNeedforVision*Authors:[[WeihaoYu]],[[MiLuo]],[[PanZhou]],[[ChenyangSi]],[[YichenZhou]],[[XinchaoWang]],[[JiashiFeng]],[[ShuichengYan]]初读印象comment::(PoolFormer)Transformer的通用架构是其良好性能的保障,而......
  • rsync安装步骤(服务端、客户端)
    需求:需要定时把客户机上的文件增量同步到服务器上,达到备份效果。环境:服务器:linux系统客户机:windows系统思路:1.linux上安装rsync服务端;2.windows上安装rsync客户端;3.客户端上每5分钟触发一次同步。一、在linux上,安装rsync服务端:手动安装rsync:1.rsync下载https://do......
  • 使用 nssm 把 bat 安装成 windows 服务
    一、背景:目的:客户端电脑在指定文件夹下会不定时地产生一些新的文件,现在要对这些文件进行远程备份到服务器上。工具:使用rsync进行文件的备份。rsync优秀的好像是差分算法,可以快速比较本地文件与服务器上文件的差异并增量式地推送新文件到服务器上。遇到的问题:rsync不会自......
  • 解决小米摄像头(小米云台)无法连接openmediavault的smb服务问题
    前言最近在折腾allinone以及米家全家桶。搞到小米摄像头这边,突然发现这东西找不到局域网内的nas。经过疯狂的网上冲浪,定位问题为,小米的client版本过低。解决方案修改Samba配置文件在/etc/samba/smb.conf中的global下添加serverminprotocol=NT1字段重启samba服务sy......
  • 掌握Serverless函数计算服务中的错误处理
    0介绍在无服务器计算的世界中,AWSLambda已经成为构建可伸缩和高效应用程序的基石。虽然Lambda简化了代码的部署和执行,但强大的错误处理对于确保无服务器函数的可靠性至关重要。本指南探讨在AWSLambda中进行错误处理的最佳实践,帮助构建具有弹性的无服务器应用程序。1Lamb......
  • ABP-VNext 用户权限管理系统实战01---AuthServer服务迁移数据库到mysql
    一、从github上获取源码后修改命名空间下载dome后修改解决方案名为Bridge。 二、默认是连接sqlserver的,需要修改为可以连接mysql修改appsettings.json文件的ConnectionStrings参数,准备一个可以连接的mysql,新建数据库bridge{"ConnectionStrings":{"Default":"Se......
  • Linux配置成代理服务器
    简介: 代理服务器(ProxyServer)是一种位于计算机网络中的中间服务器,它充当了客户端和目标服务器之间的中介,用于转发客户端请求并获取目标服务器的响应。代理服务器的主要功能包括以下几点:什么是代理服务器   代理服务器(ProxyServer)是一种位于计算机网络中的中间服务器,它充......
  • linux 进程间通信 --- 共享内存(POSIX 版本)
    POSIX进程间通信POSIX进程间通信(InterprocessCommunication,IPC)是SystemV进程间通信的变体。它是在Solaris7发行版中引入的。与SystemV对象类似,POSIXIPC对象的属主、属主的组以及其他用户具有读取和写入权限,但是没有执行权限。POSIXIPC对象的属主无法将对象......
  • FTP服务
    目录FTP服务FTP是什么FTP模型两种模式Standard模式(主动模式)Passive模式(被动模式)VSFTPD服务介绍基础配置安装vsftp准备分发的文件启动服务关闭防火墙客户端工具Linux第一种(ftp)第二种(lftp)注意Windows第一种第二种案例1实现匿名用户访问案例2实现本地用户访问案例3虚拟用户访问......
  • 使用DNS查询Web服务器IP地址
    浏览器并不具备访问网络的功能,其最终是通过操作系统实现的,委托操作系统访问服务器时提供的并不是浏览器里面输入的域名而是ip地址,因此第一步需要将域名转换为对应的ip地址域名:www.baidu.comip地址是一串数字tcp/ip的网络结构:计算机通过集线器连接在一起构成一个个子网,子网......