当前位置: 首页 > news >正文

有关学风建设网站seo网站关键词优化工具

有关学风建设网站,seo网站关键词优化工具,企业网站设计期末考试,廊坊手机网站建设1.什么是Akka remoting? Akka-Remoting一种ActorSystem之间Actor对Actor点对点的沟通协议.通过Akka-Remoting来实现一个ActorSystem中的一个Actor与另一个ActorSystem中的另一个Actor之间的沟通 Akka Remoting限制: 不支持NAT(Network Add…

1.什么是Akka remoting?

Akka-Remoting一种ActorSystem之间Actor对Actor点对点的沟通协议.通过Akka-Remoting来实现一个ActorSystem中的一个Actor与另一个ActorSystem中的另一个Actor之间的沟通

Akka Remoting限制:

  • 不支持NAT(Network Address Translation)
  • 不支持负载均衡器(Load Balancers)

Akka提供了种方式来使用Remoting功能:

  • 通过调用actorSelection方法搜索一个actor,该方法输入的参数的模式为:akka.<protocol>://<actor system>@<hostname>:<port>/<actor path>
  • 通过actorOf方法创建一个actor

下面看一下Remoting系统中故障恢复模型(Failure Recovery Model),如下图所示:

akka-remoting

上图中,连接到一个远程系统的过程中,包括上面4种状态:在进行任何通信之前,系统处于Idle状态;当第一次一个消息尝试向远程系统发送,或者当远程系统连接过来,这时系统状态变为Active;当两个系统通信失败,连接丢失,这时系统变为Gated状态;当系统通信过程中,由于参与通信的系统的状态不一致导致系统无法恢复,这时远程系统变为Quarantined状态,只有重新启动系统才能恢复,重启后系统变为Active状态。

Akka Remoting功能:

Akkaremoting完全配置化了,使用时几乎只需要修改配置文件,除非自定义,否则不需要动一行代码。 remoting包提供了两个功能:

  • 查找一个已存在的远程Actor
  • 在指定的远程路径上创建一个远程Actor

2.代码管理

实验目标

实现客户端和服务端通信

pom.xml

<!-- Akka Streams -->
<dependency><groupId>com.typesafe.akka</groupId><artifactId>akka-stream_2.13</artifactId><version>2.6.0</version>
</dependency>

server

server.conf

akka {actor {provider = "akka.remote.RemoteActorRefProvider"}remote {artery {enabled = ontransport = tcpcanonical.hostname = "127.0.0.1"canonical.port = 2552}}
}
package com.et.akka.remoting;import akka.actor.AbstractActor;
import akka.actor.ActorRef;
import akka.actor.ActorSystem;
import akka.actor.Props;
import com.typesafe.config.ConfigFactory;public class ServerApp {static class ServerActor extends AbstractActor {@Overridepublic Receive createReceive() {return receiveBuilder().match(String.class, msg -> {System.out.println("Server received message: " + msg);getSender().tell("Hello from Server", getSelf());}).build();}}public static void main(String[] args) {ActorSystem system = ActorSystem.create("RemoteSystem", ConfigFactory.load("server"));ActorRef serverActor = system.actorOf(Props.create(ServerActor.class), "serverActor");System.out.println("Server is running...");}
}

client

client.conf

akka {actor {provider = "akka.remote.RemoteActorRefProvider"}remote {artery {enabled = ontransport = tcpcanonical.hostname = "127.0.0.1"canonical.port = 0}}
}
package com.et.akka.remoting;import akka.actor.AbstractActor;
import akka.actor.ActorRef;
import akka.actor.ActorSelection;
import akka.actor.ActorSystem;
import akka.actor.Props;
import com.typesafe.config.ConfigFactory;public class ClientApp {static class ClientActor extends AbstractActor {private final String serverActorPath;public ClientActor(String serverActorPath) {this.serverActorPath = serverActorPath;}@Overridepublic void preStart() {ActorSelection serverActor = getContext().actorSelection(serverActorPath);serverActor.tell("Hello from Client", getSelf());}@Overridepublic Receive createReceive() {return receiveBuilder().match(String.class, msg -> {System.out.println("Client received message: " + msg);}).build();}}public static void main(String[] args) {ActorSystem system = ActorSystem.create("RemoteSystem", ConfigFactory.load("client"));String serverPath = "akka://RemoteSystem@127.0.0.1:2552/user/serverActor";ActorRef clientActor = system.actorOf(Props.create(ClientActor.class, serverPath), "clientActor");System.out.println("Client is running...");}
}

以上只是一些关键代码,所有代码请参见下面代码仓库

代码仓库

  • GitHub - Harries/springboot-demo: a simple springboot demo with some components for example: redis,solr,rockmq and so on.(akka)

3.测试

  1. 启动server
  2. 启动client
  3. 产看日志

server

Server is running...
Server received message: Hello from Client

client

Client is running...
Client received message: Hello from Server

4.引用

  • https://doc.akka.io/docs/akka/current/remoting.html
  • https://doc.akka.io/docs/akka/current/remoting-artery.html#selecting-a-transport
  • Spring Boot集成Akka remoting快速入门Demo | Harries Blog™
http://www.yayakq.cn/news/150201/

相关文章:

  • 网站怎么显示百度名片龙华建站公司
  • 两支队伍建设专题网站王天野演员
  • 潍坊企化网站建设wordpress 网站暂停
  • 如何建立网站做微商网站改版降权多久恢复
  • 域名注册网站 不认证哪儿有做字体设计的网站
  • 小程序网站开发者利网站没备案可以访问吗
  • 深圳律师网站建设精美个人主页
  • 个人工作室的网站哪个网站教做衣服
  • wordpress软件站主题湖南建设工程信息网一体化平台
  • 网站跟软件有什么区别是什么asp.net网站
  • 单页面网站设计网站欣赏一个人做网站要多久
  • 建材商城网站建设网站案例 网站建设
  • flash素材网站珠海网站建设建站模板
  • 做网站需要自备服务器吗自己做的网站怎么调用百度地图
  • 黑龙江建设网站招聘哪个网站做马代路线好
  • 南浔做网站一份完整的网站策划书
  • 网站建设设计制作维护推广普通话绘画
  • 重庆建设教育网站郑州网络建站公司
  • 网站seo优化总结平面网页设计学校
  • 软件下载网站哪个好环保工程 技术支持 东莞网站建设
  • 网站域名注册后怎么建设投诉网站制作
  • 旅游网站建设步骤国内服务器租用
  • 怎么建设销售网站个人网站备案与企业备案
  • 电商网站开发流程代码检测WordPress网站的安全性
  • 网站平台管理优化方案设计辽宁建设工程信息网内容
  • 网页设计如何建立网站网址导航怎么删除
  • 龙泉建设局网站广告设计与制作需要学什么专业
  • 鸿邑网站建设做网站不会写代码
  • 面包机做面包网站莱芜吧 莱芜贴吧
  • 上海企业做网站q版网页游戏大全