首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

框架 | spray-routing的核心流程

spray是个性能很好而且功能非常完整的service框架,包含很多组件,从底层http服务器到高层的rest路由DSL都有。一般简单的应用就使用和掌握好最高层的spray-routing就够用。...——以及对应的业务服务即可,注意这个路由定义并不是一个配置文件,而是spray-routing定义的一套scala的DSL。...据spray-routing文档里说是为了”non-blocking"和"actor friendly",但实际上在spray的后续版本,也就是akka-http里把这个返回类型改成了RouteResult...但大部分时候我们可以用spray-routing通过一组Directive——翻译成中文就是指令——提供的路由DSL来定义我们的路由。这也是spray-routing提供的最核心的功能。...里抽取一些信息,使之在下级路由中可用,比如上例中的id => 完成请求——比如上例中的complete{ } 对于过滤功能而言,还需要能“并联”——如果这个路径与请求不匹配,spray要去尝试下一个路径

1.5K60
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Akka 指南 之「配置」

    你可以修改的典型设置示例: 日志级别和日志记录器后端 启用远程处理 消息序列化程序 路由器的定义 调度员调整 Akka 使用「Typesafe Config Library」,这对于配置你自己的应用程序或使用或不使用...不幸的是,这也意味着如果你将多个 Jar 放入或合并到同一个 Jar 中,那么你还需要合并所有reference.conf。否则,所有默认值将丢失,Akka 将不起作用。...").withFallback(config)) 这两个示例演示了“提升子树(lift-a-subtree)”技巧的不同变化:在第一种情况下,从 Actor 系统中访问的配置是 akka.loglevel...尤其不包括如何将其他配置文件包含在其他文件中(参见「Including files」中的一个小示例)以及通过路径替换复制配置树的部分。...Actor 部署配置 特定 Actor 的部署设置可以在配置的akka.actor.deployment部分中定义。在部署部分,可以定义调度程序、邮箱、路由器设置和远程部署等内容。

    2.1K20

    转:模拟退火算法在企业文档管理系统中的代码示例

    企业文档管理系统是企业信息化建设的重要组成部分,它可以帮助企业更好地管理和利用各种文档信息。在企业文档管理系统中,模拟退火算法可以应用于优化文档检索和分类等方面。...一个具体的例子是如何使用模拟退火算法来优化文档分类。在企业文档管理系统中,通常需要将各种文档进行分类,以便更好地管理和利用这些文档。然而,文档分类的过程比较繁琐,需要耗费大量的时间和人力。...如果能够使用模拟退火算法来优化文档分类的过程,将可以大大提高分类的准确性和效率。我们可以将每个文档表示为一个向量,其中每个维度表示一个特征。例如,我们可以使用文档的标题、正文、作者等作为特征。...在每个迭代步骤中,我们可以计算当前参数组合下的聚类效果,并将其作为能量函数来评估当前解的优劣。然后,我们通过一定的概率接受新解,或者保留当前解。通过多次迭代,模拟退火算法最终会收敛到一个最优解。...在每个迭代步骤中,随机生成一个新的聚类中心,并计算新的聚类误差。如果新的聚类误差更小,则接受新的聚类中心;否则以一定概率接受新的聚类中心。通过多次迭代,最终得到一个最优的聚类结果。

    18130

    Dubbo 压测插件的实现——基于 Gatling

    Dubbo 压测插件已开源,本文涉及代码详见 gatling-dubbo Gatling 是一个开源的基于 Scala、Akka、Netty 实现的高性能压测框架,较之其他基于线程实现的压测框架,Gatling...全链路压测中我们主要模拟用户实际使用场景,使用 HTTP 接口作为压测入口,但有赞目前后端服务中 Dubbo 应用比重越来越高,如果可以知道 Dubbo 应用单机水位将对我们把控系统后端服务能力大有裨益...ActionBuild 则为 DSL 使用 Action 的辅助类 Check 和 CheckBuild 检查部分,全链路压测中我们都使用 JsonPath检查请求结果,这里我们实现了一样的检查逻辑。...CheckBuild 则为 DSL 使用 Check 的辅助类 DSL Dubbo 插件的领域特定语言,我们提供了一套简单易用的 API 方便编写 Duboo 压测脚本,风格上与原生 HTTP DSL...我们都使用 JsonPath校验 HTTP 请求结果,Dubbo 压测插件中,我们也实现了基于 JsonPath的校验。

    2.5K10

    Akka(0):聊聊对Akka的初步了解和想法

    Actor不单可以在当前JVM中运行,也可以跨JVM在任何机器上运行,这基本上就是Akka程序实现分布式运算的关键了。...Actor是Akka系统中的最小运算单元。每个Actor只容许单一线程,这样来说Actor就是一种更细小单位的线程。Akka的编程模式和其内置的线程管理功能使用户能比较自然地实现多线程并发编程。...别具风格的编程模式,而且Akka还有一套领域特定语言DSL,是一种独立的编程模式,即Actor编程模式了。...除了普通功能的Actor之外,Akka还提供了几种具有特殊功能的Actor,包括:路由(routingActer)、有限状态机(FSMActor)、持久式(persistenceActor)。...初步打算下面的主攻方向是基于persistenceActor的ES模式数据库应用和基于Actor-http的Microservice工具库。

    1.1K80

    Akka FSM 源代码分析

    Akka FSM 有一个简单的官方文档。这里有中文翻译。只是这文档也说得云山雾罩的。看文档不如直接看代码,因为Akka FSM的代码非常短。也花不了多少时间。...全部的这些问题的处理都浓缩在一个源文件,短短的700多行代码中。所以这部分代码也是学习Scala Akka 编程的经典范例。...装配状态机的DSL语法 Akka FSM 提供了一些内部DSL语法来协助装配状态机,也就是用来把你的状态机结构用前面的数据结构定义出来。 使用DSL机制有个特点。你要是明确DSL详细是如何干活的。...状态超时怎样被装配到状态机的定义中 when dsl 可以可选的指定每一个状态名的超时时间。...有两个地方能够对终止流程进行控制: 通过在状态的事件处理函数返回的下一个状态中增加终止原因,启动终止流程 通过 onTermination 函数(DSL 机制)定制终止事件的处理完毕必要的清理工作

    53820

    Akka 指南 之「调度器」

    你可以在 JDK 的「ThreadPoolExecutor 文档」中了解更多关于它的信息。 有关更多选项,请参阅「配置」的默认调度器部分。...请注意,同样的提示也适用于管理 Akka 中任何地方的阻塞操作,包括流、HTTP 和其他构建在其上的响应式库。...这是识别生产系统中发生的问题的有用步骤,然后你可以应用下面解释的建议解决方案。 ? 在上面的示例中,我们通过向阻塞 Actor 发送数百条消息来加载代码,这会导致默认调度器的线程被阻塞。...有关 Akka HTTP 的类似讨论,请参阅「Handling blocking operations in Akka HTTP」。...一种常见的模式是为N个 Actor 创建一个路由器,每个 Actor 包装一个 DB 连接,并处理发送到路由器的查询。

    1.9K21

    Akka 指南 之「集群的使用方法」

    开源的 Akka 管理库包括「Cluster Bootstrap」模块,它就专注于处理这个问题。有关更多详细信息,请参阅其文档。...在示例中运行Worker Dial-in Example最简单的方法是下载准备好的「Akka Cluster Sample with Java」和教程。...它包含有关如何运行Worker Dial-in Example示例的说明。此示例的源代码可以在「Akka Samples Repository」中找到。...Cluster Aware Routers 所有路由(routers)都可以知道集群中的成员节点,即部署新的routees或在集群中的节点上查找routees。...目前,使用sbt multi-jvm插件进行的测试只记录在 Scala 中。有关详细信息,请转到此页对应的 Scala 版本查看。 管理 HTTP HTTP API 提供了集群的信息和管理。

    4.8K60

    Akka 指南 之「集群感知路由器」

    这种类型路由器的一个用例示例是运行在集群中某些后端节点上的服务,可由运行在集群中前端节点上的路由器使用。...这种类型路由器的一个用例示例是一个单独的master,它协调作业并将实际工作委托给集群中其他节点上运行的路由。...最简单的运行路由器示例的方法是下载「Akka Cluster Sample with Java」,它包含有关如何使用路由组运行路由器示例的说明。...带有远程部署路由池的路由器示例 让我们看看如何在创建和部署workers的单个主节点(master node)上使用集群感知路由器。为了跟踪单个主节点,我们使用集群工具模块中的集群单例。...「Akka Cluster Sample with Java」,它包含有关如何使用远程部署路由池运行路由器示例的说明。

    99320

    PlayFramework 2.1 技巧-性能调优实战

    e.printStackTrace(); } }else{ System.out.println("no sleep"); } return ok("good."); } 在conf/routes文件中添加如下路由...测试地址如下: http://localhost:9000/1 - http://localhost:9000/9 需要注意的是,所有的请求需要在浏览器的一个窗口中完成,具体原因请见下面的【说明】...在我的上一篇文章《Play Framework2.1源码分析 - 架构设计及线程策略分析》介绍了,在Play2.x中,实际处理请求的执行环境是AKKA的actors,而执行actors的线程资源是由跟actor...在Play2.1中,所有的AKKA actors都使用默认的default-dispatcher,其默认配置如下: play { akka { actor { retrieveBodyParserTimeout...下面的参数书写方式和自动生成的不太一样,不用担心,Play支持多种书写方式,例如点式“db.default.user=sa”和下面这种类似JSON的方式,具体请参考官方文档, play { akka

    1.1K70

    Akka 指南 之「集群单例」

    一些例子: 对特定的集群范围一致性决策或跨集群系统协调行动的单一责任点 外部系统的单一入口点 单主多工 集中命名服务或路由逻辑 使用单例不应该是第一个设计选择。它有几个缺点,如单点瓶颈。...你可以使用提供的akka.cluster.singleton.ClusterSingletonProxy访问单例 Actor,该代理将所有消息路由到单例的当前实例。...,并将单例迁移到另一个节点, 在使用自动关闭(Automatic Downing)的集群中出现网络分裂的情况下(参见文档中的自「Auto Downing」),可能会发生孤立的集群并各自决定成为它们自己的单例...下面是这个示例中,单例 Actor 如何处理terminationMessage。...and Java」中,有一个更全面的示例!

    1.1K20
    领券