Ondersteuning voor meerdere clusters
Ondersteuning voor meerdere clusters is verwijderd in v2. De onderstaande documentatie verwijst naar Orleans v1. Orleans v.1.3.0 heeft ondersteuning toegevoegd voor het federeren van verschillende Orleans clusters in een losjes verbonden multicluster dat als één service fungeert. Met meerdere clusters kunt u geodistributie als een service vergemakkelijken, waardoor het eenvoudiger is om een Orleans toepassing uit te voeren in meerdere datacenters over de hele wereld. Bovendien kan een multicluster binnen één datacenter worden uitgevoerd om betere fout- en prestatieisolatie te krijgen.
Alle mechanismen zijn ontworpen met bijzondere aandacht voor:
- Minimaliseer de communicatie tussen clusters.
- Laat elk cluster autonoom worden uitgevoerd, zelfs als andere clusters mislukken of onbereikbaar worden.
Configuratie en bewerking
Hieronder wordt beschreven hoe u een multicluster configureert en gebruikt.
Communicatie. Clusters communiceren via dezelfde silo-naar-silo-verbindingen die binnen een cluster worden gebruikt. Clusters gebruiken een gossip-mechanisme en gossip-kanaalimplementaties om status- en configuratiegegevens uit te wisselen.
Siloconfiguratie. Silo's moeten worden geconfigureerd zodat ze weten tot welk cluster ze behoren (elk cluster wordt geïdentificeerd door een unieke tekenreeks). Bovendien moet elke silo worden geconfigureerd met verbindingsreeks s waarmee ze verbinding kunnen maken met een of meer roddelkanalen bij het opstarten.
Multiclusterconfiguratie-injectie. Tijdens runtime kan de serviceoperator de configuratie voor meerdere clusters opgeven en/of wijzigen, die een lijst met cluster-id's bevat, om op te geven welke clusters deel uitmaken van het huidige multicluster. Dit wordt gedaan door het beheerkorrel in een van de clusters aan te roepen.
Korrels met meerdere clusters
Hieronder wordt beschreven hoe u functionaliteit voor meerdere clusters gebruikt op toepassingsniveau.
Globale korrels met één exemplaar. Ontwikkelaars kunnen aangeven wanneer en hoe clusters hun graanmappen moeten coördineren met betrekking tot een bepaalde graanklasse. Dit GlobalSingleInstanceAttribute betekent dat we hetzelfde gedrag willen als bij het uitvoeren Orleans in één globaal cluster: dat wil zeggen dat alle aanroepen worden doorgestuurd naar één activering van het graan. Omgekeerd geeft het OneInstancePerClusterAttribute aan dat elk cluster een onafhankelijke activering kan hebben. Dit is geschikt als communicatie tussen clusters ongewenst is.
Logboekweergavekorrels (niet in v.1.3.0). Een speciaal type graan dat gebruikmaakt van een nieuwe API, vergelijkbaar met gebeurtenisbronnen, voor het synchroniseren of behouden van de korrelstatus. Het kan worden gebruikt om de status van een graan tussen clusters en met opslag automatisch en efficiënt te synchroniseren. Omdat de synchronisatiealgoritmen veilig kunnen worden gebruikt met reentrantkorrels en geoptimaliseerd zijn voor het gebruik van batchverwerking en replicatie, kan deze beter presteren dan standaardkorrels wanneer een korrel vaak wordt geopend in meerdere clusters en/of wanneer deze vaak naar de opslag wordt geschreven. Ondersteuning voor korrels voor logboekweergave maakt nog geen deel uit van de hoofdvertakking. We hebben een voorlopige versie, inclusief voorbeelden en een beetje documentatie in de geo-orleans
vertakking. Het wordt momenteel geëvalueerd in productie door een vroege adopter.