可以使用 '|"|}|) 等特殊字符进行检测,除了正常的参数提交外,注入的位置也可能存在于 HTTP header 中,比如 X-Forwarded-For、User-Agent、Referer、Cookie...不同数据库的报错内容: MSSQL ASPX Error Server Error in '/' Application MSAccess (Apache PHP) Fatal error: Uncaught...properly ended ODBC Error Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) PostgreSQL Error PSQLException
通过上一篇文章,我们已经大致了解怎么使用 Akka,期待细致用法。这篇文章将介绍如何用 Akka-testkit 对 Akka 程序进行测试。...不同的文章有不同的说法,比如 http://rerun.me/2014/09/29/akka-notes-logging-and-testing/ 就把 Actor 测试需求分为:1)发送消息给 Actors...3 Akka-testkit 的使用 Maven 项目要使用 Akka-testkit,需要在 pom.xml 文件中加入 akka-testkit 包,如下所示。...对不起。Akka 和 Actor 模型对我来说是一个全新的东西,花了比较多的时间学习和熟悉。学习之后,觉得第一篇写得太不清楚了,准备重构第一篇。...Akka 系列系列文章 Akka 使用系列之一: 快速入门 Akka 使用系列之二: 测试 Akka 使用系列之三: 层次结构和容错机制 Akka 使用系列之四: Future
还记着我们的POS例子里客户端必须构建一个指令,如:http://www.pos.com/logIn?...JWT本身原理并不复杂,应用场景也不是很多,所以不想花太多精力研究它。刚好,找到一个开源的scala JWT工具库jwt-scala....._ import akka.stream._ import akka.http.scaladsl.Http import akka.http.scaladsl.server.Directives._...: import akka.actor._ import akka.stream._ import akka.http.scaladsl.Http import akka.http.scaladsl.model.headers..." %% "akka-http" % "10.1.8", "com.typesafe.akka" %% "akka-stream" % "2.5.23", "com.pauldijou" %
不是太少,而是太多!那就让我删繁就简,就我的经验介绍一些框架或工具,从持久化、分布式系统、HTTP、Web框架、大数据、测试这六方面入手,作一次蜻蜓点水般的俯瞰。...许多框架在分布式处理方面也选择了使用AKKA,例如Spark、Spray。...我在项目中主要将Spray作为REST框架来使用,并结合AKKA来处理领域逻辑。Spray处理HTTP请求的架构如下图所示: ?...Spray对HTTP请求的内部处理机制实则是基于Akka-IO,通过IO这个Actor发出对HTTP的bind消息。例如: IO(Http) !...一个被广泛使用的测试工具是Gatling,它是基于Scala、AKKA以及Netty开发的性能测试与压力测试工具。
我们可以通过Akka-http的raw-header来实现附加自定义消息的传递,这项功能可以通过Akka-http提供的raw-header筛选功能来实现。...在客户端我们把附加消息放在HttpRequest的raw header里,如下: import akka.http.scaladsl.model.headers._ val request =...在客户端可以用下面的方法提供自己的用户身份信息: import akka.http.scaladsl.model.headers._ val request = HttpRequest(HttpMethods.POST...(BasicHttpCredentials("john", "p4ssw0rd")) 服务端对客户端的身份验证处理方法如下: import akka.http.scaladsl.server.directives.Credentials...._ import akka.stream._ import akka.stream.scaladsl._ import akka.http.scaladsl.Http import akka._ import
首先,用akka-http搭建一个http server框架: import akka.actor._ import akka.stream._ import akka.http.scaladsl.Http...使用spay-json很简单,如下: import akka.http.scaladsl.marshallers.sprayjson._ import spray.json._ object JsonMarshaller...具体使用方法如下: import akka.http.scaladsl.common.EntityStreamingSupport import akka.stream.scaladsl._...下面是本次示范中使用的依赖和它们的版本: libraryDependencies ++= Seq( "de.heikoseeberger" %% "akka-http-json4s" % "1.26.0..." %% "akka-http" % "10.1.8" , "com.typesafe.akka" %% "akka-http-spray-json" % "10.1.8", "com.typesafe.akka
这是个akka-cluster-sharding模式。数据中台api是向所有内部系统以及一些特定的外部第三方系统开放的,用http标准协议支持各系统与数据后台的连接也是合理的。...这个akka-http, akka-grpc可以胜任。然后各系统之间的集成可以通过一个流运算工具如kafka实现各聚合根之间的交互连接。 似乎所有需要的工具都齐备了,其中akka占了大部分功能。...play我不太熟悉,想深入了解一下用akka-http替代的可行性,不过看来不太容易。...在我看来:服务接入方面由于涉及身份验证、使用权限、二进制文件类型数据交换等使用akka-http,akka-grpc会更有控制力。...都会自动在某个节点上构建一个新的entity,如果上万个用户使用过某个功能,那么就会有万个entity及其所占用的资源如mongodb客户端等停留在内存里。
我们说过Akka-http是一个好的系统集成工具,集成是通过数据交换方式实现的。Http是个在网上传输和接收的规范协议。...所以,在使用Akka-http之前,可能我们还是需要把Http模式的网上数据交换细节了解清楚。数据交换双方是通过Http消息类型Request和Response来实现的。...下面是本次讨论示范源代码: 服务端: import akka.actor._ import akka.stream._ import akka.stream.scaladsl._ import akka.http.scaladsl.Http...import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.model._ import akka.util.ByteString...: import akka.actor._ import akka.stream._ import akka.stream.scaladsl._ import akka.http.scaladsl.Http
更重要的是:用protobuf和gRPC进行client/server交互不涉及任何http对象包括httprequest,httpresponse,很容易上手使用,而且又有在google等大公司内部的成功使用经验...虽然gRPC基于http/2协议在网络通讯效率和模式上有了很大的提升,但近段时间对gRPC使用的调研主要还是冲着protobuf来的。...实际上,在使用scalaPB的过程中一直在关注akka-grpc的发展,直到v1.01发布。这是一个正式版本,相信不会在模式、风格、语法上再有大的改变,应该值得试着使用了。...akka-streams恰恰把总体方案限制在了内部系统集成模式,因为服务端客户端就是akka-streams的两端,是内部系统集成的场景。...在akka-grpc的官网上有很好的示范例子。我在例子的基础上增加了身份验证使用的示范。
所谓文件交换指的是Http协议中服务端和客户端之间文件的上传和下载。Akka-http作为一种系统集成工具应该具备高效率的数据交换方式包括文件交换和数据库表行的上传下载。...这种模式首先解决了纯Http大数据通过Multipart传输所必须进行的数据分段操作和复杂的消息属性设定等需要的技术门槛,再者用户还可以很方便的使用Akka-stream对数据进行深度处理,免去了数据转换的麻烦...更重要的是:Akka-http还支持reactive-stream,可以避免由传输速率所产生的种种问题。在本篇我们讨论利用Akka-http进行文件的双向传递。 ...._ import akka.stream._ import akka.stream.scaladsl._ import akka.http.scaladsl.Http import akka.http.scaladsl.server.Directives...: import akka.actor._ import akka.stream._ import akka.stream.scaladsl._ import akka.http.scaladsl.Http
Akka-http的客户端Api应该是以HttpRequest操作为主轴的网上消息交换模式编程工具。我们知道:Akka-http是搭建在Akka-stream之上的。...所以,Akka-http在客户端构建与服务器的连接通道也可以用Akka-stream的Flow来表示。...这种模式可以让用户有更大程度的自由度控制connection的构建、使用及在connection上发送request的方式。...", 80)(mat) Akka-http客户端api还有一种实用的Host-Level-Client-Side-Api模式。...blog post: // http://kazuhiro.github.io/scala/akka/akka-http/akka-streams/2016/01/31/connection-pooling-with-akka-http-and-source-queue.html
} 然后我们建立学生 Actor, 将学生 Actor 作为客户端。...其中服务端读入 RemoteServerSideActor 的配置,而客户端读入 RemoteClientSideActor 的配置。...下面是学生客户端运行的结果。 ? 3 总结 一开始我只想实现一个单机版本的老师学生 Actor,实现之后发现不能体现 Akka 的特点,因此又实现一个网络版的老师学生 Actor。...本文主要参考了 http://shiyanjun.cn/archives/1178.html 和 http://rerun.me/2014/09/11/introducing-actors-akka-notes-part...Akka 系列系列文章 Akka 使用系列之一: 快速入门 Akka 使用系列之二: 测试 Akka 使用系列之三: 层次结构和容错机制 Akka 使用系列之四: Future
现在akka-http开发的ws同样面临HTTPS的设置和使用问题。所以,特别抽出这篇博文讨论一下数字证书的问题。 在正式的生产环境里数字证书应该是由第三方公证机构CA签发的,我们需要向CA提出申请。...现在开始了解一下https证书的配置使用方法吧。看了一下akka-http关于server端HTTPS设置的例子,证书是嵌在HttpsConnectionContext类型里面的。...还有就是akka-http使用的https证书格式只支持pkcs12,所以需要把上面用openssl产生的自签名证书server.crt转成server.p12。...import akka.http.scaladsl.server.{ Route, Directives } import akka.http.scaladsl.{ ConnectionContext..., HttpsConnectionContext, Http } import akka.stream.ActorMaterializer import akka.http.scaladsl.Http
测试环境也有特定的配置; 只是因为我们在同一个项目中同时拥有生产者和客户端,所以并行执行被禁用,所以如果并行执行(我们稍后会看到它),我们可能会在Pact文件生成和使用过程中遇到问题。...我认为我们可以通过两种方式进行,直接构建客户端(因为我们已经进行了测试),或者改进我们客户端的定义,创建单元测试并以纯TDD方式对其进行处理。...接下来我创建了一个特征,它为每个HTTP客户端(现在只有一个)定义了基本组件,并具有一个以同步方式执行HTTP请求的功能: BaseHttpClient.scala package com.fm.mylibrary.consumer...import akka.actor.ActorSystem import akka.http.scaladsl.Http import akka.http.scaladsl.model....import akka.actor.ActorSystem import akka.http.scaladsl.Http import akka.http.scaladsl.model.
在有关CQRS系列博客里,我以akka-http作为系统集成工具的一种,零星地针对实际需要对http通信进行了介绍。...akka-http是一套http程序开发工具。它的Routing-DSL及数据序列化marshalling等都功能强大。...在这篇讨论里先搭一个restapi的基本框架,包括客户端身份验证和使用权限。主要是示范如何达到通用框架的目的。...._ import akka.stream._ import akka.http.scaladsl.Http import akka.http.scaladsl.server.Directives._...然后用下面的客户端测试代码: import akka.actor._ import akka.stream._ import akka.http.scaladsl.Http import akka.http.scaladsl.model.headers
Akka-http的客户端连接模式除Connection-Level和Host-Level之外还有一种非常便利的模式:Request-Level-Api。...._ import akka.stream._ import akka.http.scaladsl.Http import akka.http.scaladsl.server.Directives._...: import akka.actor._ import akka.http.scaladsl.settings.ConnectionPoolSettings import akka.stream._...import akka.stream.scaladsl._ import akka.http.scaladsl.Http import akka.http.scaladsl.model._ import...import akka.http.scaladsl.unmarshalling._ import akka.http.scaladsl.marshalling.Marshal import scala.collection.SortedMap
akka-http是以akka-stream为核心的,使用了大量的akka-stream功能。...import akka.http.scaladsl.marshalling.Marshal import akka.http.scaladsl.model._ import akka.http.scaladsl.Http...import akka.http.scaladsl.model._ import akka.http.scaladsl.server.Route import akka.http.scaladsl.Http...._ import akka.stream._ import akka.http.scaladsl.Http import akka.http.scaladsl.server.Directives._...import akka.http.scaladsl.marshalling.Marshal import akka.http.scaladsl.model._ import akka.http.scaladsl.Http
使用ClusterClient从外部与集群进行通信,要求系统与客户端既可以连接,也可以通过 Akka 远程连接到集群中的所有节点和接待员。...在许多情况下,使用更明确和解耦的协议(如「HTTP」或「gRPC」)是更好的解决方案。...此外,由于 Akka 远程处理(Remoting)主要设计为 Akka 群集的协议,因此没有明确的资源管理,当使用了ClusterClient时,它将导致与群集的连接,直到ActorSystem停止(与其他类型的网络客户端不同...使用集群客户端时,连接系统必须将其akka.actor.provider设置为remote或cluster。 接待员(receptionist)应该在集群中的所有节点或具有指定角色的所有节点上启动。...此列表的一个用途可能是让客户端记录其联系点。然后,重新启动的客户端可以使用此信息取代任何以前配置的联系点。
Akka-http正是这么一套能高效解决以上问题的编程工具。Akka-http是一套支持Tcp传输标准及Http标准数据的编程工具。 ...从实际应用角度来看:在Tcp上通过Http消息交换实现了一种服务及服务使用计算模式。...可以看出:服务端客户端双方都涉及到了Http消息的构建、解析、传输,而服务提供方则增加了针对Request服务要求分析逻辑及对应的运算服务。 ...Akka-http分别提供了服务端的Server-Side-Api和客户端的Client-Side-Api来帮助编程人员简化编程。两个Api都包括了对Http消息的构建、解析、传输帮助函数。...由于Akka-http是基于Akka-stream功能之上的,它支持Http数据的流操作,也就是说它可以把一个Stream-Source放在Http消息的数据里,然后Akka-http的Client-Side-Api
但我们更需要一套方案来验证客户端。要把不能通过验证的网络请求过滤掉。 OAuth2是一套行业标准的网络资源使用授权协议,也就是为用户提供一种授权凭证,用户凭授权凭证来使用网络资源。...下面我们写一段客户端代码来测试上面这个webserver的功能: import akka.actor._ import akka.stream._ import akka.http.scaladsl.Http...import akka.http.scaladsl.model.headers._ import scala.concurrent._ import akka.http.scaladsl.model...." %% "akka-http" % "10.1.8", "com.typesafe.akka" %% "akka-stream" % "2.5.23", "com.pauldijou" %...._ import akka.stream._ import akka.http.scaladsl.Http import akka.http.scaladsl.server.Directives._
领取专属 10元无门槛券
手把手带您无忧上云