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

Akka http-client不能使用来自服务器的所有数据流

Akka HTTP是一种基于Akka框架的高性能、异步、非阻塞的HTTP客户端和服务器。它提供了一种简单而强大的方式来处理HTTP请求和响应,并支持处理大量的并发连接。

然而,Akka HTTP客户端在处理来自服务器的所有数据流时存在一些限制。具体来说,Akka HTTP客户端不能处理无限流或未知长度的数据流。这是由于Akka HTTP客户端的设计目标是为了处理常规的请求和响应,而不是用于处理流式数据。

对于处理来自服务器的所有数据流的需求,可以考虑使用其他适合的工具或技术。以下是一些可能的解决方案:

  1. 使用专门的流处理框架:可以选择使用专门的流处理框架,如Apache Kafka、Apache Flink或Apache Spark等。这些框架提供了强大的流处理功能,可以处理大规模的数据流,并具有高吞吐量和低延迟的特性。
  2. 使用WebSocket协议:如果服务器支持WebSocket协议,可以考虑使用WebSocket来处理数据流。WebSocket提供了全双工的通信通道,可以在客户端和服务器之间实时传输数据流。
  3. 使用其他HTTP客户端库:如果Akka HTTP客户端无法满足需求,可以尝试使用其他HTTP客户端库,如OkHttp、HttpClient或Requests等。这些库可能提供更灵活的流处理功能,可以处理来自服务器的所有数据流。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

ElasticMQ 0.7.0:使用Akka和Spray的长轮询,非阻塞实现

当然,接口和端口是可配置的,详情请参阅自述文件。像以前一样,您也可以使用任何基于JVM的语言来运行嵌入式服务器。...实现说明 出于好奇,下面简单描述下ElasticMQ是如何实现的,包括核心系统,REST层,Akka数据流的使用和长轮询的实现。所有的代码都可以在GitHub上找到。...Akka 数据流,当然这需要启用continuations插件。...还有一个类似的早期的项目,使用宏,Scala async。 使用Akka数据流,您可以像正常的顺序代码一样编写使用Future的代码。CPS插件会将其转换为在需要时使用回调。...使用Akka调度程序,我们还计划在指定的超时之后发回空列表并删除条目。 当新消息到达时,我们只需从map上获取一个等待请求,然后尝试完成它。同样,所有同步和并发问题都由Akka和参与者模型来处理。

1.6K90

ElasticMQ 0.7.0:长轮询,使用Akka和Spray的非阻塞实现

这有助于减少带宽的使用(不需要非常频繁地进行请求),进而提高系统整体性能(发送后立即收到消息)并降低SQS成本。 独立的服务器现在是一个单一的jar包。...当然,接口和端口都是可配置的,详情请参阅自述文件。像以前一样,您也可以使用任何基于JVM的语言来运行嵌入式服务器。...实现说明 出于好奇,下面是对ElasticMQ如何实现的简短描述,包括核心系统,REST层,Akka数据流使用和长轮询实现。所有的代码都可以在GitHub上找到。...这看起来像完全正常的序列化代码,但是在执行时,因为第一次Future是第一次使用将会异步运行。 长轮询 由于所有的代码都是异步和非阻塞的,实现长轮询非常容易。...同样,所有同步和并发问题都由Akka和actor模型来处理。 请测试新版本,如果您有任何反馈,请让我们知晓! Adam

1.6K60
  • 解决Yii2.0 高级版不能使用内置服务器的问题

    今天社区一个小伙伴给我留言说是 Yii 框架可不可以像 Laravel 一样直接使用内置服务器直接跑起项目 在Laravel 中 直接: php artisan serve 但是 Yii 框架...使用 官方文档提供的 php yii serve 确跑不起来?...这是他给我的回复。也是他的报错信息。...当时我也没理会,直接说了句我也没用过 Yii 的内置服务器,但是官方文档确实是 php yii serve 晚上回家,感觉有点儿不负责任,所以直接拿起电脑果断执行了一下,发现还真是。 什么情况?...写这篇,纯粹是自己没用过 Yii 的内置服务器, 同样要多谢社区的那个小伙伴。要不是你我都不知道。还有就是深表歉意...... 最后。少百度。多谷歌。

    94830

    分页控件的使用能不能再简单一点呢,能不能一个页面搞定所有的列表需求?

    打开IDE、备份程序文件、编译所需要的时间都会增长。这些都是很郁闷的事情。那么我们能不能“合并”一下呢?所有(或者大部分没有特殊情况的)列表都是用同一个aspx文件呢。      ...实现: 第一步:一个页面 QuickPager分页控件的使用已经比较简单,设置几个属性就可以了,但是这只是一个列表页面的时候,如果我们要多个列表,那么就需要重复的写给属性赋值的语句。...GridView可以和ObjectDataSource来配合使用,这样可以根据数据源的情况自动添加Columns。但是目前分页控件还没有这个功能。 怎么办呢?...8、个性化设置,使用人员可以依据自己的口味增加减少显示的字段,可以修改字段显示的前后顺序,当然是在权限范围内。      ...第三步:自动适应数据库的变化      不过等等,页眉里显示什么名字呢?就是每一列都叫做什么?总不能直接把字段名放上去吧,另外TD还需要一些修饰,比如居左、居右、还是居中?TD的宽度设置成多少?

    1.1K50

    3.4 Spark通信机制

    比如,一个EJB可以通过RMI调用Web上另一台机器上的EJB远程方法。RMI可以被看作是RPC的Java版本,但是传统RPC并不能很好地应用于分布式对象系统。...❑ ObjectMessage:一个序列化的Java对象。 ❑ BytesMessage:一个未解释字节的数据流。 4....EJB JavaEE服务器端组件模型(Enterprise JavaBean, EJB)的设计目标是部署分布式应用程序。简单来说就是把已经编写好的程序打包放在服务器上执行。...任何需要高吞吐率和低延迟的系统都是使用AKKA的候选,因此Spark选择AKKA通信框架来支持模块间的通信。...4)弹性,无中心(elastic — decentralized):自适应的负责均衡、路由、分区、配置。 5)可扩展性(extensible):可以使用Akka扩展包进行扩展。

    1.7K50

    3.4 Spark通信机制

    比如,一个EJB可以通过RMI调用Web上另一台机器上的EJB远程方法。RMI可以被看作是RPC的Java版本,但是传统RPC并不能很好地应用于分布式对象系统。...❑ ObjectMessage:一个序列化的Java对象。 ❑ BytesMessage:一个未解释字节的数据流。 4....EJB JavaEE服务器端组件模型(Enterprise JavaBean, EJB)的设计目标是部署分布式应用程序。简单来说就是把已经编写好的程序打包放在服务器上执行。...任何需要高吞吐率和低延迟的系统都是使用AKKA的候选,因此Spark选择AKKA通信框架来支持模块间的通信。...4)弹性,无中心(elastic — decentralized):自适应的负责均衡、路由、分区、配置。 5)可扩展性(extensible):可以使用Akka扩展包进行扩展。

    1.4K50

    输入DStream和Receiver详解

    输入DStream代表了来自数据源的输入数据流。...除了文件数据流之外,所有的输入DStream都会绑定一个Receiver对象,该对象是一个关键的组件,用来从数据源接收数据,并将其存储在Spark的内存中,以供后续处理。...Spark Streaming提供了两种内置的数据源支持; 1、基础数据源:StreamingContext API中直接提供了对这些数据源的支持,比如文件、socket、Akka Actor等。...这些数据源的使用,需要引用其依赖。 3、自定义数据源:我们可以自己定义数据源,来决定如何接受和存储数据。 要注意的是,如果你想要在实时计算应用中并行接收多条数据流,可以创建多个输入DStream。...使用本地模式,运行程序时,绝对不能用local或者local[1],因为那样的话,只会给执行输入DStream的executor分配一个线程。

    33420

    Akka(17): Stream:数据流基础组件-Source,Flow,Sink简介

    2、scalaz-sstream和akka-stream的数据流都是一种申明式的数据处理流程描述,属于一种运算方案,最终都需要某种运算器来对数据流按运算方案进行具体的运算,得出运算结果和产生副作用。...scalaz-stream的运算器是自备的函数式程序,特点是能很好的控制线程使用和进行并行运算。akka-stream的运算器是materializer。...属于数据元素的使用方,主要作用是消耗数据流中的元素。SinkShape是有一个输入端的数据流形状。...这种方式代表一种对数据流所有元素的直接表现,如:source.runWith(Sink.foreach(println))。...意思是选择左边数据流图的运算结果。我们上面提过akka-stream是在actor系统里处理数据流元素的。在这个过程中同时可以用actor内部状态来产生运算结果。

    1.7K60

    利用Actor实现管道过滤器模式

    这在很大程度上使得我们可以从纷繁复杂的基础设施实现中解脱出来,而仅需要专注于考虑数据流转与业务流程之间的关系。 管道过滤器模式 谈到数据流(或者消息流),我们会想到一个经典的架构模式:管道过滤器模式。...为了避免隐形依赖,我们可以将管道传递的数据定义为一个通用的消息类型,所有注册管道的过滤器处理的都是相同的流。...在第一部分《剖析响应式编程的本质》中,我曾经提到: 我们几乎可以将所有业务处理流程都可以建模为数据流的形式。 下面我们就来看看一个订单处理流程的案例。...这个案例来自前述Vaughn Vernon的著作《Reactive Messaging Pattterns with the Actor Model》: 一条订单消息进入系统,在为了完成购物操作处理完该条消息前...使用Actor实现管道过滤器模式,则又有所不同,业务的处理流程是在消息的跳转之间完成的,且每个消息的处理都是异步非阻塞的。

    1.1K40

    Akka(18): Stream:组合数据流,组件-Graph components

    akka-stream的数据流可以由一些组件组合而成。这些组件统称数据流图Graph,它描述了数据流向和处理环节。Source,Flow,Sink是最基础的Graph。...我们知道:akka-stream的Graph可以用更简单的Partial-Graph来组合,而所有Graph最终都是用基础流图Core-Graph如Source,Flow,Sink组合而成的。...然后我们按目标Graph的功能要求把pipe的端口连接起来就完成了这个数据流图的设计了。测试使用证明这几个Graph的功能符合预想。...所有基础组件Core-Graph都必须定义Shape来描述它的输入输出端口,定义GraphStage中的GraphStateLogic来描述对数据流元素具体的读写方式。...所以我们最好使用akka-stream提供现成的pull,push来重写抽象函数onPull,onPush。

    1.2K60

    Akka(20): Stream:异步运算,压力缓冲-Async, batching backpressure and buffering

    akka-stream原则上是一种推式(push-model)的数据流。...对于akka-stream这种push模式的数据流,因为超速推送数据会造成数据丢失,所以必须想办法控制publisher产生数据的速度。...因为akka-stream已经在上下游环节全部实现了Reactive-Streams-Specification,所以上下游之间可以进行互动,这样就可以在akka-stream里由下游通知上游自身可接收数据的状态来控制上游数据流速...akka-stream的backpressure使用了缓冲区buffer来成批预存及补充数据,这样可以提高数据传输效率。...akka-stream可以通过以下几种方式来设定异步运算使用的缓冲大小: 1、在配置文件中设定默认buffer: akka.stream.materializer.max-input-buffer-size

    89270

    Akka(25): Stream:对接外部系统-Integration

    akka-stream提供了mapAsync+ask模式可以从一个运算中的数据流向外连接某个Actor来进行数据交换。这是一种akka-stream与Actor集成的应用。...在我们这次的测试里只能使用group类型的Router,因为如果需要对routee实现监管supervision的话,pool类型的router在routee终止时会自动补充构建新的routee,如此就避开了监管策略...,那我们可以把这个外部系统当作数据流的源头Source。...下面我们就用个例子来示范SourceQueue的使用方法:我们用Calculator actor来模拟外部系统、先用Source.queue构建一个SourceQueue然后再连接下游形成一个完整的数据流...注意:不能使用mapTo[String],因为offer返回Future[T],T不是String,会造成类型转换错误。

    2.1K80

    告别等待!HTTP分块Chunk传输让客户端响应更迅速数据即时呈现

    \r\n The final chunk of data \r\n 0\r\n \r\n 在这个例子中,服务器使用Transfer-Encoding: chunked头部来告知客户端它将使用分块传输编码...例如,当服务器需要生成大量数据或数据需要动态生成时,它可以使用HTTP分块传输来在响应正在生成时向客户端传输数据。...服务端需要在响应头部添加Transfer-Encoding: chunked,告知客户端使用分块传输方式。 服务端需要将所有数据按照块的格式进行封装并发送给客户端。...服务端 服务端使用workerman/http-client实现。workerman/http-client 是一个异步http客户端组件。...所有请求响应异步非阻塞,内置连接池,消息请求和响应符合PSR7规范。 使用 Moonshot 提供基于 HTTP 的 API 服务接入。

    5.2K10

    Akka-CQRS(0)- 基于akka-cluster的读写分离框架,构建gRPC移动应用后端架构

    上一篇我们讨论了akka-cluster的分片(sharding)技术。在提供的例子中感觉到akka这样的分布式系统工具特别适合支持大量的带有内置状态的,相对独立完整的程序在集群节点上分布运算。...在系统出现各种情况下对这些非持久化的程序状态的管理自然就成为了需要考虑的问题,此其一。在一个多用户、高并发的大型分布式系统里往往数据库数据使用会产生大量的冲突影响系统性能。...这种资源分享的模式恰恰是akka-cluster-sharding的强项。剩下海量并发的数据库操作,就可以通过akka-CQRS框架来应对了。...gRPC方式是基于HTTP/2.0协议上的,可以实现点对点的持续连接,支持双向数据流操作,有效解决了request/response模式带来的效率问题。...我们在前面的博客里已经构建了基于gRPC,多分布式数据库的数据流编程框架,可以直接采用。google的移动应用编程语言dart2也是支持gRPC的,从整体系统实现的可行性方面应该不会有什么问题了。

    61720

    Akka(21): Stream:实时操控:人为中断-KillSwitch

    akka-stream是多线程non-blocking模式的,一般来说,运算任务提交到另外线程后这个线程就会在当前程序控制之外自由运行了。...任何时候如果需要终止运行中的数据流就必须采用一种任务柄(handler)方式来控制在其它线程内运行的任务。这个handler可以在提交运算任务时获取。...运算这个数据流时返回了handle killSwitch,我们可以使用这个killSwitch来shutdown或abort数据流运算。...实例就像immutable对象,我们可以在多个数据流中插入SharedKillSwitch,然后用这一个共享的handler去终止使用了这个SharedKillSwitch的数据流运算。...下面是本次示范的源代码: import akka.stream.scaladsl._ import akka.stream._ import akka.actor._ import scala.concurrent.duration

    83760

    Akka 指南 之「术语及概念」

    温馨提示:Akka 中文指南的 GitHub 地址为「akka-guide」,欢迎大家Star、Fork,纠错。...我们试图给出将在 Akka 文档范围内使用的定义。 并发 vs. 并行 并发和并行是相关的概念,但有一些小的区别。并发意味着两个或多个任务正在取得进展,即使它们可能不会同时执行。...非阻塞操作优先于阻塞操作,因为当系统包含阻塞操作时,系统的总体进度并不能得到很好的保证。 死锁 vs. 饥饿 vs....例如,客户机向服务器发送无序数据包(如 UDP 数据报)P1和P2。由于数据包可能通过不同的网络路由传输,因此服务器可能先接收到P2,然后接收到P1。...OCC 方法是,每个参与者都试图在共享对象上执行其操作,但如果参与者检测到来自其他对象的冲突,则会回滚修改,并根据某些计划重试。如果有一个时间点,其中一个参与者是唯一的尝试者,那么操作将成功。

    80760
    领券