我正在尝试用etdv3 restful api看密钥,跟随etcd/Documentation/dev-guide/api_grpc_gateway.md,但它似乎不适合手表。
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"
停止等待或者您有足够数量的事件后,您可以看到响应。我认为这是由于缓冲区刷新的时间。
试试这个:
$ curl --no-buffer http://localhost:2379/v3beta/watch \
-X POST -d '{"create_request": {"key":"Zm9v"} }'
另请参阅这篇很棒的文章:HTTP Streaming (or Chunked vs Store & Forward)