Tag: akka http

在Mac OS上的Docker上运行REST应用程序时的空响应

我已经使用SBT创build了一个简单的scala应用程序(akka-http REST服务)。 这是应用程序的主要类: object UserApiWebService extends App { override def main(args: Array[String]): Unit = { implicit val system: ActorSystem = ActorSystem("user-api-system") implicit val executionContext: ExecutionContext = system.dispatcher implicit val materializer: ActorMaterializer = ActorMaterializer() val userApiRoute = new UserApiRoute val userApiRoutes = new UserApiRoutes(userApiRoute) val config = ConfigFactory.load() val host = config.getString("http.host") val port = config.getInt("http.port") […]

Akka HTTP在Docker容器中过早closures

我有一个简单的Akka HTTP服务器端口8080本地运行。它完美的工作,并显示以下消息: Started server at 127.0.0.1:8080, press enter to kill server 我正在使用sbt-assembly来创build.jar文件。 它生活在target/scala-2.12/my-app-assembly-0.1.jar 然后,我创build一个简单的Dockerfile如下所示: FROM openjdk:8u131 ADD target/scala-2.12/my-app-assembly-0.1.jar app.jar ENTRYPOINT ["java", "-jar", "app.jar"] CMD ["-XX:+UnlockExperimentalVMOptions", "-XX:+UseCGroupMemoryLimitForHeap", "-XX:MaxRAMFraction=1", "-XshowSettings:vm"] build立docker形象: docker build -t {my namespace}/my-app . 并运行它: docker run {my namespace}/my-app 现在,它还显示: Started server at 127.0.0.1:8080, press enter to kill server 但之后立即抛出这些错误并closures: … [DEBUG] [10/08/2017 23:18:15.056] […]

MongoDb中的零星(authentication??)失败和过期

连接到我的MongoDB副本集有几个问题。 我创build了一个用于读写的mongodbpipe理员用户。 我可以成功loginterminal上的mongo shell,会话永不过期。 在我的Scala应用程序中,我运行了一个名为reactivemongo 0.11.9和MongoDB 3.2.1的akka​​-http,并在3个独立的服务器上为Docker容器设置了mongo复制。 我正在validation服务器启动时的mongo连接。 大约60%的时间它暂时工作(40%,它无法开始authentication),5-20分钟后,我的连接不再authentication或连接已经死亡,无法重新连接。 我还没有find任何有关保持身份validation打开时间更长的原因,或者为什么连接只会丢失而不能恢复,并且只要连接存在,就可以看到身份validation在连接级别是如何保持的。 这是我的mongo连接对象: class MongodbDataStore(implicit exec: ExecutionContext) { var driver1 = new reactivemongo.api.MongoDriver var mongoOptions = new MongoConnectionOptions(nbChannelsPerNode = 5, connectTimeoutMS = 300000, authMode = ScramSha1Authentication) var counter = 0 val dbName = "admin" val userName = "name" val password = "password" val credentials = List(Authenticate(dbName, userName, […]

如何在Docker和Akka HTTP中最大化吞吐量?

我正在build立一个特定的性能测量夹具。 我有一个负载生成器,繁荣( https://github.com/rakyll/boom )。 有了这个我可以产生一个相当不错的负载量。 我也有一个包含nginx作为负载平衡器的Docker镜像,以及两个基于Akka-HTTP的REST服务器。 除了点击命中之外,它们什么也不做(它们总是返回200)。 单机运行这些服务器(Docker之外)我已经能够达到1000点/秒。 不知道这是否好。 在这个Dockerconfiguration下,这个数字下降到每秒220次。 我有点期待,以及… 2000点击/秒左右。 更高会更好。 如果我能find一种方法来达到3-4K点击/秒的安排,我会很高兴。 我经常得到这样的错误信息: [9549] Get http://192.168.99.100:9090/dispatcher?reply_to=foo: dial tcp 192.168.99.100:9090: socket: too many open files 尝试使用–ulimit nofile = 2048运行我的Docker,但这并没有帮助。 我的阿卡的application.conf只是: akka { loglevel = "ERROR" stdout-loglevel = "ERROR" http.host-connection-pool.max-open-requests = 512 } 服务器代码: object Main extends App { implicit val system = ActorSystem() implicit […]

docker中运行的akka​​-http应用程序

我有一个AKK – http应用程序在当地正常工作,我有一些问题“dockerizing”的应用程序。 我通过Dockerfile构buildDocker镜像,并使用docker-entrypoint来执行java -jar命令。 当我第一次访问正在运行的docker集装箱的应用程序不运行,虽然如果我访问容器,手动执行java -jar命令应用程序启动罚款。 如果我执行下面的命令(在容器内),应用程序也可以正常启动: bash -xe docker-entrypoint.sh 看下面我的Dockerfile FROM qa.stratio.com/stratio/ubuntu-base:16.04 MAINTAINER stratio ARG VERSION RUN apt-get update && apt-get install -y screen COPY target/khermes-${VERSION}-allinone.jar /khermes.jar COPY docker/docker-entrypoint.sh / COPY src/main/resources/application.conf / EXPOSE 8080 ENTRYPOINT ["/docker-entrypoint.sh"] 另请参阅下面我的docker-entrypoint.sh: #!/bin/bash -xe java -jar -Dkhermes.client=false -Dakka.remote.hostname=localhost – Dakka.remote.netty.tcp.port=2553 -Dakka.cluster.seed- nodes.0=akka.tcp://khermes@localhost:2552 /khermes.jar tail -f /dev/null 有没有人有一个想法,当我运行容器时,为什么我的应用程序被杀害?

在使用sbt-native-packager构builddocker软件包时使用重复映射

我正在使用sbt-native-packager在Scala中构build基于Akka HTTP应用程序的Docker镜像。 但是,最近它已经开始运行sbt docker:publishLocal时抛出以下错误sbt docker:publishLocal命令: [info] Loading project definition from ~/directory/project [info] Set current project to fortytwo-api (in build file:~/directory/) SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. [info] Wrote ~/directory/target/scala-2.11/fortytwo-api_2.11-1.0.pom java.lang.RuntimeException: Duplicate mappings: ~/directory/target/docker/stage/opt/docker/lib/org.scalaz.scalaz-core_2.11-7.1.0.jar from ~/.ivy2/maven-cache/org/scalaz/scalaz-core_2.11/7.1.0/scalaz-core_2.11-7.1.0.jar ~/.ivy2/cache/org.scalaz/scalaz-core_2.11/bundles/scalaz-core_2.11-7.1.0.jar ~/directory/target/docker/stage/opt/docker/lib/com.typesafe.config-1.2.1.jar from ~/.ivy2/maven-cache/com/typesafe/config/1.2.1/config-1.2.1.jar ~/.ivy2/cache/com.typesafe/config/bundles/config-1.2.1.jar ~/directory/target/docker/stage/opt/docker/lib/com.google.protobuf.protobuf-java-2.5.0.jar from […]

无法从外部访问Docker容器中的应用程序

docker pull kovacshuni/riptube:1.0.0-SNAPSHOT docker run -it -P –name="riptube" kovacshuni/riptube:1.0.0-SNAPSHOT bin/riptube & curl -X POST -d "Hi there" localhost:8082/notify INFO 15:55:06 chrNotificationReceiver$ – Hi there 所以这工作。 但从外部来看,从docker守护进程的主机,它不是。 尽pipe有EXPOSE命令和-P参数。 docker port riptube 8082 0.0.0.0:32785 curl -X POST -d "Hi there" localhost:32785/notify curl: (52) Empty reply from server 为什么? 🙁 🙁 源代码在这里 。 Dockerfile,但粘贴正确的下面: FROM frolvlad/alpine-oraclejdk8 RUN apk […]