我试图最终在 Spring Cloud Netflix、Kubernetes 和 Swarm 之间进行选择来构建我们的微服务环境。他们都非常酷,做一些选择是非常困难的。我会稍微描述一下我想要解决的问题。我找不到任何使用 Kubernetes 或 Swarm 设计 Api Gateway(不是简单的负载均衡器)的最佳方法,这就是我想使用 Zuul 的原因。但是从另一方面来说,Api 网关必须使用服务发现,在 Kubernetes 或 Swarm 的情况下,它将被嵌入到管弦乐队中。有了 Kubernetes,我可以使用它的 Spring Cloud 集成,但是这样我将在 Kubernetes 内部进行服务器端发现和客户端发现。我认为这是矫枉过正。我想知道是否有人对他们有一些经验以及对此有任何建议。谢谢。
kubernetes microservices docker-swarm netflix-zuul spring-cloud-netflix
尝试使用Spark MLLib的ALS构建推荐系统.
目前,我们正在尝试每天为所有用户预建建议.我们使用简单的隐式反馈和ALS.
问题是,我们有20M用户和30M产品,并且要调用主要的predict()方法,我们需要为用户和产品进行笛卡尔连接,这太大了,并且可能需要几天才能生成连接.有没有办法避免笛卡尔联合使流程更快?
目前我们有8个节点,64Gb的RAM,我认为它应该足够的数据.
val users: RDD[Int] = ??? // RDD with 20M userIds
val products: RDD[Int] = ??? // RDD with 30M productIds
val ratings : RDD[Rating] = ??? // RDD with all user->product feedbacks
val model = new ALS().setRank(10).setIterations(10)
.setLambda(0.0001).setImplicitPrefs(true)
.setAlpha(40).run(ratings)
val usersProducts = users.cartesian(products)
val recommendations = model.predict(usersProducts)
Run Code Online (Sandbox Code Playgroud) recommendation-engine machine-learning bigdata apache-spark apache-spark-mllib
我在DynamoDB中有一个包含如下属性的表:
OrderId,OrderJson,OrderStatus.
订单状态的值可以是0或1.我需要能够更新指定订单的状态,还可以根据状态字段获取订单.其中一个选项是使用扫描,另一个选项是使用状态为分区键的辅助索引,但状态字段具有较小的值范围.请建议描述要求的最佳做法是什么?谢谢!
我遇到了电子商务应用程序的微服务架构,其中每个表都有自己的微服务,基本上具有 CRUD 操作(类似于每个表的其余客户端)。现在我正在考虑围绕业务领域对它们进行组合和建模,在此之前我想知道是否有人遇到过这种情况以及它是否正确的架构。任何建议都会非常有帮助。谢谢。