- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 alertmanager 作为 docker 容器在两台不同的主机上运行,并且两者都应该作为集群运行。两台机器都在同一个 vpc 内,并与私有(private) IP 地址通信。
我需要知道--cluster.listen-address 和--cluster.advertise-address 有什么区别。
如果我错了,请纠正我,指定 cluster.listen-address=:9094
表示alertmanager 将在端口9094 上的所有接口(interface)上监听集群连接。因此,不同主机上的所有其他alertmanager 节点都可以通过设置cluster.peer=<ip>:9094
连接到此alertmanager 的ip 地址在端口9094 上。 .
但是后来,我不明白cluster.advertise-address有什么用。
documentation对广告和收听地址的用例没有太多了解。
The chosen port in the cluster.listen-address flag is the port that needs to be specified in the cluster.peer flag of the other peers.
The cluster.advertise-address flag is required if the instance doesn't have an IP address that is part of RFC 6980 with a default route.
最佳答案
在集群系统中,每个节点都需要能够访问其他每个节点。但是,一个节点可能有多个身份,特别是在使用某种形式的网络地址转换 (NAT) 时。例如,在 Docker 的特定上下文中,容器具有容器专用 IP 地址,但在 Docker 之外,通常通过其主机的 IP 地址或 DNS 名称和发布的端口来访问它。
收听地址或 绑定(bind)地址指定进程接受入站连接的网络接口(interface)。在 Docker 中,这几乎总是特殊的“所有接口(interface)”IPv4 地址0.0.0.0
。或其 IPv6 等效项::
, 并使用服务的标准 TCP 端口。 Alertmanager 默认 0.0.0.0:9094
在这里是正确的。 (如果是127.0.0.1
,则无法从其容器外部访问该进程。某些软件会枚举可用接口(interface)并分别绑定(bind)到每个接口(interface),这也可以。)
广告地址告诉集群如何连接回节点。如果整个系统在 Docker 中运行,这可能是 Docker 内部的 DNS 名称;在 Kubernetes 中,一个服务名称;或在多主机设置中,主机的名称和发布的端口。特别是在 Docker 案例中,服务器可能正在监听端口 9094,但 docker run -p
选项可以选择不同的外部可见端口;通告地址配置是集群的其余部分可以知道该地址的唯一方式。
同行是集群中其他节点的初始集合,但它们可以来来去去,一旦您连接到集群,新节点通常可以发现所有其他当前成员。
在多主机 Docker 环境中,应该使用默认的监听地址;您应该将广告地址设置为您的主机的 IP 地址和发布的端口;并且您应该列出尽可能多的初始已知对等方。对于第一个节点,您无法列出任何对等节点,因为第二个节点尚未运行。
关于docker - 警报管理器 : Difference between cluster listen address and advertise address,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64301333/
我正在尝试捕捉评论状态事件,例如有人正在关闭它。并在从插件中获得任何生命迹象之后。向日志文件(从任何日志级别)或 STDOUT 发送一行。atlassian-plugins.xml 看起来像这样:
我在跑; sass --watch --style compressed --sourcemap css/sass:css 我得到了; NameError: uninitialized constan
您好,我正在创建一个 android 应用程序作为 ejabbered 服务器的 XMPP 客户端。 但我真的很困惑,因为我看到我可以将消息作为数据包或消息发送,我也可以使用 PacketListen
我有一个 imageview - 它的属性 -focusable 和 focusableintouchmode 都设置为 true 我已经在我的 Activity 中实现了 onFocus
我有一个查询来查找指定条形码的文档 ID: Future findBarcode() async { String searchBarcode = await BarcodeScanner.sca
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 5 年前。 Improve
这可能是一个非常基本的问题,但我就是不明白。使用 Express.js 创建应用和启动应用监听 1234 端口有什么区别,例如: var express = require('express'); v
所以我想知道什么是更好看的解决方案/有什么区别以及在决定制作多个监听器(1 个监听器用于 1 个按钮)还是仅 1 个 ActionListener 用于 GUI 中的所有按钮(大约 10 个按钮),并
我目前正在尝试制作一个聊天室服务器。我正在努力做到这一点,以便我可以同时监听新请求的连接和监听从已建立的连接发送的消息。 我可以用它来监听请求的连接: def reqlisten(): glo
有没有办法在事件监听器方法中访问类上下文并有可能删除监听器? 示例 1: import {EventEmitter} from "events"; export default class Event
应用程序在本地主机上工作正常。但是当它连接到服务器时出现错误。 我通过端口 22 连接服务器 这是错误 Error: listen EADDRNOTAVAIL Error: listen EADDRN
我有类似的东西: $scope.$on(config.SOME_CONSTANT, ()=> { activate(); // plus a bunch of instantiatio
我的 HTML 页面上有以下 Controller : ... ... 此子 Controller 映射到以下 c
我的 HTML 页面上有以下 Controller : ... ... 此子 Controller 映射到以下 c
我构建了一个自定义属性并将其添加到可观察列表中。但是,如果属性内容发生更改,则不会调用任何监听器。以下代码片段向您展示了“建筑”: public static final class TestObje
这里我不明白这两种方法的基本区别是什么。 var events = require('events'); var eventEmitter = new events.EventEmitter(); v
我正在尝试使用 grunt-express 设置 Grunt 来启动我的 Express 服务器。读完docs后和 this SO question ,我还是想不通。我已经为我的 Grunt 文件尝试
如果这里问题的某些方面不清楚,我深表歉意,因为我是 Node 和 javascript 的新手。请询问更多详情 我有一个使用 socketio 连接到 firebase 的 Node 应用程序。在 h
情况 我可能没有使用传统意义上的 PHPUnit。我正在使用带有 Selenium 2 的 PHPUnit。我们有这个想法来记录 Selenium 以“重现步骤”的方式执行的操作。这意味着如果我们调用
我正在尝试学习在 struts2 中使用 session 。所以,我只想实现一个登录/注销、配置文件应用程序。我正在关注互联网上提供的基本教程。但是,它根本不起作用。请帮助我解决以下问题如何解决。 S
我是一名优秀的程序员,十分优秀!