Požiadavky na brokera
Broker musí podporovať kompaktné témy (compact topics). Ide o témy, ktoré pre daný kľúč uchovávajú iba poslednú odoslanú hodnotu. Tento mechanizmus je nevyhnutný pre správne fungovanie systému Orion pri použití iného brokera ako Kafka.
Pridanie vlastných modulov do settings.gradle
Ak pridávate nové moduly (orion-common-<názov_brokera>
, orion-client-<názov_brokera>-adapter
, orion-service-<názov_brokera>-adapter
), nezabudnite ich zaregistrovať v súbore settings.gradle
.
Kde to upraviť
V súbore settings.gradle
sa nachádza zoznam všetkých modulov, ktoré sú súčasťou projektu:
[
"orion-common",
"orion-common-event",
...
].forEach {
include it
}
Vytvorenie modulu s definíciou tém
-
Vytvorte nový modul
V koreňovom adresári projektu vytvorte nový modul s názvomorion-common-<názov_brokera>
. -
Definujte témy a ich konfiguráciu
V tomto module definujte názvy tém a ich konfiguráciu špecifickú pre daný broker. Môžete vytvoriť trieduBrokerTopicConfiguration
, ktorá bude obsahovať konštanty a konfigurácie tém podobne akoKafkaTopicConfiguration
. Podrobnosti o nastavení tém na príklade Kafky nájdete na tomto odkaze : Návod na konfiguráciu tém.
Kroky pre vytvorenie adaptéra klienta pre iný broker
-
Vytvorte nový modul pre adaptér
V koreňovom adresári projektu vytvorte nový modul s názvomorion-client-<názov_brokera>-adapter
. -
Pridajte závislosti do konfiguračného súboru modulu
Do konfiguračného súboru závislostí (napr.build.gradle
) pridajte nasledujúce závislosti:api "dev.tiltrikt:orion-client-domain:1.0.1" api "dev.tiltrikt:orion-client-common:1.0.1" api "<skupina>:orion-common-<názov_brokera>:<version>"
-
Implementujte rozhranie
EventPublisher
RozhranieEventPublisher
je definované v moduleorion-client-common
. Vytvorte implementáciu tohto rozhrania v novom modulu. Táto implementácia bude zodpovedná za posielanie udalostí (ako registrácia, srdcový tep, odhlásenie) do vybraného brokera. -
Implementujte príslušné konzumentské triedy na strane servera
Server musí vedieť prijímať správy (prostredníctvom svojich konzumentov), ktoré klient odosiela.
Kroky pre vytvorenie adaptéra servera pre iný broker
-
Vytvorte nový modul pre adaptér
V koreňovom adresári projektu vytvorte nový modul s názvomorion-service-<názov_brokera>-adapter
. - Pridajte závislosti do konfiguračného súboru modulu
Do konfiguračného súboru závislostí tohto nového modulu (napr.build.gradle
) pridajte nasledujúce závislosti:api "org.springframework.boot:spring-boot-starter" api "dev.tiltrikt:orion-service-domain:1.0.1" api "dev.tiltrikt:orion-service-common:1.0.1" api "<skupina>:orion-common-<názov_brokera>:<version>"
-
Implementujte rozhrania
CandidateRequestPublisher
,HeartbeatErrorPublisher
,LeaderHeartbeatPublisher
,RegistryUpdatePublisher
,ReplicationRegistryUpdatePublisher
,VotePublisher
. -
Implementujte príslušné konzumentské triedy na strane klienta
Klient musí vedieť prijímať správy (prostredníctvom svojich konzumentov), ktoré server odosiela. - Implementujte konzumentské triedy pre spracovanie udalostí z:
CandidateRequestPublisher
LeaderHeartbeatPublisher
VotePublisher
ReplicationRegistryUpdatePublisher
- Implementujte rozhrania
ConsumerLeadershipManager
aConsumerManager
na riadenie stavu Kafka konzumentov v závislosti od roly uzla.
Keď sa uzol stane Líderom:
Zastaviť príjem (počúvanie) replikačných udalostí
Spustiť príjem (počúvanie) udalostí inštancií
Keď sa uzol stane Followerom:
Zastaviť príjem (počúvanie) udalostí inštancií
Spustiť príjem (počúvanie) replikačných udalostí