Как использовать etcd v3 restful api для просмотра - PullRequest
0 голосов
/ 09 мая 2018

Я пытаюсь посмотреть ключ с помощью api etcdv3 restful, следуя etcd / Documentation / dev-guide / api_grpc_gateway.md , но, похоже, он плохо работает с watch.

 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"

Ответы [ 2 ]

0 голосов
/ 16 августа 2018

Попробуйте вместо этого:

$ curl --no-buffer http://localhost:2379/v3beta/watch \
      -X POST -d '{"create_request": {"key":"Zm9v"} }'

Также обратитесь к этой удивительной статье: Потоковая передача HTTP (или Chunked vs Store & Forward)

0 голосов
/ 30 июля 2018

Вы можете увидеть ответ, как только вы остановите etcd или у вас будет достаточно событий. Я думаю, что это из-за времени очистки буфера.

...