Esemény-forráskonfiguráció
Ebben a cikkben megismerkedhet a .NET Orleanskülönböző esemény-beszerzési konfigurációs beállításaival.
Projekthivatkozások konfigurálása
Szemcsés interfészek
Mint korábban, az interfészek csak a Microsoft.Orleans.Core
csomagtól függenek, mivel a szemcsés interfész független a megvalósítástól.
Szemcsés implementációk
A JournaledGrains-nek a csomagban Microsoft.Orleans.EventSourcing
definiált vagy JournaledGrain<TGrainState>abból JournaledGrain<TGrainState,TEventBase> kell származnia.
Naplókonzisztencia-szolgáltatók
Jelenleg három naplókonzisztenciát biztosító szolgáltatót tartalmazunk (az állapottároláshoz, a naplótároláshoz és az egyéni tároláshoz). Mind a három a csomagban Microsoft.Orleans.EventSourcing
található. Ezért minden naplózott szemcse már rendelkezik hozzáféréssel ezekhez. A szolgáltatók működésének és eltéréseinek leírását a belefoglalt naplókonzisztencia-szolgáltatók című témakörben talál.
Fürtkonfiguráció
A naplókonzisztencia-szolgáltatók ugyanúgy vannak konfigurálva, mint bármely más Orleans szolgáltató. Ha például mindhárom szolgáltatót fel szeretné venni (természetesen nem lesz szüksége mind a háromra), adja hozzá a <Globals>
konfigurációs fájl eleméhez:
<LogConsistencyProviders>
<Provider Name="StateStorage"
Type="Orleans.EventSourcing.StateStorage.LogConsistencyProvider" />
<Provider Name="LogStorage"
Type="Orleans.EventSourcing.LogStorage.LogConsistencyProvider" />
<Provider Name="CustomStorage"
Type="Orleans.EventSourcing.CustomStorage.LogConsistencyProvider" />
</LogConsistencyProviders>
Ugyanezt programozott módon is el lehet érni. Továbblépés a 2.0.0-s stabil verzióra, a ClientConfiguration és a ClusterConfiguration már nem létezik! Ezt a helyére egy és egy SiloBuilder
(figyelje meg, hogy nincs fürtszerkesztő) váltotta felClientBuilder.
builder.AddLogStorageBasedLogConsistencyProvider("LogStorage")
Szemcsés osztály attribútumai
Minden naplózott gabonaosztálynak rendelkeznie kell egy LogConsistencyProviderAttribute naplókonzisztencia-szolgáltató megadásához. Egyes szolgáltatóknak emellett szükség van például a StorageProviderAttributekövetkezőre:
[StorageProvider(ProviderName = "OrleansLocalStorage")]
[LogConsistencyProvider(ProviderName = "LogStorage")]
public class EventSourcedBankAccountGrain :
JournaledGrain<BankAccountState>, IEventSourcedBankAccountGrain
{
//...
}
A rendszer tehát "OrleansLocalStorage"
a gabonaállapot tárolására szolgál, ahol az EventSourcing események memóriabeli tárolási szolgáltatója volt "LogStorage"
.
LogConsistencyProvider
Attribútumok
A naplókonzisztencia-szolgáltató megadásához adjon hozzá egy [LogConsistencyProvider(ProviderName=...)]
attribútumot a gabonaosztályhoz, és adja meg a szolgáltató nevét a fürtkonfiguráció által konfigurált módon, például:
[LogConsistencyProvider(ProviderName = "CustomStorage")]
public class ChatGrain :
JournaledGrain<XDocument, IChatEvent>, IChatGrain, ICustomStorage
{
// ...
}
StorageProvider
Attribútumok
Egyes naplókonzisztencia-szolgáltatók (beleértve LogStorage
és StateStorage
) szabványos StorageProvidert használnak a tárolóval való kommunikációhoz. Ez a szolgáltató egy külön StorageProvider
attribútummal van megadva, az alábbiak szerint:
[LogConsistencyProvider(ProviderName = "LogStorage")]
[StorageProvider(ProviderName = "AzureBlobStorage")]
public class ChatGrain :
JournaledGrain<XDocument, IChatEvent>, IChatGrain
{
// ...
}
Alapértelmezett szolgáltatók
Kihagyhatja az LogConsistencyProvider
és/vagy az StorageProvider
attribútumokat, ha a konfigurációban alapértelmezett érték van megadva. Ez a megfelelő szolgáltató speciális nevének Default
használatával történik. Példa:
<LogConsistencyProviders>
<Provider Name="Default"
Type="Orleans.EventSourcing.LogStorage.LogConsistencyProvider"/>
</LogConsistencyProviders>
<StorageProviders>
<Provider Name="Default"
Type="Orleans.Storage.MemoryStorage" />
</StorageProviders>
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: