這篇文章給大家介紹Actor-ES框架中的消息發(fā)布器與消息存儲器是怎樣的,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
在左權(quán)等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站建設(shè)、網(wǎng)站制作 網(wǎng)站設(shè)計制作按需網(wǎng)站策劃,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計,營銷型網(wǎng)站建設(shè),外貿(mào)網(wǎng)站建設(shè),左權(quán)網(wǎng)站建設(shè)費用合理。
Ray是基于Event Sourcing設(shè)計的ES/Actor框架,ESGrain狀態(tài)(State)的修改、ESGrain之間的通信默認使用RabbitMQ通信。消息的發(fā)布器主要是RabbitPub+ESGrain
。
RabbitPub特性是RabbitMQ消息發(fā)布器。
RabbitSub特性用到的構(gòu)造函數(shù)如下:
public RabbitPubAttribute(string exchange = null, string queue = null, int queueCount = 1) { this.Exchange = exchange; this.Queue = queue; this.QueueCount = queueCount; }
exchange:RabbitMQ中的exchange名稱。
queue:RabbitMQ中的queue名稱。
queueCount:消息隊列數(shù)。用于消息的, IAccount
{
……
}
public Task Transfer(string toAccountId, decimal amount)
{
var evt = new AmountTransferEvent(toAccountId, amount, this.State.Balance - amount);
return RaiseEvent(evt).AsTask();
} RabbitPub可以單獨使用,用于發(fā)布消息。 消息的存儲器用于持久化ESGrain的Event事件與State快照數(shù)據(jù),需要的時候進行重放。Ray默認使用MongoDB存儲事件和快照。 使用: 為對應(yīng)的Actor添加 eventDatabase:事件的Database名稱。 collection:事件的collection名稱。 sharding:是否需要分表,默認值false。 shardingDays:分表時間間隔,默認值90天。 示例: shardingDays分表時間間隔有個起始點,開始時間在MongoConfig中定義。具體使用參見 關(guān)于Actor-ES框架中的消息發(fā)布器與消息存儲器是怎樣的就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。消息存儲器:
MongoStorage
特性。public MongoStorageAttribute(string eventDatabase, string collection, bool sharding = false, int shardingDays = 90)
{
this.EventDataBase = eventDatabase;
this.EventCollection = collection + "Event";
this.SnapshotCollection = collection + "State";
this.sharding = sharding;
this.shardingDays = shardingDays;
CreateCollectionIndex();//創(chuàng)建分表索引
CreateStateIndex();//創(chuàng)建快照索引
}
[RabbitMQ.RabbitPub("Account", "account")]
[MongoStorage("Test", "Account")]//事件存儲
public sealed class Account : MongoESGrain
Example.Ray.Host
中StartSilo()
方法。
網(wǎng)頁標(biāo)題:Actor-ES框架中的消息發(fā)布器與消息存儲器是怎樣的
文章源于:http://weahome.cn/article/gshjij.html