微服务之间的通信

2024-04-19

假设您有微服务 A、B 和 C,它们当前都通过 HTTP 进行通信。假设服务 A 向服务 B 发送请求,服务 B 得到响应。然后,该响应中返回的数据必须发送到服务 C 进行一些处理,然后最终返回到服务 A。服务 A 现在可以在网页上显示结果。

我知道延迟是实现微服务架构的一个固有问题,我想知道减少这种延迟的一些常见方法是什么?

另外,我还阅读了一些有关 Apache Thrift 和 RPC 如何帮助解决此问题的文章。谁也可以详细说明一下吗?


另外,我还阅读了一些有关 Apache Thrift 和 RPC 如何帮助解决此问题的文章。谁也可以详细说明一下吗?

像 Apache Thrift 这样的 RPC 框架的目标是

  • 显着减少手动编程开销
  • 提供高效的序列化和传输机制
  • 跨各种编程语言和平台

换句话说,这允许您将数据作为非常紧凑的编写和压缩的数据包通过网络发送,而实现这一点所需的大部分工作都是由框架提供的。

Apache Thrift 为您提供了一个可插入的传输/协议堆栈,可以通过插入不同的协议来快速适应

  • 传输(套接字、HTTP、管道、流……)
  • 协议(二进制、紧凑、JSON...)
  • 层(框架、多路复用、gzip,...)

此外,根据目标语言,您可以获得一些服务器端基础设施,例如 TNonBlocking 或 ThreadPool 服务器等。

回到你最初的问题,这样的框架可以帮助使沟通变得更容易、更高效。但它无法神奇地消除 OSI 堆栈其他部分的延迟。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微服务之间的通信 的相关文章

  • Kubernetes,无法通过 DNS 挂载 NFS 共享

    我正在尝试通过 DNS 查找在我的容器中安装 NFS 共享 k8s 集群外部 我的配置如下 apiVersion v1 kind Pod metadata name service a spec containers name servic
  • 在序列/类图中将消费/生产事件表示为从微服务到消息队列[Kafka]的UML组件

    我有一个生成一些事件的用例 消费其他微服务生成的事件以及自己生成的事件 如何在序列图 类图中表示 Kafka 系统 运行中的微服务以及生产 消费事件 在 UML 中 我们有一个来自 DB 的特殊图表 我们有 Kafka 和 cron 作业的
  • f1-micro 中的 GCLOUD Kubernetes 结果为(由于内存不足,不支持 f1-micro 机器的节点池)

    我尝试使用 Google 的 UI 在集群中启动一个新的 f1 micro 节点 但它默默地失败了 所以我决定使用 gcloud 运行它 看看是否提供了更多详细信息 所以我运行了以下命令 gcloud container node pool
  • 如何解决grpc Deadline Exceeded错误?

    我有用go和python客户端编写的grpc服务器 有时会出现如下错误 eggs grpcio 1 0 0 py2 7 linux x86 64 egg grpc channel py line 432 in end unary respo
  • 如何将 gRPC 定义的 API 引入 Web 浏览器

    我们想要为我们的 gRPC 微服务构建一个 Javascript HTML gui 由于浏览器端不支持 gRPC 我们想到使用 web sockets 连接到 node js 服务器 该服务器通过 grpc 调用目标服务 我们努力寻找一个优
  • 异步双向 RPC

    我正在寻找使用 TCP 的 Java 或 Python 首选 Python 的 RPC 库 它应该支持 异步 双向 RPC 某种事件循环 带有回调或类似 有什么建议吗 我看过像 bjsonrpc 这样的东西 这似乎是正确的东西 但是服务器似
  • Thrift gem 和 JRuby

    我最近在 MRI 中使用 JRuby 和 Thrift gem 后才安装了它 我遇到了一个问题 如果我需要 thrift 我会收到消息 无法加载 thrift native 扩展 默认为纯 Ruby 库 如果我随后尝试要求在 ruby 中生
  • 微服务架构中的开发环境搭建[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我们正致力于在微服务架构中开发网络应用程序 我们考虑在 API 网关后面运行服务 该网关将处理身份验证并将请求代理到适当的服务 我们在
  • 停止 Thrift 服务器(TSimpleServer)

    我有一个 Thrift 服务器的简单用例 TSimpleServer 其中我生成了几个线程 除了主线程之外 新生成的线程之一进入 Thrift 事件循环 即server serve 在主线程中收到信号后 我调用server stop 这导致
  • 杰克逊 FAIL_ON_UNKNOWN_PROPERTIES 为 false 不起作用

    我正在尝试使 jackason 的 thrift 反序列化向后兼容 ObjectMapper mapper getObjectMapper false pretty mapper configure DeserializationFeatu
  • 如何将 Nest.js 微服务拆分为单独的项目?

    假设我想创建一个简单的影院管理平台 它需要很少的微服务 movies cinemas payments etc 你会如何在 Nest js 中做到这一点 我不希望它们位于同一个大文件夹中 因为这感觉就像制作一个整体 我希望它们成为单独的 N
  • 有没有好的、简单的用于进程间调用的 RPC 库? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何将数据库与微服务(以及新的)同步?

    我正在开发一个采用微服务架构的网站 每个服务都拥有一个数据库 数据库存储微服务所需的数据 Post Video服务需要用户信息 因此订阅的两个服务NEW USER EVENT The NEW USER EVENT当有新用户注册时将被触发 一
  • java.sql.SQLFeatureNotSupportedException:方法 org.postgresql.jdbc4.Jdbc4Connection.isValid(int) 尚未实现。在Spring引导中

    我正在开发Spring Boot Microservices例子 在这个例子中 我使用了config server and licensing service并成功部署于docker 当我调用 REST 端点时 http localhost
  • 如何处理微服务架构中的共享模型

    我的目标是创建一个架构 其中服务应该能够彼此独立部署并且完全自治 但是当您有 2 个服务从数据库读取相同对象类型时该怎么办 就我而言 我有一个套接字服务器 微服务 1 和一个 http 服务器 微服务 2 我的用户使用 http 服务器创建
  • Spring MVC - 从另一个休息服务内部调用休息服务

    目前 我在从一个 REST 服务内部调用另一个 REST 服务时遇到了一个非常奇怪的问题 我真的可以帮忙找出我做错了什么 首先 了解一些背景 我有一个 Web 应用程序 它调用 REST 服务来创建用户帐户 为了便于说明 端点是 local
  • 微服务版本控制

    就在运行时支持同一服务的多个版本化部署以及消费者如何使用不同版本而言 适应基于微服务的架构中的版本控制的最佳实践是什么 1 如果我们使用基于路由的版本控制作为提到的方法之一here http niels nu blog 2016 micro
  • GWT:在另一个模块内调用RPC服务

    我有一个模块B 它继承了模块A 当我从A内部调用RPC服务时 它们工作正常 但是当我在B中调用A的服务时 RPC调用总是失败 我错过了什么吗 预先感谢您的任何帮助 我在这里找到了我的问题的答案 http blog cloudglow com
  • 使用 JWT 验证单独的 API 微服务

    我正在 NodeJS 中使用微服务开发一个应用程序 我已经构建了一个 auth api 它处理通常的注册登录等 并且它发出 JWT 如何使用它们来保护用 Express 编写的单独 API 微服务中的路由 我是否需要使用 JWT 和密钥来解
  • Podman:如何解析使用 Kubernetes YAML 部署的 pod 的主机名

    我正在使用 podman 4 5 dev 我使用以下方式部署了两个 Pod podman kube 播放 foo yaml podman kube play bar yaml 我在文件中指定了 pod 的主机名 但它们不会在容器内得到解析

随机推荐

  • JSF 2 中的部分状态保存功能

    有人可以解释一下 JSF 中的部分状态保存功能吗 我曾使用过 JSF 1 2 但那里不存在此功能 我认为这是 JSF 2 0 的新内容 与常规国家储蓄相比 部分国家储蓄给我们带来什么好处 它通过保存对 bean 的修改来减少内存使用 默认为
  • 从 Visual C++ 调用 C# 代码

    基本上我需要从 Visual C 代码调用 C 代码 在阅读了大量有关可能方法的文章后 我决定使用 C CLI 机制 最初我决定在 C 本机代码 dll 库项目 中使用一些函数 它们将调用 CLR 项目中的一些函数 CLR 项目将调用 C
  • 为什么我们不能在 while 循环中定义变量?

    我们可以做的 using Stream s and for int i 为什么我们不能也做这样的事情 while int i NextNum gt 0 我发现它非常有用且明智 我不是语言设计师 但我会给出一个有根据的猜测 里面的子句whil
  • jQuery DatePicker 未加载

    我有一段 jQuery 由于某种原因根本无法加载 我想知道这是否是我的语法错误 或者我是否遗漏了一些对其工作至关重要的东西 这被放置在包含的页面上 div class demo p Date p div
  • Unity3D 与 UIView 集成

    如果这个问题重复 请纠正我 我刚刚接触到Unity3D 我只是想问是否可以将Unity3D集成到其他UIView之上 我认为这是不可能的 因为生成的 AppController mm 充当UIApplicationDelegate 即使你设
  • 如何将字符串转换为整数或浮点数

    我有一个文本字段 用户可以在其中输入数字 并且我希望能够根据用户输入将字符串转换为整数或浮点数 在 Ruby 中是否有一种简单的方法可以做到这一点 例如 User Input 123 gt Output 123 User Input 123
  • 在 MAMP 中使用 Laravel 设置 PostgreSQL

    我在我的 MAC 上使用 MAMP 因为它默认带有 MySQL 但现在我需要在我的一个项目中使用 PostgreSQL 如何在 Laravel 项目的 MAMP 中设置 postgreSQL 好吧 如果你决定使用 MAMP 附带的 post
  • Web应用的细粒度授权

    我有一个 C net 应用程序 为公司的内部用户和外部客户提供服务 我需要进行细粒度的授权 比如谁访问什么资源 因此 我需要基于资源或基于属性的授权 而不是基于角色的授权 我想到的是 为我的 net 应用程序实现我自己的授权机制和 SQL
  • 具有多列的 ORMLITE ORDER_BY

    我在用ormlite在我最近的android项目中 我想对表中多列 比如两列 的查询进行排序 我怎样才能做到这一点 这是单个订单的代码 QueryBuilder
  • 如何阻止 UIScrollView 水平弹跳?

    我有一个 UIScrollView 显示垂直数据 但水平部分不比 iPhone 的屏幕宽 问题是用户仍然可以水平拖动 并且基本上暴露了 UI 的空白部分 我尝试过设置 scrollView alwaysBounceHorizontal NO
  • 如何在设计时避免 XAML 代码中出现“对象引用未设置到对象实例”异常?

    我对我自己设计的 wpf 用户控件有问题 问题是我得到了object reference not set to an instance of an object当我在程序中实现用户控件时 设计时 XAML 代码中出现异常 设计师向我展示了以
  • Teradata:数据透视中的 IN 子句无法从表中获取数据

    我想提取一些Calender Weeks从年度数据来看 完成后 我想旋转它 以便每个都有一行ID 我们有一张桌子DB MY CWs只有一列CW含有Calender Weeks我们感兴趣 以下代码提取相关内容Calender Weeks CR
  • 文件系统树“任意深度的子文件夹”的 Get-ChildItem 通配符

    我想获取特定子文件夹内特定扩展名的所有文件 但可以位于文件系统内的任何级别 例如 Get ChildItem Source Release nupkg recurse 简单的星号可以工作 但会在 源 下的直接级别上进行搜索 但不会在树中进行
  • 使用 linq 加载除另一个集合之外的集合

    我有这样的搜索方法 public List
  • 为什么 GridBagLayout 将我的组件居中而不是放在角落?

    到目前为止 我设法避免使用GridBagLayout 手工代码 尽可能多 但这次我无法避免它 我正在阅读SUN的教程网格包布局 http download oracle com javase tutorial uiswing layout
  • Webpack stats.json 文件为空

    当我运行以下命令时 我得到一个空的 stats json 文件 webpack env production profile json output filename stats json 我发现 由于我在开发和生产环境中使用不同的 Web
  • AngularJS:列出所有表单错误

    背景 我目前正在开发一个带有选项卡的应用程序 我想列出验证失败的字段 部分 以引导用户在右侧选项卡中查找错误 所以我尝试利用form error这样做 但我还没有完全让它发挥作用 如果验证错误发生在ng repeat e g div div
  • PrimeFaces 7.0

    在 PrimeFaces 8 中 似乎可以在使用时启用 禁用 HMTML sanitizer
  • git pre-status 或 post-status hook

    我想运行 lintergit status 不过似乎没有pre status nor post status hook 如何给 git 添加一个 hook The 精美文档 https git scm com book en v2 Cust
  • 微服务之间的通信

    假设您有微服务 A B 和 C 它们当前都通过 HTTP 进行通信 假设服务 A 向服务 B 发送请求 服务 B 得到响应 然后 该响应中返回的数据必须发送到服务 C 进行一些处理 然后最终返回到服务 A 服务 A 现在可以在网页上显示结果