如果您有一个事件流,那么每个使用它的微服务都可以保留一个维护物化视图的所有事件的副本。可以在搜索服务上看到这种微服务的一个例子 网上拍卖 示例应用。在链接代码中,有一个clas消耗两个不同的流(在本例中为Kafka主题)并将数据存储到ElasticSearch索引中。 使用Cassandra或其他数据库也可以实现同样的目的。
如果您尝试在Lagom提供的基础上导入cassandra驱动程序,则可能会遇到更多问题。在这种情况下,我建议你:(1)不依赖任何lagom-persistence-xxx,以便只使用你的驱动程序或(2)使用 CassandraSession 由Lagom提供 lagomScaladslPersistenceCassandra 模块(见 Lagom持久性文档 )。 如果选择使用秒选项,则必须添加 CassandraSession 到您的类的构造函数,然后在您的类中的依赖注入 Loader 将确保提供足够的实例。请参阅链接代码中的内容 构造函数中有3个参数 并且Loader使用 macwire 至 注入 他们。请注意,你必须混合使用 ReadSideCassandraPersistenceComponents 特质所以 CassandraSession 可以注射。
CassandraSession
lagomScaladslPersistenceCassandra
Loader
macwire
ReadSideCassandraPersistenceComponents