我正在尝试使用etcd/Documentation/dev-guide/api_grpc_gateway.md跟随etcdv3 restful api看密钥,但看起来效果不佳。
curl http://localhost:2379/v3beta/watch \
-X POST -d '{"create_request": {"key":"Zm9v"} }'
curl http://localhost:2379/v3beta/watch \
-X POST -d '{"create_request": {"key":"Zm9v"} }'
#{"header":{"cluster_id":"7016043442779247867","member_id":"5993310732371594633","revision":"2","raft_term":"2"}}
手表没有响应。
这是我的docker-compose.yml:
version: "3"
services:
etcd:
image: quay.io/coreos/etcd:latest
command: >
/usr/local/bin/etcd
--name node1
--initial-advertise-peer-urls http://${HOST}:2380
--listen-peer-urls http://0.0.0.0:2380
--advertise-client-urls http://${HOST}:2379
--listen-client-urls http://0.0.0.0:2379
--initial-cluster node1=http://${HOST}:2380
--debug
expose:
- 2379
- 2380
ports:
- "2379:2379"
- "3380:2380"
答案 0 :(得分:0)
一旦停止etcd或事件数量足够多,您就可以看到响应。我认为这是由于缓冲区刷新的时间所致。
答案 1 :(得分:0)
尝试以下方法:
$ curl --no-buffer http://localhost:2379/v3beta/watch \
-X POST -d '{"create_request": {"key":"Zm9v"} }'
也请参阅这篇很棒的文章:HTTP Streaming (or Chunked vs Store & Forward)