我想带一个已经POST到ServiceStack服务的RequestDTO,并使用ServiceStack.Server RedisMqServer提供的内置消息传递功能将其推送到Redis。此消息应该是持久的(如果它被成功推送),因为它应该能够在重新启动Redis服务器(如果发生这种情况)和其他不幸事件后继续存在。它应该持续存在,直到它被另一个尚待确定的服务读取/处理。
此Pub / Sub,请求/响应,还是仅请求/无响应?
谢谢你,Stephen
答案 0 :(得分:1)
您需要确保将Redis服务器配置为持久保存到磁盘,redis persistence上的文档描述了如何配置Redis RDB快照并支持仅附加文件。
关于在Redis中仅附加文件的重要说明:
建议(默认)政策是每秒 fsync 。它非常快速且非常安全。总是在实践中策略很慢(尽管在Redis 2.0中有所改进) - 没有办法让fsync比它更快。
实际上,如果redis-server进程意外终止,则有可能丢失数据。
ServiceStack's Rabbit MQ Server为MQ服务提供了更持久的选项,它具有真正的 ACK 支持,因此只有在客户端明确承认时才会从MQ Broker中删除消息。