小编Aki*_*Aki的帖子

如何确保Cassandra在不同表上的数据一致性?

我是Cassandra的新手,我读过Cassandra鼓励非规范化和重复数据.这让我有点困惑.让我们想象以下场景:

我有一个包含四个表的键空间:A,B,C和D.

CREATE TABLE A (
  tableID int,
  column1 int,
  column2 varchar,
  column3 varchar,
  column4 varchar,
  column5 varchar,
  PRIMARY KEY (column1, tableID)
);
Run Code Online (Sandbox Code Playgroud)

让我们假设其他表(B,C,D)具有与表A相同的结构和相同的数据,只有不同的主键,以便响应其他查询.

如果我升级表A中的一行,我如何确保具有相同数据的其他表中的数据的一致性?

duplicates data-consistency cassandra cassandra-2.0

12
推荐指数
1
解决办法
2004
查看次数

玩转微服务——api网关和服务发现

我们计划基于play框架开发一些微服务。他们将提供 REST API,其中很多将在后台使用 akka 集群/集群分片。

我们希望有一个 api 网关来公开我们内部服务的 api,但我们面临一个大问题:
- 每个服务的多个实例将在某个 ip 和端口下运行。
- API 网关如何知道服务实例在哪里运行?
- 是否有类似负载平衡器的东西可以跟踪所有正在运行的服务?

哪种解决方案可以填补“API 网关”/“负载均衡器”的空缺?

在此输入图像描述

service-discovery microservices api-gateway

4
推荐指数
1
解决办法
5469
查看次数

通过Shapeless获取默认的case类参数

shapeless是否提供了一个类型类/宏来召唤一个HList包含案例类所有参数的默认值?

假设我们有这个案例类:

case class User(name: String, age: Int = 18)
Run Code Online (Sandbox Code Playgroud)

然后我想得到这样一个HList:

None :: Some(() => 18) :: HNil
Run Code Online (Sandbox Code Playgroud)

scala shapeless

2
推荐指数
1
解决办法
149
查看次数

与 cats 并行压缩两个 EitherT[Future, _, _]

scala 中的常规 future 提供了zip运算符。当两者都成功时,它将结合它们的价值并并行运行它们。当有两只猫时,猫身上是否有类似的东西EitherT[Future, _, _]


val a: EitherT[Future, String, Int] = EitherT.right(10)
val b: EitherT[Future, String, Int] = EitherT.right(20)
val sum: EitherT[Future, String, Int] = for ((a, b) <- a zip b) yield a + b
Run Code Online (Sandbox Code Playgroud)

我希望sum是一个Right(30)whenab都是两个Right值。此外,与该Future.zip函数一样,两个 future 应该并行运行:

scala scala-cats

1
推荐指数
1
解决办法
546
查看次数

匹配列表的模式

为什么以下代码不能按预期工作?通过查看代码,我认为它可能会返回"数字列表",因为数字是带有数字的列表.但我运行代码并将输出作为"字符串列表".猜猜我清除了这里的大部分混乱.

val numbers: List[Int] = List(1,2,3)
val numbersMatch: String = numbers match {
  case listOfStrings: List[String] => "a list of strings"
  case listOfNumbers: List[Int] => "a list of numbers"
  case _ => ""
}
println(numbersMatch)
Run Code Online (Sandbox Code Playgroud)

scala

-6
推荐指数
1
解决办法
84
查看次数