小编Bha*_*waj的帖子

Akka和Vert.x的消息传递模型的差异

我是Scala程序员,从开发人员的角度理解Akka.我没有查看过Akka库的代码.已经阅读了Akka模型中的两种类型的演员 - 基于线程和基于事件 - 但没有大规模运行Akka我没有配置Akka用于生产的经验.我是Vert.x的新手.所以,从选择的角度来构建一个我想知道的反应式应用程序堆栈 -

  1. Akka和Vert.x的消息传递模型是否有很大不同?怎么样?
  2. Akka的演员和Vert.x的Verticle背后的数据结构是否缓冲消息非常不同?

scala akka vert.x

47
推荐指数
2
解决办法
2万
查看次数

Scafdoc(和Javadoc)为Kafka

用于Apache Kafka的scaladoc/javadoc是否存在于Web上的某个位置?

(是的,我可以下载源代码并将其生成供个人使用,但是为了引用电子邮件/对话,URL非常方便)

apache-kafka

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

在 docker 应用程序中使用 Logback 更改动态日志级别

Logback 有一个功能可以扫描 logback.xml 中的更改(根据这个)——这是一个很棒的功能,它允许长时间运行的应用程序以 INFO 作为默认级别,当必须简要调查某些事情时将其更改为 DEBUG。

但是在我最近的应用程序(作为 Docker 容器托管在我公司的 K8s 集群上)中,我无法使用上述功能,因为:

  • 还没有提供托管外部卷的条款,我可以在其中放置我的 logback.xml(在调试期间由开发人员更改)
  • 还没有规定无需重新启动即可更改正在运行的容器中的环境变量
  • 没有 JNDI 服务器来映射日志变量

鉴于此,有没有一种方法可以让开发人员在运行时更改应用程序的日志记录级别而无需重新启动应用程序/容器?

logging logback logback-classic

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

D3和Dojo GFX的比较

我打算使用D3或Dojo GFX之一来创建一些大数据视觉效果,如TreeMap,Wave-forms等.D3的优点在于,许多这些可视化已经可用作快速开发的示例实现.它的enter-update-exit范例也非常适合我的数据集.但我不反对使用Dojo GFX(并编写我自己的Treemap等实现),如果它被认为更稳定,更适合移动.

寻求建议和比较......

javascript dojo dojox.gfx d3.js

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

Scala类型和编译

我正在使用无形标签并编写类似于此的代码 -

import shapeless.tag
import shapeless.tag.@@

object Typeplay {
  trait StringTrait
  type MyString = String @@ StringTrait

  case class StringClass(mps: MyString)
  val stringClass = StringClass(tag[StringTrait]("test"))
}
Run Code Online (Sandbox Code Playgroud)

而且这段代码无法编译.Scala编译器抱怨最后一行代码说 -

[error]  found   : String("test")
[error]  required: shapeless.tag.Tagged[in.bharathwrites.Typeplay.StringTrait] with String
[error]   val stringClass = StringClass(tag[StringTrait]("test"))
Run Code Online (Sandbox Code Playgroud)

我无法理解我做错了什么.所以我对我的代码做了一些小改动 -

import shapeless.tag
import shapeless.tag.@@

object Typeplay {
  trait StringTrait
  type MyString = String @@ StringTrait

  case class StringClass(mps: MyString)

  val stringTag = tag[StringTrait]("test")
  val stringClass = StringClass(stringTag)
}
Run Code Online (Sandbox Code Playgroud)

这基本上只是使用显式变量进行标记.这段代码编译!!

怎么会这样?为什么第一个程序没有编译而第二个程序呢?

scala shapeless

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

过滤字符串序列直到在scala中找到密钥的功能方法

我有一个很大的字符串序列,我只对找到某个字符串的部分感兴趣.例如,序列可以是 -

..
..
one
two
three
four
five
..
..
Run Code Online (Sandbox Code Playgroud)

我希望过滤掉四个之前的所有行,以便只包含一个过滤序列(四个,五个......等等......)

如何以功能方式在Scala中编写它?

提前致谢.

scala scala-collections

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

无法将消息返回给Spray HttpService Actor

我正在学习Spray和Akka.使用其中一个路由存根构建了一个简单的Spray路由应用程序 -

path("blog" / LongNumber) {
  blogId =>
    respondWithMediaType(MediaTypes.`application/json`) {
      get {
        request => BlogFetchActor ! Get(blogId)
      }
    }
 }
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,我在我的喷涂路由定义(在实现HttpService的类中)中将消息分派给请求中具有ID(blogId)的另一个Actor.BlogFetchActor应该从数据库中获取数据并响应发送者.我的编码如下 -

def receive: Receive = LoggingReceive {
  case Get(id: Long) => {
    log.debug("Retrieving blog with id %d".format(id))
      sender ! ReturnBlog(get(id))
  }
 }
Run Code Online (Sandbox Code Playgroud)

来自路线的Actor消息正在进入我的BlogFetchActor.我的BlogFetchActor也完成了从数据库中获取数据的工作.但是当我尝试将响应发送回发件人HttpService,ReturnBlog消息时,它不起作用.消息最终在DeadLetters中,我在我的日志中看到以下内容 -

从演员[akka:// on-spray-can/user/blog-service/blog#1301907662]到演员[akka:// on-spray-can/deadLetters]的消息[in.bharathwrites.BlogFetchActor $ ReturnBlog]不是交付.

为什么回复给发件人的回复不起作用?我究竟做错了什么?我怎么能做到这一点?我试过阅读Spray文档和ScalaDoc,但无法弄清楚问题.我不够精通阅读Spray代码并了解原因......提前致谢

scala akka spray

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

sbt git clone挂起私人回购

我想克隆一个远程git存储库作为我的构建的一部分,所以在我的build.sbt这样添加了一个依赖 -

val packagemain = project.in(file(".")).dependsOn(uri("https://github.com/xyz/abc.git"))
Run Code Online (Sandbox Code Playgroud)

我已按照页面上的说明设置了用于通过HTTPS克隆存储库的GitHub凭据的缓存.这是有效的,也就是说,当我手动克隆这个repo时,它会这样做而不需要用户名/密码.

但是,当我启动SBT时,它只是在控制台上的以下语句后挂起 -

[info] Loading global plugins from /Users/bharadwaj/.sbt/0.13/plugins
[info] Loading project definition from /Users/bharadwaj/xyz/project/project
[info] Loading project definition from /Users/bharadwaj/xyz/project
[info] Loading project definition from /Users/bharadwaj/project/project
[info] Loading project definition from /Users/bharadwaj/project
Cloning into '/Users/bharadwaj/.sbt/0.13/staging/c682e5428a4ee10acbaf/abc'...
Run Code Online (Sandbox Code Playgroud)

我在Mac-OSX上使用SBT版本0.13.5,Git版本2.0.4.

我已经尝试进入SBT临时目录并尝试'git pull' - 它没有任何问题.它只有在通过SBT克隆时

scala github sbt

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