最近想研究一下分布式开发,先拿了akka.net 跑一下性能

参考自己写个网络实现,一般在本机通讯,300M每秒的传输率,作为参考

嗯,先说结果,用Akka.net直接发bytearray,最后也只有40M每秒的传输率。

所以高性能场合不适用。

另外akka.net remote 有个小小的问题

Akka.net 的 服务一侧配置如下

remote {

dot-netty.tcp {

port = 8090

hostname = 0.0.0.0

}

}

此时纵有千般武艺你也不可能连的进来

因为

Akka.net 有一个类似http的跨域设计,你客户端请求地址如下

"akka.tcp://server@10.1.1.176:8090/user/Echo";

你不可能用0.0.0.0 做请求地址吧。

就算 从服务一侧 指定 public_hostname 还是有一个问题

一个服务器只能对应一个域名

这在调试时非常不便,我有一个服务。

我就想

"akka.tcp://server@127.0.0.1:8090/user/Echo";

"akka.tcp://server@localhost:8090/user/Echo";

"akka.tcp://server@10.1.1.176:8090/user/Echo";

这三种方式都能访问

现在的akka是做不到的,除非你用我这个办法

static void AddAkkaRemoteHost(ActorSystem system, string[] morehost = null)

{

var ext = system as ExtendedActorSystem;

IRemoteActorRefProvider provider = ext.Provider as IRemoteActorRefProvider;

var addrs = provider.Transport.Addresses;

var addrslist = addrs.GetEnumerator();

addrslist.MoveNext();

Address first = addrslist.Current;

if (first.Host != "localhost")

addrs.Add(new Address(first.Protocol, first.System, "localhost", first.Port));

if (first.Host != "127.0.0.1")

addrs.Add(new Address(first.Protocol, first.System, "127.0.0.1", first.Port));

if (morehost != null)

{

foreach (var host in morehost)

{

if (first.Host != host)

addrs.Add(new Address(first.Protocol, first.System, host, first.Port));

}

}

}

using (var system = ActorSystem.Create("server", config))

{

AddAkkaRemoteHost(system, new string[] { "10.1.1.176" });

system.ActorOf(

Props.Create(

() => new ChatServerActor()

)

, "Echo"

);

Console.ReadKey();

}

你能从这里获取代码

https://github.com/lightszero/akka.learn

Akka.net 性能测试兼使用小技巧的更多相关文章

  1. Loadrunner的Socket脚本关联小技巧

    Socket脚本关联小技巧 我们在socket脚本调试的时候经常会遇到很多问题,比如:socket包中繁杂的二进制编码,socket数据如何进行截取,如何对socket数据包进行参数化等等,以下几点内 ...

  2. LoadRunner小技巧集锦

    preftest 性能测试工作室,专注于性能测试技术研究(www.AutomationQA.com) LoadRunner小技巧集锦 1.录制脚本中包含中文,出现乱码怎么办? 把录制选项中的Suppo ...

  3. 「小技巧」使用Git从其他分支merge个别文件

    小明发现在实际项目开发过程中,总会遇到各种各样的情况,比如一个大型的项目或版本迭代可能不是一次上线,可能会分好几次上线,这时候就会涉及创建多个分支,分别开发. 项目背景 产品经理:我们本次开发三个功能 ...

  4. 前端网络、JavaScript优化以及开发小技巧

    一.网络优化 YSlow有23条规则,中文可以参考这里.这几十条规则最主要是在做消除或减少不必要的网络延迟,将需要传输的数据压缩至最少. 1)合并压缩CSS.JavaScript.图片,静态资源CDN ...

  5. Git小技巧 - 指令别名及使用Beyond Compare作为差异比较工具

    前言 本文主要写给使用命令行来操作Git的用户,用于提高Git使用的效率.至于使用命令还是GUI(Tortoise Git或VS的Git插件)就不在此讨论了,大家根据自己的的喜好选择就好.我个人是比较 ...

  6. 分享两个BPM配置小技巧

    1.小技巧 流程图修改后发布的话版本号会+1,修改次数多了之后可能会导致版本号很高,这个时候可以将流程导出,然后删除对应的流程包再导入,发布数据模型和流程图之后,版本清零 2.小技巧 有的同事入职后使 ...

  7. linux系统维护时的一些小技巧,包括系统挂载新磁盘的方法!可收藏!

    这里发布一些平时所用到的小技巧,不多,不过会持续更新.... 1.需要将history创建硬链接ln 全盘需要备份硬链接 ln /etc/xxx /home/xxx 2.root用户不可以远程 /et ...

  8. JS处理事件小技巧

    今天,就分享一下我自己总结的一些JS的小技巧: ①防止鼠标选中事件 <div class="mask" onselectstart="return false&qu ...

  9. iOS:小技巧(不断更新)

    记录下一些不常用技巧,以防忘记,复制用. 1.获取当前的View在Window的frame: UIWindow * window=[[[UIApplication sharedApplication] ...

随机推荐

  1. python3导入sqlite3报错

    今天把本地运行OK的scrapy爬虫程序捣鼓到服务器上运行,结果报了以下错误 2018-10-11 19:00:19 [twisted] CRITICAL: Unhandled error in De ...

  2. 微信小程序常见的坑

    wxml的标签跟html里面的一些标签是一样的,比如view标签相当于div标签,text标签相当于span标签. 在微信小程序中,表单元素都是原生组件,微信小程序中原生组件层级最高,所以在用inpu ...

  3. java实现多个文件以压缩包导出到本地

    描述:使用java将多个文件同时压缩为压缩包,并导出到本地 /** *压缩文件并导出 */ public static void zipFiles() throws IOException { Fil ...

  4. shell编程练习-打印九九乘法表(附:awk编程)

    小练习,仅供参考 shell编写 #!/bin/bash for i in {1..9}do for j in {1..9} do if [ $j -le $i ] ;then echo -ne &q ...

  5. 在虚拟机里连接PLC S7-200

    1-使用PPI线连接 这次选择了在虚拟机里面来调试PLC,s7-200的型号是214-2AD23-0XB8 ,连接线是在淘宝上卖的(连接),在虚拟机里面试的时候没有反应,如下 在设备管理器里面观察,在 ...

  6. Python爬虫基础之BeautifulSoup

    一.BeautifulSoup的基本使用 from bs4 import BeautifulSoup from bs4 import SoupStrainer import re html_doc = ...

  7. 【原创】大数据基础之Logstash(4)高可用

    logstash高可用体现为不丢数据(前提为服务器短时间内不可用后可恢复比如重启服务器或重启进程),具体有两个方面: 进程重启(服务器重启) 事件消息处理失败 在logstash中对应的解决方案为: ...

  8. MUI之App开发

    一般开发APP分为两种:1.原生ios和android语言开发.2.混合开发,里边穿插h5的东西. 3.第三种:现在因为前端用hbuilder工具开发的情况越来越多,这家公司又提供了更多的选择,所以近 ...

  9. js数据结构与算法——集合

    <script> function Set(){ var items = {};//使用对象表示集合,因为js对象不允许一个键指向两个不同的值,保证集合里面的匀速唯一性 this.add ...

  10. IntelliJ IDEA设置svn.exe的路径

    安装TortoiseSVN客户端时,必须选中command line client tools这个选项