API网关和微服务通信

2024-01-16

我正在构建微服务架构,我需要沟通方面的帮助。 API 网关与服务通信的最佳方法是什么?我的 API 网关将是graphql apollo服务器和服务将是REST APIs.我应该使用 REST 与服务或某些消息系统进行通信吗RabbitMQ ?


您可以通过两种方式完成此操作,但使用消息代理系统,例如RabbitMQ 将为您提供负载均衡的优势。对于 HTTP Rest 通信,您需要一个负载均衡器,以便将流量分发并路由到各个实例。但是使用像 RabbitMQ 这样的消息代理,Broker本身就是负载均衡器。如果多个消费者同时监听同一个地址,消息将并行传递,而不是像 HTTP 那样互相阻塞。我希望我能解释清楚:)

你可以看看这个article https://solace.com/blog/experience-awesomeness-event-driven-microservices这解释了优点。

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

API网关和微服务通信 的相关文章

随机推荐

  • 正则表达式捕获分隔符之间的字符串

    In this https stackoverflow com questions 1454913 regular expression to find a string included between two characters wh
  • 使用什么数据库来存储和操作大数据?

    我必须决定为我的下一个项目使用哪个数据库服务器 但是像我所做的几乎所有项目一样使用 MySQL 的简单决定现在变得更加困难 因为我期望非常多的记录 数据库会存储一个用户列表 一些其他不相关的表 最后一个是一些用户收集的数据 比方说 如果我有
  • 使用 eXist-db 中的范围索引提高查询性能

    阅读文档http exist db org exist apps doc indexing xml http exist db org exist apps doc indexing xml我发现很难理解如何以及是否可以提高 读取 查询的性
  • 变换scaleX并保持固定的右侧位置

    使用jquery缩放一些文本mousemove但不知道如何使右侧的单词 h2 从固定的右侧位置向左侧扩展 相反 它总是从单词的左边缘开始缩放 我希望这两个单词组合起来始终填充窗口的宽度 当光标向左移动时 左侧单词 h1 缩小 右侧单词 h2
  • Delphi Pascal - 使用 SetFilePointerEx 和 GetFileSizeEx,在读取文件时获取物理媒体的确切大小

    我不知道如何使用 RTL 之外的任何 API 我一直在使用 SetFilePointer 和 GetFileSize 将物理磁盘读入缓冲区并将其转储到文件中 这样的循环可以完成 2GB 以下闪存卡的工作 SetFilePointer PD
  • 在 SQL Server 2008 中创建日期

    有没有类似的东西DATEFROMPARTS year month day 在 SQL Server 2008 中 我想使用当前年份和月份创建日期 但使用我自己的月份日期 这需要在一行中完成 以便在计算列公式中使用 例如 我不确定它是否有效
  • 确定监听某个端口的进程pid

    正如标题所示 我正在运行多个游戏服务器 并且每个服务器都有相同的name但不同PID和port数字 我想匹配PID正在监听某个端口的服务器 然后我想终止这个进程 我需要它来完成我的 bash 脚本 这可能吗 因为在网上还没有找到解决方案 您
  • 如何在Lumen中使用多个数据库

    我们已经使用 Lumen 来构建 API 现在我们需要访问多个数据库 目前使用 env对于数据库配置 但无法找到多个数据库的方法 env 我们需要在哪里读取第二个连接 首先 您需要配置连接 如果您还没有 则需要创建一个config项目目录中
  • 我怎样才能让 onclick 函数只提交我的 form.php

    下面是我试图覆盖的代码 var conf isVip false isMem false var sinaSSOConfig entry mail loginType 0 setDomain true pageCharset UTF 8 t
  • 如何在 Windows 上使用 CMake 进行非交互式构建?

    我想在 Windows 上使用 CMake 设置自动构建 我使用的是 Visual Studio 2005 Update 这是我正在使用的 我将 devenv exe 设置为我的 PATH 然后运行下面的命令来构建 我正在使用 Hudson
  • C# 空合并 (??) 运算符的运算符优先级是什么?

    我刚刚尝试了以下操作 其想法是连接两个字符串 用空字符串替换空值 string a Hello string b World 调试 有趣的是 是打印 并不完全有助于可读性 a b gt 你好 正确的是 a b Hello World 我有点
  • 轮式拾取器的制作方法

    我正在尝试制作一个像这样的轮式拾取器this https code google com p android wheel 我尝试下载该项目 但 zip 下载中包含的唯一文件是wheel demo apk 和notes txt Notes t
  • 为什么数组插入的时间复杂度是 O(n) 而不是 O(n+1)? [复制]

    这个问题在这里已经有答案了 我刚刚开始学习数据结构 在进行数组插入时 我想知道为什么数组插入的时间复杂度是 O n 而不是 O n 1 在最好的情况下 当插入在最后一个地方时 时间复杂度是O 1 我想我们正在考虑 1 插入元素 因为没有元素
  • Windows 上有 /dev/null 吗?

    相当于什么 dev null在 Windows 上 我想你想要NUL 至少在命令提示符或批处理文件中 例如 type c autoexec bat gt NUL 不创建文件 I believe如果您尝试以编程方式创建文件 情况也是如此 但我
  • 如何检查 Android 资源是否缺少默认值?

    我很好奇如何找到缺少默认值的 Android 资源 例如 可以定义corner radius in dimens sw600dp xml 没有定义它dimens xml 这将导致最小宽度小于 600 dp 的任何设备上运行时崩溃 在上面的例
  • 跳回之前在 Vim 中打开的文件

    在使用 Vim 时 我有时会想查看函数定义或结构定义 所以我会使用C 跳到它 但是 我遇到了一些问题 首先 我不知道如何轻松地跳回来 看来我之前所在的文件已关闭 现在我正在新的文件中 有没有办法跳回来 或者保留一堆打开的文件供我弹回或其他什
  • 如何在 Android 版 Kotlin 上使用“setTextColor(hexaValue)”,

    背景 在 Java 中 我可以使用 TextView 的标准十六进制值直接更改 TextView 的文本颜色 textView setTextColor 0xffffffff white textView setTextColor 0x00
  • 数据更改后 CursorLoader 不更新

    我创建了一个小应用程序 试图了解该应用程序的功能LoaderManager and CursorLoader 课程 我已经实施了LoaderCallbacks
  • 将同步方法包装到可以“等待”的异步方法中

    我有一个同步调用 context User Where u gt u UserID twitterId u Type UserType Show SingleOrDefault 我需要将其包装成一个异步的 我可以使用await关键词 我怎样
  • API网关和微服务通信

    我正在构建微服务架构 我需要沟通方面的帮助 API 网关与服务通信的最佳方法是什么 我的 API 网关将是graphql apollo服务器和服务将是REST APIs 我应该使用 REST 与服务或某些消息系统进行通信吗RabbitMQ