动态自动分片支持Scala Slick
这篇文章与在上已经提出的问题有关 指向应更改以实现此功能的代码的指针在中给出 我是Scala和Slick的新手,我能得到一些帮助吗,关于如何继续实施此功能。在应用程序级别,是否有任何slick/scala模式可以执行此操作 我的问题是“我有MySQL不同分片的连接池,当我编写一个涉及ID(分片键)的查询时,slick应该在相应的数据库分片上动态运行该特定查询” 例如:如果我写这样一个查询动态自动分片支持Scala Slick,scala,slick,sharding,typesafe,Scala,Slick,Sharding,Typesafe,这篇文章与在上已经提出的问题有关 指向应更改以实现此功能的代码的指针在中给出 我是Scala和Slick的新手,我能得到一些帮助吗,关于如何继续实施此功能。在应用程序级别,是否有任何slick/scala模式可以执行此操作 我的问题是“我有MySQL不同分片的连接池,当我编写一个涉及ID(分片键)的查询时,slick应该在相应的数据库分片上动态运行该特定查询” 例如:如果我写这样一个查询 val q = for ( user <- users.filter(_.name === "ca
val q = for ( user <- users.filter(_.name === "cat")
post <- posts.filter(_.postedBy === user.id)
comment <- comments.filter(_.postId === post.id)
} yield comment.content
q.run
a trivial case should be like one below.
users += User(id = 1, name = "cat", email = "cat@mat.com") => hits shard no 1
用法:
val q = users.insert(User(id = 1, name = "cat", email = "cat@cat.com"))
func(q, shards, 10) => q executes on one of the 10 shards.
谢谢。Slick是一个非常高级的Scala库。当您刚接触Scala时,更改它的实现将非常困难。这是一个非常广泛的问题。如果您尝试了它,并且在途中遇到了更具体的问题,人们会回答的变化会更大。在应用程序级别有没有什么巧妙的模式可以做到这一点@这是非常低的优先级。我们可能永远也不会实施它。应用程序级模式可能是从ids到slick数据库对象的一个函数,这基本上说明了哪个碎片负责ids。为什么需要在应用程序级而不是数据库级执行此操作?我认为slick的级别太高了。
val q = users.insert(User(id = 1, name = "cat", email = "cat@cat.com"))
func(q, shards, 10) => q executes on one of the 10 shards.