apache / apache/pulsar-client-cpp

[Feature Request] Add the ability to query the version of the client

Aperta
#471 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
C++
Stelle
71
Fork
90
Merge medio
2h 33m
PR unite (30g)
3

Descrizione

### Background
We develop an application that is able to run with or without pulsar installed, and for that to happen, we do not link with pulsar client (statically or dynamically).

Instead, we load the pulsar client library at runtime (using dlopen) and use the C-API to do what needs to be done.

This means that it is our customers responsibility to install and configure pulsar, and they *could* use any version.

### Request
Since we don't know the version of the pulsar client library at runtime, we cannot make full decisions on the differences of those versions.
E.g. When trying to use the pattern subscribe with the 2.9.2 client, there was an unhandled exception cancelling the topic refresh thread after unsubscribing. This caused our application to crash. This is now fixed in 3.0, but we want to disable that feature if using an older client.

It would be useful to query the client library as to what version it is.

This would also be useful for our logging so we can see what version a customer has installed, and try to reproduce their environment (note that customers don't always tell you the truth, logging information proves what they tell you).

Another useful feature (again for logging purposes) would be to know what the version of the server/broker the client is connected to. It will help with narrowing down problems and reproducing issues.

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia esaminando gli entry point C-API esistenti utilizzati quando la libreria client viene caricata a runtime con dlopen. Determina come potrebbero essere esposte la versione del client e la versione del broker connesso per le decisioni relative alle funzionalità e il logging, quindi conferma con i maintainer il comportamento previsto e la forma dell'API. Il lavoro è completato quando entrambe le versioni possono essere interrogate, ove disponibili, e sono coperte da test appropriati.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
cpp
Ambito
api, distributed-systems
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
30/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.