akka-remote介绍

既然akka是构建分布式高并发的计算和运行框架,当然要离不开远程通信,akka的remote模块就是专门支持分布式的远程调用。

说到分布式应用,大家肯定想到以下几个耳熟能详的技术实现

  • RPC(Remote Procedure Call Protocol)
  • Web Service
  • RMI (Remote Method Invocation)
  • JMS(Java Messaging Service)

PRC调用框架或者WS以及RMI都是堵塞式的远程过程调用,请求-响应模式。

JMS是异步通信,发送消息进行通信,在通信过程中,线程不会被阻塞,不必等待请求回应,所以是一个异步操作且是松耦合不需要接口声明,返回的数据类型可以是各种各样,比如JSON,XML等。

JMS的通信方式有两种:

  1. 点对点形式

顾名思义,点对点可以理解为两个服务器的定点通信,发送者和接收者都能明确知道对方是谁,大致模型如下:

  1. 发布-订阅模式

也就是多个消费者可以订阅一个消息如下图所示:

而akka是基于消息的异步的分布式高并发计算框架,既有JMS基于消息的异步调用的特点,又有RPC的请求响应模式,同时它让远程过程调用变得十分简单。

下面是一个具体的AKKA-remote的例子。

创建远程服务端

  1. 首先定义一个remoteActor,和定义本地的actor一样,如下图所示:

  1. 在classpath路径下添加一个application.conf文件,配置该actor系统为提供远程调用功能,如下图示,只需要几个简单配置即可:

  1. 启动该actor,提供远程服务,如下图所示:

我们的名字叫app的akka系统已经提供服务并监听在127.0.0.1:2554上。

创建调用端

  1. 在classpath路径下添加配置文件application.conf,如同创建远程端一样。host和port不能和远程端冲突。

如下图所示:我们在8084端口上创建客户端的通讯端口。

  1. 通过ActorSystem的actorSelection(remotepath)获取远程actor的引用,然后就可以像操作本地actor一样,向它发送消息,如下图所示:

我们启动了客户的系统,并且获取远程actor的引用,并向它投递一个消息。

从以上的步骤和结果看出可以看出,Akka的远程通信跟JMS的点对点模式似乎更相似一点,但是它有不需要我们维护消息队列,而是使用Actor自身的邮箱,另外我们利用context.actorSelection获取的ActorRef,可以看成远程Actor的副本,这个又和RMI相关概念类似,所以说Akka远程通信的形式上像是RMI和JMS的结合,当然底层还是通过TCP、UDP等相关网络协议进行数据传输的,从配置文件的相应内容便可以看出。

akka介绍之-akka-remote介绍相关推荐

  1. java akka_Akka系列(九):Akka分布式之Akka Remote

    Akka作为一个天生用于构建分布式应用的工具,当然提供了用于分布式组件即Akka Remote,那么我们就来看看如何用Akka Remote以及Akka Serialization来构建分布式应用. ...

  2. 【akka】akka源码 Akka源码分析-FSM

    1.概述 转载自己学习,建议直接看原文:Akka源码分析-FSM akka还有一个不常使用.但我觉得比较方便的一个模块,那就是FSM(有限状态机).我们知道了akka中Actor模型的具体实现之后,就 ...

  3. Vue.js-Day03-AM【超级详细:Node.js环境安装、安装淘宝镜像(Win、Mac)、安装Vue脚手架、初始化Vue项目-命令解释(Vscode、命令行窗口)、目录介绍、Vue文件介绍】

    Vue.js实训[基础理论(5天)+项目实战(5天)]博客汇总表[详细笔记] 目   录 1.Node.js-环境安装 1.1.Node.js-详细安装步骤 2.vue-cli脚手架安装 2.1.安装 ...

  4. 中信银行计算机岗位面试自我介绍,中信银行面试自我介绍

    中信银行面试自我介绍 中信银行面试自我介绍如何说,请看下面的指导: 一.第一句话(first word) 见到考官的第一句话,很关键,不用说的很复杂.可以是一个简单句,但一定要铿锵有力. 展示出自信和 ...

  5. 用英语介绍一下计算机专业,“计算机专业英文自我介绍范文” 英语自我介绍...

    "计算机专业英文自我介绍范文"< 英语自我介绍辞职信收藏本站 网站地图 标签云集 首页辞职信范文辞职报告辞职书辞呈范文辞职攻略离职范文求职信劳动保障自荐信自我介绍推荐信辞职咨 ...

  6. 计算机博士英文复试自我介绍,考博英语复试自我介绍7篇自我介绍

    <考博英语复试自我介绍7篇自我介绍>由会员分享,可在线阅读,更多相关<考博英语复试自我介绍7篇自我介绍(6页珍藏版)>请在装配图网上搜索. 1.考博英语复试自我介绍7篇自我介绍 ...

  7. Linux常用命令(本篇包括,Linux目录结构介绍、Linux Shell介绍、9个常见命令介绍、文件的概念、文件的操作(20个)、目录的操作、文件和目录的权限、文件压缩及解压缩)

    Linux常用命令(本篇包括,Linux目录结构介绍.Linux Shell介绍.9个常见命令介绍.文件的概念.文件的操作(20个).目录的操作.文件和目录的权限.文件压缩及解压缩)         ...

  8. 介绍java的ppt_javaweb介绍.ppt

    第一课 JavaWeb介绍 学习里程碑 课程介绍 学完本门课程,你能够: 理解JavaWeb应用概念 使用JSP编写动态服务端端页面 使用Servlet完成客户端请求与转发控制 掌握经典MVC(Mod ...

  9. 大数据介绍、集群环境搭建、Hadoop介绍、HDFS入门介绍

    大数据介绍.集群环境搭建.Hadoop介绍.HDFS入门介绍 文章目录 大数据介绍.集群环境搭建.Hadoop介绍.HDFS入门介绍 1.课前资料 2.课程整体介绍 3.大数据介绍 3.1 什么是大数 ...

  10. 计算机博士英文复试自我介绍,博士复试自我介绍中英文

    博士复试自我介绍中英文 发布时间:2020-04-27 博士复试的自我介绍是不可轻视的一个环节.下面第一范文网小编为你带来博士复试自我介绍中英文的内容,希望你们喜欢. 关于博士复试自我介绍中英文篇一( ...

最新文章

  1. GAN的基本原理、应用和走向
  2. Quartus和Modelsim中使用`include包含头文件的对比
  3. 避免表格table被撑开变形的CSS代码实例
  4. Hadoop生态圈-Hive的自定义函数之UDF(User-Defined-Function)
  5. Android开发基本概念
  6. 正则表达式-趣现象一则
  7. Java虚拟机(JVM)以及跨平台原理
  8. python3精要(30)-深入列表解析
  9. leetcode 52. N皇后 II(回溯)
  10. 基于TCP原理,采用Socket通信技术,实现聊天室
  11. Mongo数据库安装成Windows服务
  12. 铺地毯(信息学奥赛一本通-T1118)
  13. 含有bin的mysql_MySQL 5.7.18 release版安装指南(含有bin文件版本)
  14. Spark常用算子讲解二
  15. java project mybatis,Java使用Mybatis
  16. 银联支付接口常见错误总结
  17. 计算机基础无纸化考试题库,计算机基础考试题库及答案
  18. 数独问题流程图_算法实践——数独的基本解法
  19. Docker入门学习
  20. html开发一个月多少钱,html5前端开发工资一般是多少

热门文章

  1. 【产品经理】对接第三方平台,你应该怎么做?
  2. 电路设计_13.56MHz RFID读写器天线的设计和仿真
  3. 通达信行情接口合法性校验方式?
  4. 雷赛点胶系统功能介绍(主要介绍深度学习目标检测功能)
  5. 链路状态算法实现Java,JAVA基于蚁群算法路由选择可视化动态模拟(开题报告+任务书+毕业论文+外文翻译+源代码+可执行程序+答辩P...
  6. java自定义异常实验总结,Java自定义异常的使用实验代码
  7. 【大数据笔记】- Hadoop MapReduce API
  8. 中国煤焦油市场销售前景与供需规模预测报告2022版
  9. AssemblyInfo.cs文件参数具体讲解
  10. AssemblyInfo.cs文件:包含程序版本、信息、版权的属性文件(转转转)