JavaOne 2012:向上,向上和向外:使用Akka扩展软件

在最后的社区主题演讲后,我前往希尔顿金门大桥3/4/5观看了维克多·巴生 ( Viktor Klang )的( Typesafe )“上,下,外:Akka”演讲。 巴生(Klang)是Akka的技术主管。 Akka是“ 瑞典北部的美丽山峰 ”,是女神 ,也是基于Scala的“工具箱和运行时,用于在JVM上构建高度并发,分布式且容错的事件驱动应用程序”。 Akka不仅是Scala专有的,而且可以“从Java今日使用”。 与Scala一起使用Akka确实可以让您做一些与Java一起使用Akka不能做的事情。

许多大型公司都使用Akka解决实际问题。 Akka旨在向多个方向恐吓并提供极大的灵活性。 Akka的目标之一是“管理系统过载”。

Akka使用Actors:“ Akka的代码组织单位”。 根据巴生的说法,“ Actor可帮助您创建并发,可伸缩和容错的应用程序。” 行为者“保持许多与业务逻辑分离的”政策决策”。 演员起源于1970年代(“就像计算机科学中所有很酷的东西一样”),而Erlang多年来一直在使用具有“巨大成功”的演员。

巴生警告说,避免“以共享状态来思考,即泄漏的抽象”。 他补充说,线程和锁是“一种执行手段”,而不是结构化的手段。 他说,这将执行与业务逻辑混合在一起。 并发收集是针对本地使用的良好优化。

演员是“按设计分配的”,而巴生有一张幻灯片,列出了几个解释该声明的项目符号。 他指出,参与者可以替代“线程”,“对象实例”,“回调或侦听器”,“单例或服务”,“路由器,负载均衡器或池”,“ Java EE”。会话Bean或消息驱动Bean,“进程外服务”和“有限状态机”。

巴生引用了卡尔•休伊特关于演员的录像带 。 演员是“体现了几个关键特征的基本计算单位”。

巴生在演示中以我喜欢的格式显示了代码示例:嵌入到他的幻灯片中并突出显示了颜色语法。 他显示了步骤0(“定义”),其中他的代码定义了Actor的类和Actor的行为。

定义后,第一个操作(I –“创建”)“创建Actor的新实例”。 所创建的Actor非常轻巧,其“状态和行为彼此无法区分”。 他把最后一点讲到了:“观察状态的唯一方法是通过向演员发送消息并查看演员的反应。” Actor是状态,行为和消息队列的“非常强大的封装”。

Akka提供了一个ActorSystem来创建Akka Actor实例。 实例Props ,因为演员需要道具提供给演员。

第2步(“发送”)涉及“向演员发送消息”和“一切都以反应方式发生”和“一切都是异步且无锁的”。 Akka通过演员的tell方法支持“即发即弃”模式。 但是,Akka提供有保证的交货顺序。 回复是在Akka中使用getSender().tell()

第3步(“成为”)“重新定义了演员的行为”,并且“通过接收消息做出反应”。 人们可能想在运行时更改actor行为的原因包括支持将竞争激烈的actor转换为actor池或实现正常降级。

演员可以监督其他演员,进入步骤4(“ SUPERVISE”)。 “保护者检测并响应其监督的Actor的故障”,巴生表示这转化为“干净的分离,处理和错误处理”。

Klang谈到了“ Java,C和C#中的故障管理”,在这里您“被赋予了单一的控制线程”。 他以这种方式将其放在子弹中:“如果这根线炸毁,您就被拧死了。” 这意味着所有“显式错误处理”都在“单线程内”完成,并与业务代码“纠缠”在一起。

巴生表示,处理错误处理的方法是将错误处理推离业务逻辑。 然后,他引用了洋葱层错误内核 。 巴生谈到了为Actor处理失败提供的回调( preRestartpostRestart )。

路由器是Actor的特例。 巴生使用RoundRobinRouter显示了一张带有代码的RoundRobinRouter 。 他还展示了能够在配置文件中的代码之外定义部署方案,并使用路径从代码中引用该方案。 他进一步举例说明了“远程部署”的代码,该代码指定了带有“ akka”协议,主机名和端口的URL。

到目前为止,巴生提出的所有内容都可以作为Akka 2.0使用。 巴生表示,即将发布的Akka 2.1中将会有Akka集群。 他要求提供反馈,以确保Akka 2.2中的群集可以使用正确的API和正确的功能。 规范 ,用户指南和代码本身提供了有关Akka群集的更多信息。

Akka 2.1还具有基于Apache Camel的 Akka Camel 。 Typesafe控制台也可用于监视Akka应用程序,并且有此应用程序的实时演示 。

参考: JavaOne 2012:向上,向上和向外:来自JCG合作伙伴 Dustin Marx的Akka与Akka一起扩展软件 ,该文件来自Inspired by Actual Events博客。


翻译自: https://www.javacodegeeks.com/2012/10/javaone-2012-up-up-and-out-scaling.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/371427.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华北科技学院计算机期末考试,华北科技学院 专业计算机 考试专用

1不能应用修剪命令“trim”进行修剪的对象是(D、文字) 。2. 命令行(B.不能随意移动)3. 布尔运算中差集的热键为(A.SU)4. 定距等分点用( C.DIST)命令5. 标高是以( B.厘米) 为单位6. 在建筑平面图中用以指明朝向的是( B.指北针)7. A3图纸的尺寸是( c.420x297)8. 既可以绘制直线&a…

redux-plain-english-workflow

https://quickleft.com/blog/redux-plain-english-workflow/转载于:https://www.cnblogs.com/skating/p/6495384.html

Spring测试支持和上下文缓存

Spring为单元测试和集成测试提供了全面的支持-通过注释来加载Spring应用程序上下文,并与JUnit和TestNG等单元测试框架集成。 由于为每个测试加载大型应用程序上下文需要时间,因此Spring智能地为测试套件缓存应用程序上下文–通常,当我们通过a…

perl6正则 4: before / after 代码断言: ?{} / !{}

<?before> <? befor XXX> 某字符在 xxx 之前 <?after > <?after XXX> 某字符之后有XXX 对应的取反分别为: <!before > <!before XXX> XXX之前没有 <!after> <!after xxx> 某字符后面不是 xxx say "foobar" ~~…

mac 下JDK 与 tomcat 的安装与配置

一.Mac下JDK的安装 1.先检测Mac是否已经安装过JDK&#xff0c;在终端中输入java 或者 javac 显示说明&#xff0c;表明已经安装过JDK&#xff0c;JDK版本查询终端键入java &#xff0d;version&#xff0c;终端会返回JDK的版本号。 2.如果没有安装JDK&#xff0c;登陆 http://w…

新型发明创造大赛计算机类,2017年发明杯全国高职高专大学生创新创业大赛

以“发明创新实现梦想、创意创业改变生活”主题活动为依托&#xff0c;把课内与课外教育相结合&#xff0c;学校教育、家庭教育与社会教育相结合&#xff0c;培养广大在校大学生的科技创新意识和实践动手能力&#xff0c;激发他们设计创造的乐趣&#xff0c;使广大大学生大胆创…

如何写出安全的API接口(参数加密+超时处理+私钥验证+Https)- 续(附demo)

转载&#xff1a;http://www.cnblogs.com/codeon/p/6123863.html 上篇文章说到接口安全的设计思路&#xff0c;如果没有看到上篇博客&#xff0c;建议看完再来看这个。 通过园友们的讨论&#xff0c;以及我自己查了些资料&#xff0c;然后对接口安全做一个相对完善的总结&#…

PrimeFaces在GlassFish 3.1.2.2上推动大气

PrimeFaces 3.4在三天前问世。 除了通常令人敬畏的新组件和更新组件之外&#xff0c;它还包括新的PrimeFaces Push框架。 基于Atmosphere&#xff0c;这为您的应用程序提供了简单的推送机制。 这是在最新的GlassFish 3.1.2.2上配置和运行它的方法。 准备工作 像往常一样&#…

部分视图跳转

var album GetDailyDeal(); return PartialView("_DailyDeal", album); 通过NuGet需要添加microsoft.jquery.unobtrusive.ajax 方法一 在BundleConfig.cs 里添加 bundles.Add(new ScriptBundle("~/bundles/jqueryajax").Include("~/Scripts/jquery…

计算机二级目录设置,word2设置标题格式,生成目录,奇偶页设置等等,适用考计算机二级办公软件,也适用于毕业论文格式设置...

word2设置标题格式,生成目录,奇偶页设置等等,适用考计算机二级办公软件,也适用于毕业论文格式设置 这是第2部分word资料 , 跟之前的第一部份word资料合为一份第二题2、在正文前按序插入节&#xff0c;使用“引用”中的目录功能&#xff0c;生成如下内容&#xff1a;(1) 第1节&a…

JBoss AS 7类加载说明

这是示例章节&#xff0c;摘自Francesco Marchioni编辑的JBoss AS 7 Configuration Deployment and Administration一书&#xff0c;该书正在运行一个名为mastertheboss.com的JBoss门户。 根据Java EE规范的要求&#xff0c;理想情况下&#xff0c;应用程序服务器应为其部署的应…

打印机 共享 问题

1 用户提报无法打印&#xff0c;经查被共享打印机无法联网&#xff0c;先检查网线是否正常&#xff08;换其他电脑是否能行&#xff09;&#xff0c;再检查交换机是否正常&#xff0c;经查交换机需要重启&#xff0c;然后解决问题。 2 被共享机器为32位操作系统&#xff0c;其余…

CoordinatorLayout 中ToolBar遮挡RecyclerView的内容

解决方法:在RecyclerView中添加 app:layout_behavior"string/appbar_scrolling_view_behavior"参考资料:http://stackoverflow.com/questions/32855889/content-behind-coordinatorlayout-appbarlayout 转载于:https://www.cnblogs.com/niluogege/p/6511094.html

兵团职称计算机准考证查询,兵团初级会计准考证打印入口官网

兵团初级会计准考证打印入口官网为财政部会计资格评价中心网(http://kzp.mof.gov.cn)。准考证打印时间在4月16日前公布&#xff0c;考生需要在规定时间登录财政部会计资格评价中心网(http://kzp.mof.gov.cn)下载并打印准考证。未在上述时限内下载打印准考证的&#xff0c;视作放…

用于集成测试的Maven Cargo插件

在项目生命周期中&#xff0c;非常普遍的需求是设置集成测试。 幸运的是&#xff0c;Maven具有针对此确切方案的内置支持&#xff0c;具有默认构建生命周期的以下阶段&#xff08;来自Maven 文档 &#xff09;&#xff1a; 集成前测试 &#xff1a; 执行集成测试之前所需的操作…

jquery-文档操作

1.text() 设置或返回元素的text值 <div id"divname">old text</div> $(#divname).text("new text"); 将改变显示的old为new [1] 参考w3scholl文档操作 转载于:https://www.cnblogs.com/hellokittyblog/p/9128397.html

bzoj 4259: 残缺的字符串

这题好神啊&#xff0c;居然是fft&#xff0c;表示一直在往数据结构上想。 把*当成0&#xff0c;那么两个串可以匹配当且仅当$$\sum (a[i]-b[i])^2\times a[i]\times b[i]0$$ 我们可以把平方拆开&#xff0c;然后就变成了几个乘积相加的形式&#xff0c;那就大力翻转一个串然后…

录屏时计算机休眠,硬盘录像机里硬盘提示休眠,什么意思?

休眠&#xff0c;电脑内存中的数据写入硬盘&#xff0c;关闭电脑。重新启动的时候重新将数据加载到内存中&#xff0c;恢复休眠前状态。睡眠&#xff0c;和休眠一个意思&#xff0c;98系统下叫睡眠。xp系统叫休眠。98系统睡眠时&#xff0c;内存数据写入虚拟内存&#xff0c;xp…

MySQL数据库的基本操作

-- 连接mysql 数据库(前提是配置好MySQL数据库的环境变量&#xff0c;加入path)mysql -uroot -p -- 设置文本的输入输出编码&#xff1a;cmd 使用的是gbk&#xff0c;不然显示乱码set names gbk; -- 创建数据库create database mydatabase charset utf8; -- 创建用户 user001cr…

使用NoSQL实施实体服务–第5部分:使用云提高自治性

在先前的文章中&#xff0c;我讨论了如何通过结合使用Java Web Services &#xff0c; Java EE和CouchDB NoSQL数据库为产品构建SOA“实体”服务。 在本系列的最后一篇文章中&#xff0c;我将利用我已经创建的一些技术资产&#xff0c;并使用一些流行的SOA模式实现一些新的用户…