我想知道是否可以只用一个consul服务器来服务器consul服务器键值对。
我正在尝试设置consul服务器,仅为我的rails应用程序存储键值对。我只设置了一个将作为代理人的领事服务器。但是在设置领事馆的网络时遇到了问题。
我尝试运行一个物理实例作为领事服务器来服务领事的web-ui
consul agent -server -data-dir /tmp/consul -ui-dir /home/ubuntu/dist/
要访问公共IP上的consul web-ui,我运行以下命令
consul members -rpc-addr=X.X.X.X:8400
出现以下错误
Error connecting to Consul agent: dial tcp X.X.X.X:8400: connection refused
其中X.X.X.X是实例的私有IP
答案 0 :(得分:1)
默认情况下,代理程序在localhost启动客户端,原因是文档:
Client Addr:这是用于代理的客户端接口的地址。这包括HTTP,DNS和RPC接口的端口。 RPC地址由查询和控制正在运行的代理的其他consul命令(例如,consul成员,consul join等)使用。默认情况下,它仅绑定到localhost。如果更改此地址或端口,则只要运行consul成员等命令以指示如何访问代理,就必须指定-rpc-addr。其他应用程序也可以使用RPC地址和端口来控制Consul。
因此,您需要设置标志-client=X.X.X.X
以设置用于远程访问客户端的IP地址。尝试使用以下命令启动服务器:
consul agent -server -bootstrap -data-dir /tmp/consul -ui-dir /home/ubuntu/dist/ -client=X.X.X.X
X.X.X.X你的IP地址。要检查该选项是否被接受,请检查服务器输出,它包含如下行:
Client Addr: X.X.X.X(HTTP: 8500, HTTPS: -1, DNS: 8600, RPC: 8400)
要访问WebUI,请在您的网络浏览器中打开以下链接:http://X.X.X.X:8500/ui
至于consul members
命令,它只是打印出这个代理的已知成员列表,因此不需要执行它来使用WebUI。
答案 1 :(得分:0)
是的,这是可能的,但这不是一个好主意。 Consul经过优化,可在分布式架构中运行,其中对网络分区的容忍度是主要考虑因素。只有一个节点,你可以用Redis更好地切断它。它将更快,并扩展到更大的客户端集。阅读CAP Theorum。
对于单个节点,没有理由将Consul用于K / V,尽管如果您还想要它的服务发现,DNS,事件和锁定功能,那么有一个原因。