实际上很早就写了一系列关于akka-streams的博客.但那个时候纯粹是为了了解akka而去学习的,主要是从了解akka-streams的原理为出发点.因为akka-streams是akka系列工具的基础,如:akka-http, persistence-query等都是基于akka-streams的,其实没有真正把akka-streams用起来.这段时间所遇到的一些需求也是通过集合来解决的.不过,现在所处的环境还是逼迫着去真正了解akka-streams的应用场景.现状是这样的:跨入大数据时…
上一次已经将Collectors类中的各种系统收集器的源代码进行了完整的学习,而在之前咱们已经花了大量的篇幅对其Stream进行了详细的示例学习,如: 那接下来则通过源代码的角度来对Stream的运作原理进行深入的学习,比如:Stream里面提供了这么多方法都是如何实现的?串行流与并行流又是如何调用的?对于并行流它又是如何利用ForkJoin这样的一个框架进行任务的切割和合并的?下面开始: 首先找开Stream类的源代码,先看一下它的定义: 而它是继承了BaseStream,如下: 所以,先来瞅…
(转载 https://doc.akka.io/docs/akka-stream-kafka/current/home.html) 一: Akka Streams Kafka, also known as Reactive Kafka, is an Akka Streams connector for Apache Kafka. 二:Producer:…
https://www2.eecs.berkeley.edu/Pubs/TechRpts/2012/EECS-2012-259.pdf Discretized Streams: A Fault-Tolerant Model for Scalable Stream Processing Matei Zaharia, Tathagata Das, Haoyuan Li, Timothy Hunter, Scott Shenker, Ion Stoica University of Californi…
继续操练Stream,直接上代码: 而咱们要返回ArrayList,显示可以用构造引用来传递到里面,因为它刚好符合Supplier函数式接口的特性:不接收参数返回一个值,所以: 接下来试着将Stream转换成其它集合类型,比如:Set,如下: 接下来将集合中的字符串元素拼成一起然后再输出出来,继续可以用stream.collect()方法来实现,如下: 下面提出新的需求,对其集合中的所有字符串元素转换成大写,然后再输出出来,具体如何用stream来实现呢? 接着继续,将一个整数集合中的元素进行平…
如果不清楚本篇内容的,请务必先去看完上一篇再看本篇,否则阅读起来可能会有部分障碍和困难: 上一篇文章<SpringCloud学习之Stream消息驱动[默认通道](十)>我们简单用自定义通道实现了消息发送和接收,但是用的是Stream给我们提供的默认Source,Sink,接下来我们要自己进行自定义,这种方式在工作中还是用的比较多的,因为我们要往不同的消息通道发消息,必然不能全都叫input,output的,那样的话就乱套了 (一)创建消息生产者[service-sender-stream-8…
https://www.jianshu.com/p/9da1f0756813 从编程实现角度学习Faster R-CNN(附极简实现) GoDeep 关注 2018.03.11 15:51* 字数 5820 阅读 1897评论 2喜欢 24 转载自:https://zhuanlan.zhihu.com/p/32404424 1 概述 在目标检测领域, Faster R-CNN表现出了极强的生命力, 虽然是2015年的论文, 但它至今仍是许多目标检测算法的基础,这在日新月异的深度学习领域十分难得.…
Stream和Collection的区别是什么 流和集合的区别是什么? 粗略地说, 集合和流之间的差异就在于什么时候进行计算.集合是一个内存中的数据结构,它包含数据结构中目前所有的值--集合中的每个元素都得先计算出来才能添加到内存里.(你可以往集合里加东西或者删东西,但是不管什么时候,集合中的每个元素都是放在内存里的,元素都得计算出来才能成为集合的一部分.) 相比之下,流则是在概念上固定的数据结构(你不能添加或者删除元素),其元素则是按需计算的.这对编程有很大的好处.用户仅仅从流中提取需要的值,…
关于默认方法[default method]的思考: 在上一次[http://www.cnblogs.com/webor2006/p/8259057.html]中对接口的默认方法进行了学习,那在Java8中在接口中接出默认方法是为了解决什么问题或者说规避什么问题呢?凡是在JDK引入一个新的概念肯定是专家们经过了一定的权衡才加入的,那加入默认方法的具体原因是啥呢?其实主要是为了解决Java8的向后兼容问题,因为毕境如今Java是一个历史非常优久且用JAVA老版本的系统也非常非常之多了,不可能因为升…
Streams api 对 Stream 的使用就是实现一个 filter-map-reduce 过程,产生一个最终结果,或者导致一个副作用(side effect). 流的操作类型分为两种: Intermediate:一个流可以后面跟随零个或多个 intermediate 操作.其目的主要是打开流,做出某种程度的数据映射/过滤,然后返回一个新的流,交给下一个操作使用.这类操作都是惰性化的(lazy),就是说,仅仅调用到这类方法,并没有真正开始流的遍历. Terminal:==一个流只能有一个…
为了使一个项目支持集群,自己学习使用了 akka cluster 并在项目中实施了,从此,生活就变得有些痛苦.再配上 apache 做反向代理和负载均衡,debug 起来不要太酸爽.直到现在,我还对 akka cluster 输出的 log 不是很熟悉,目前网络上 akka cluster 的信息还比较少,想深入了解这东西的话,还是要自己读 source code.前几天,雪球那帮人说 akka 不推荐使用,有很多坑,这给我提了个醒,目前我对 akka 的理解是远远不够的,需要深入学习. akk…
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAO4AAADZCAIAAACo85tgAAAgAElEQVR4Aey9SdAs13XnV/P8jW8e8DCTAAiCbAJNkRRFSa2xWxFtd0QvHN57YW+89cpLL7z1wmHv7IXbYXvhCEbItqItiU21QgRJEMT8ML/5m7+aK7OqMsu/38mqB4Bt98pL5qtXXw437z3D/5577rlDlUq/PX4rgd9K4LcS+K0EfiuB30rgtxL4/…
上一次[http://www.cnblogs.com/webor2006/p/8297603.html]在最后用stream.iterate()生成了6个奇数,接着基于它来实现如下需求:找出该流中大于2的元素,然后再将每个元素乘以2,然后忽略掉流中的前两个元素,然后再取流中的前两个元素,最后求出流中元素的总和.那具体如何来实现呢?下面一个个条件来实现: ①.找出该流中大于2的元素. 很显然这是一个过滤操作,所以可以使用stream.fitler(),如下: ②.再将每个元素乘以2. 这个当然就是…
继续对流进行学习,首先先说明一下流的特点: 1.Collection提供了新的stream()方法. 2.流不存储,通过管道的方式获取值. 3.本质是函数式的,对流的操作会生成一个结果,不过并不会修改底层的数据源,集合可以作为流的底层数据源.其中需要注意标红的说明,也就是说对于流操作它的源数据是不会被更改的,另外还有一点需要有一个认知:对于一个流可能有若干个中间操作,对于这些操作并非降低了整体的执行性能,反而会有提升,比如说增加了三个中间操作,可能感受会有三次循环,但是实际并非是咱们想象的这样,…
上节课老师主要讲了stream及其一些运用和实例,下面我们就来讨论讨论Stream. 我们知道,C#中常用的stream有文件流(FileSteam),内存流(MemoryStream),压缩流(GZipStream),加密流(CrypToStream),网络流(NetworkStream). 下面是一些代码的展示: 1.文件流(读取文件流-输出文件流)FileStream using(Streamstreamwrite=new FileStream(@"D:\BaiduYunDownload\…
一旦 shard coordinator(相当于分布式系统的 zookeeper) 启动,它就会启动一个定时器,每隔一定的时间尝试平衡一下集群中各个节点的负载,平衡的办法是把那些负载较重的 actor 移动到负载较轻的节点上.在这一点上,我以前的理解有误,我以为 shardRegion 是移动的最小单位. val rebalanceTask = context.system.scheduler.schedule(rebalanceInterval, rebalanceInterval, self…
    上一篇写了一下rpc调用过程的实现方式,简单来说就是服务端把实现了接口的结构体对象进行反射,抽取方法,签名,保存,客户端调用的时候go-micro封请求数据,服务端接收到请求时,找到需要调用调用的对象和对应的方法,利用反射进行调用,返回数据. 但是没有说stream的实现方式,感觉单独写一篇帖子来说这个更好一些.上一篇帖子是基础,理解了上一篇,stream实现原理一点即破.先说一下使用方式,再说原理. 当前go-micro对 rpc 调用的方式大概如下: 普通的rpc调用 是这样: 1.…
一个Stream表面上看与一个集合很类似,允许你改变和获取数据.但是实际上他与集合是有很大区别的: Stream自己不会存储元素.元素可能被存储在底层的集合中,或者根据需要产生出来. Stream操作符不会改变源对象.相反,他们会返回一个持有结果的新Stream. Stream操作符可能是延迟执行的.意味着他们会等到需要结果的时候才执行. 下面是一段如何并行统计长单词的代码: long count = words.parallelStream() .filter(w->w.length()>1…
Stream流 Java 8 API添加了一种新的机制——Stream(流).Stream和IO流不是一回事. 流式思想:像生产流水线一样,一个操作接一个操作. 使用Stream流的步骤:数据源→转换成流→操作1→操作2→…… 数据源(source):可以是集合.数组等. Stream操作有两个基础特征: Pipelining(流水线):流操作会返回流对象(新的对象),以便后续继续进行流操作. 内部迭代:不需要像for循环或Iterator一样进行显式的迭代. 遍历及过滤集合中的元素 使用传统方…
Stream应用: 继续举例来操练Stream,对于下面这两个集合: 需求是:将这两个集合组合起来,形成对各自人员打招呼的结果,输出的结果如: "Hi zhangsan"."Hi lisi"."Hi wangwu"."Hi zhangliu"; "Hello zhangsan"."Hello lisi"."Hello wangwu"."Hello zhang…
在实际开发过程中,服务与服务之间通信经常会使用到消息中间件,而以往使用了中间件比如RabbitMQ,那么该中间件和系统的耦合性就会非常高,如果我们要替换为Kafka那么变动会比较大,这时我们可以使用SpringCloudStream来整合我们的消息中间件,来降低系统和中间件的耦合性. 一.消息中间的几大应用场景 1.异步处理 比如用户在电商网站下单,下单完成后会给用户推送短信或邮件,发短信和邮件的过程就可以异步完成.因为下单付款是核心业务,发邮件和短信并不属于核心功能,并且可能耗时较长,所以针对…
前言 最近,看了一下关于RMI(Remote Method Invocation)相关的知识,遇到了一个动态代理的问题,然后就决定探究一下动态代理. 这里先科普一下RMI. RMI 像我们平时写的程序,对象之间互相调用方法都是在同一个JVM中进行,而RMI可以实现一个JVM上的对象调用另一个JVM上对象的方法,即远程调用. 接口定义 定义一个远程对象接口,实现Remote接口来进行标记. public interface UserInterface extends Remote {    voi…
HTML DOM 定义了访问和操作 HTML 文档的标准方法. DOM 将 HTML 文档表达为树结构. 文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口.它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式.我们最为关心的是,DOM把网页和脚本以及其他的编程语言联系了起来.DOM属于浏览器,而不是JavaScript语言规范里的规定的核心内容. 一.查找元素 1.直接查找 document.getElementById 根据…
Quick Start Guide: Reactive Tweets 快速入门指南: Reactive Tweets (reactive tweets 大概可以理解为“响应式推文”,在此可以测试下GFW是否还在正常工作 Twitter) A typical use case for stream processing is consuming a live stream of data that we want to extract or aggregate some other data fr…
动机 Motivation The way we consume services from the internet today includes many instances of streaming data, both down- loading from a service as well as uploading to it or peer-to-peer data transfers. Regarding data as a stream of elements instead o…
nodejs stream 手册 https://github.com/jabez128/stream-handbook 在node中,流可以帮助我们将事情的重点分为几份,因为使用流可以帮助我们将实现接口的部分分割成一些连续的接口,这些接口都是可重用的.接着,你可以将一个流的输出口接到另一个流的输入口,然后使用使用一些库来对流实现高级别的控制.(metamask中就是这样,使用了很多流,希望这几天的学习能够让我真正搞懂metamask几个部分之间到底是怎么相互工作的) 为什么应该使用流 在nod…
Stream底层的实现 Stream接口实现了 BaseStream 接口,我们先来看看BaseStream的定义 BaseStream BaseStream是所有流的父类接口. 对JavaDoc做一次解读,了解提供的所有方法. /** * Base interface for streams, which are sequences of elements supporting * sequential and parallel aggregate operations. The follow…
Stream API Java8中有两大最为重要的改变:第一个是 Lambda 表达式:另外一个则是 Stream API(java.util.stream.*). Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找.过滤和映射数据等操作.使用Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数据库查询.也可以使用 Stream API 来并行执行操作.简而言之,Stream API 提供了一种高效且易于使用的处理…
Stream底层的实现 Stream接口实现了 BaseStream 接口,我们先来看看BaseStream的定义 BaseStream BaseStream是所有流的父类接口. 对JavaDoc做一次解读,了解提供的所有方法. /** * Base interface for streams, which are sequences of elements supporting * sequential and parallel aggregate operations. The follow…
学习资料 很久没写博客了.适逢这次Srtp项目学弟学妹们要学习Java与Android,我就总结一些学习的教材.方法,分享写材料与心得.纯个人观点,如有不周之处欢迎指出,大家共同探讨提高. *** 教学书籍: Java基础较差的人去借这本书吧,很简单易懂: Java和Android开发实战详解 这本书供有一定Java基础的人深造: Effective Java中文版 第一本看完基本就可以开始做Android练练手了,Java能有今天一方面是其在服务端领域.商业项目上的成熟,一方面不得不承认是An…