Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

io.etcd.jetcd.Client példány kezelése #225

Closed
speter555 opened this issue Dec 9, 2021 · 4 comments · Fixed by #230
Closed

io.etcd.jetcd.Client példány kezelése #225

speter555 opened this issue Dec 9, 2021 · 4 comments · Fixed by #230
Assignees

Comments

@speter555
Copy link
Contributor

io.etcd.jetcd.Client producere Application szintű, emiatt ha valami miatt megszakad a kapcsolat az etcd-vel, akkor nem áll helyre az etcd kliens, ezen lenne jó javítani, hogy ne az alkalamzást kelljen újraindítani.

@martin-nagy martin-nagy self-assigned this Dec 17, 2021
@martin-nagy
Copy link
Contributor

Próbálkoztam a reprodukálásával, de nem sikerült előhoznom a hibát, sem a Config-on (DefaultEtcdConfigSource) keresztül, sem az etcd klienst közvetlenül használva. Az alábbi példakód nem ad vissza hibát, miután az etcd szervert visszaindítom.
@speter555 tudnál esetleg több infót adni a reprodukálásához?

@Inject
private io.etcd.jetcd.Client etcdClient;

public void test() {
    while (true) {
        try {
            TimeUnit.SECONDS.sleep(1);
            PutResponse putResponse = etcdClient.getKVClient()
                    .put(ByteSequence.from("foo".getBytes()), ByteSequence.from("bar".getBytes()))
                    .get();
            System.out.println(putResponse);
        } catch (InterruptedException | ExecutionException e) {
            System.err.println(e.getMessage());
        }
    }
}

@martin-nagy
Copy link
Contributor

Egyenlőre annyit találtam, hogy ha etcd hívásnál hálózati hiba van, akkor az etcd kapcsolat io.grpc.ConnectivityState#TRANSIENT_FAILURE állapotba kerül, és folyamatosan próbál, egyre nagyobb időközökkel újracsatlakozni a szerverhez (io.grpc.internal.ExponentialBackoffPolicy). A kapcsolat addig nem kerül READY státuszba, amíg a backoff policy egy tick-je át nem billenti, hiába állt helyre már egy ideje a szerver. Emiatt még percekig használhatatlan marad a kliens.
Nem lehet, hogy csak ennyi a probléma?

@speter555
Copy link
Contributor Author

Ezt nem tudom sajnos megmondani.

@czenczl
Copy link
Member

czenczl commented Dec 21, 2021

#229 verzio frissítése a következőt megoldja:
local service indítása + vpn off + war deploy a jetcd 0.5.0 verzióval beakad a service, és nem is javul meg.
0.6.1 esetében magától helyreáll az etcd kapcsolat.

infok:
https://gitmemory.cn/repo/grpc/grpc-java/issues/8574
etcd-io/jetcd#814

@martin-nagy martin-nagy linked a pull request Dec 23, 2021 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants