我想採用一個POSTD到ServiceStack服務的RequestDTO,並使用由ServiceStack.Server RedisMqServer提供的內置消息傳遞功能將其推送到Redis。這條消息應該是持久的(如果它被成功推送的話),這意味着它應該能夠在Redis服務器重啓之後(如果發生的話)以及其他不幸事件發生。它應該堅持到被另一個尚未確定的服務讀取/處理。如何將requestDto推送到Redis,並保持它一直讀取?
這是發佈/訂閱,請求/響應還是請求/無響應?
謝謝你,斯蒂芬
我想採用一個POSTD到ServiceStack服務的RequestDTO,並使用由ServiceStack.Server RedisMqServer提供的內置消息傳遞功能將其推送到Redis。這條消息應該是持久的(如果它被成功推送的話),這意味着它應該能夠在Redis服務器重啓之後(如果發生的話)以及其他不幸事件發生。它應該堅持到被另一個尚未確定的服務讀取/處理。如何將requestDto推送到Redis,並保持它一直讀取?
這是發佈/訂閱,請求/響應還是請求/無響應?
謝謝你,斯蒂芬
你需要確保你的Redis服務器配置爲堅持到磁盤上redis persistence的文檔描述瞭如何配置Redis的RDB快照和支持追加唯一文件。
的重要注意事項有關追加在Redis的唯一文件:
的建議(缺省)的政策是FSYNC每秒。它既快速又安全。在實踐中,始終的策略非常緩慢(儘管在Redis 2.0中有所改進) - 無法使fsync比現在更快。
在實踐中意味着有一個,如果Redis的服務器進程意外終止丟失數據的機會。
ServiceStack's Rabbit MQ Server提供了MQ服務更耐久的選項,具有真正的ACK支持,以便消息只從MQ代理刪除當客戶明確承認這樣做。