Archive for the ‘ akka ’ Category

小规模的流处理框架.Part 1: thread pools

原文链接 作者:Tomasz Nurkiewicz 译者:simonwang
(译者:强力推荐这篇文章,作者设计了一个用于小流量的流式数据处理框架,并详细给出了每一个需要注意的设计细节,对比了不同设计方案的优缺点,能够让你对流处理过程,某些设计模式和设计原则以及指标度量工具有一个更深刻的认识!)
GeeCON 2016上我为我的公司准备了一个编程竞赛,这次的任务是设计并实现一个能够满足以下要求的系统:
Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 小规模的流处理框架.Part 1: thread pools

Akka简单性能分析

因为最近工作的关系,要把异步任务从应用服务器中拆分到专门的异步处理服务器中。

方案一

是采用MQ的方式将任务消息发出,在服务端进行处理,如下图所示:

Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Akka简单性能分析

AKKA文档(java版)—容错

原文链接  译者:小鱼

正如角色系统这一章中解释的一样,每一个角色都是它孩子的监管者,并且像这样的角色都会定义错误处理监管策略。这个策略在成为角色系统结构的一个完整部分之后是不能被改变的。

Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: AKKA文档(java版)—容错

AKKA文档(JAVA版)—派发器

原文地址  译者:Zhanggc

派发器

Akka MessageDispatcher 是维持 Akka Actor “运作”的部分, 可以说它是整个机器的引擎. 所有的MessageDispatcher 实现也同时是一个 ExecutionContext, 这意味着它们可以用来执行任何代码, 例如 Future.

Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: AKKA文档(JAVA版)—派发器

AKKA文档(Java版)—建立有限状态机角色

原文地址  译者:Zhanggc

建立有限状态机角色

概述

有限状态机模式在Erlang design principles里面被很好描述出来.简而言之,它可以被视为一组关系:
State(S) x Event(E) -> Actions (A), State(S’)

这些关系描述为:

如果我们在状态S 和 时间E 发生,我们应该执行动作A 与转换到状态S’.

而Scala 程序语言使构建一个良好内部DSL(领域特定语言)成为可能,后者用于规划有限状态机(请见FSM)。对于用同样方法,由于Java语法冗长不适合构建。本章节介绍通过自身训练效实现相同关注点分离方法。

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: AKKA文档(Java版)—建立有限状态机角色

Akka笔记之请求与响应

英文原文链接译文链接,原文作者:Arun Manivannan ,译者:有孚

前面我们讲到了Actor的消息传递,并看到了如何发送一条fire-n-forget消息(也就是说,消息发送给Actor后我们就不管了,不从Actor那接收响应)。

Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Akka笔记之请求与响应

Akka笔记之日志及测试

英文原文链接译文链接,原文作者:Arun Manivannan ,译者:有孚

在前两篇笔记中(第一篇第二篇),我们简单地介绍了一下Actor以及它的消息传递是如何工作的。在本篇中,我们将看下如何解决TeacherActor的日志打印及测试的问题。

Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Akka笔记之日志及测试

Akka笔记之消息传递

英文原文链接译文链接,原文作者:Arun Manivannan ,译者:有孚

在Akka笔记第一篇的介绍中,我们大致介绍了下Akka工具箱中的Actor。在第二篇当中,我们来看一下Actor消息传递的功能。这里还是延用之前使用的那个学生-老师的例子。

在Actor消息的第一部分中,我们会创建一个老师的Actor,但学生Actor则先不创建,而是使用一个叫做StudentSimulatorApp的主程序。

Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Akka笔记之消息传递

Akka笔记之Actor简介

英文原文链接译文链接,原文作者:Arun Manivannan ,译者:有孚

写过多线程的人都不会否认,多线程应用的维护是件多么困难和痛苦的事。我说的是维护,这是因为开始的时候还很简单,一旦你看到性能得到提升就会欢呼雀跃。然而,当你发现很难从子任务的错误中恢复或者有些僵尸BUG很难复现再或者你的分析器显示你的线程在写入一个共享状态前大部分时间都浪费在阻塞上面的时候,痛苦降临了。

我刻意没提Java的并发API,以及它里面的集合类使得多线程编程变得多么轻松简单,因为我相信既然你们点进了这篇文章,那就说明你希望能更好地控制你的子任务,或者你就是不喜欢使用锁以及同步块,希望能有一种更高层次的抽象。

Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Akka笔记之Actor简介

AKKA文档(java版)—角色

原文地址  译者:Zhanggc      审校:吴京润

角色

角色模型对编写并发、分布式系统进行了高度抽象。它减轻了开发者必须对互斥锁与线程管理的负担,更容易编写出正确的并发与并行系统。早在1973 年 Carl Hewitt 发表的论文中定义了角色,但一直流行于Erlang 语言中,随后被爱立信公司应用于建立高并发、可靠通信系统,取得了巨大成功。

Akka 框架里面角色的API 跟Scala 框架里面角色相似,后者一些语法曾经模仿Erlang语言。

Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: AKKA文档(java版)—角色

AKKA文档(java版)—角色的引用、路径和地址

原文:http://doc.akka.io/docs/akka/2.3.6/general/addressing.html  译者:小鱼    审校者:吴京润

2.5 角色的引用、路径和地址

这一章描述,角色在一个有可能是分布式的角色系统中是如何被识别和定位的。它关系到了角色系统形成的内在监管层级以及角色跨越多个网络节点之间通信的位置透明化。 Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: AKKA文档(java版)—角色的引用、路径和地址

Akka与Java内存模型的关系

原文链接:http://doc.akka.io/docs/akka/2.3.6/general/jmm.html   译者:clearity

不管你使用的Typesafe系统是Scala版本还是Java版本,都可以使你编写并发程序的过程变得更加容易。这篇文章主要讨论的是Typesafe系统,特别是针对Akka在并发程序中对共享内存的处理部分。

Java内存模型

在之前的Java 5 版本中,Java内存模型的定义是很值得商榷的。以至于在共享内存环境下的多线程处理的结果变得多种多样,比如:

  1. 线程读取不到其他线程写入的值:内存可见性问题
  2. 线程得到了其他线程的“非正常”行为,这也是因为底层指令没有按照期望的顺序执行的结果:指令重排序问题

Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Akka与Java内存模型的关系

AKKA文档(java版)—位置透明性

原文:http://doc.akka.io/docs/akka/2.3.6/general/remoting.html  译者:小鱼

2.6 位置透明性

前一章节描述了如何使用角色路径来实现位置透明性。这一个特性应该需要一些额外的说明,因为与之关联的术语“transparent remoting”(透明的远程处理)在编程语言、平台和技术中的用法是不一样的。 Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: AKKA文档(java版)—位置透明性

AKKA文档(java版)—什么是角色

原文: http://doc.akka.io/docs/akka/2.3.5/general/actors.html 译者:Vitas
2.3 什么是角色?
前面角色系统一节介绍了一群角色如何形成一个层次结构,并且介绍了角色是构建应用程序的最小单位。本节我们将角色拿出来单独介绍,解释一些你在使用它的过程中可能遇到的概念。对于一些更深入的细节,将会在后面的章节中详细介绍。
你可以将角色想象成一个容器,它其中包括状态,行为,一个信箱,子角色以及一个监管策略。所有这些都封装在一个角色引用中。本节的最后介绍一个角色什么时候终结。

Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: AKKA文档(java版)—什么是角色

Akka文档(java版)-为什么选择Akka

原文: http://doc.akka.io/docs/akka/2.3.6/intro/why-akka.html 译者:Vitas Wang

1.2 为什么选择Akka?

1.2.1 与同类其它产品相比,Akka平台有什么过人之处呢?

Akka 提供可伸缩的实时事务处理能力。

Akka在以下方面提供了一致的运行时和编程模型:

  • 纵向扩展性(并发)
  • 横向扩展性(远程调用)
  • 容错性

由于Akka的高内聚性和连贯的语义,学习和管理就成了一件事。

Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Akka文档(java版)-为什么选择Akka

return top