最近想研究一下分布式开发,先拿了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. jvm经典文章整理

    Java中JVM虚拟机详解 Java GC的那些事(上)(博主还有很多文章都很经典) CMS垃圾收集器介绍

  2. Python-re模块中一些重要函数

    re模块包含对正则表达式的支持.

  3. JavaScript在div后添加删除div

    var idd = 'str'; $('.task-done-detail-content-p7').click(function () { var id = this.id; if(idd !== ...

  4. 深入web的请求过程

    一.深入web的请求过程 1.1.B/S网络架构概述 · 从前端到后端,都基于应用层协议HTTP来交互数据.一个请求就对应了一个操作,完成操作之后就断开了连接.基于这样的特点可以用来满足海量的用户的操 ...

  5. slim.arg_scope中python技巧

    slim.arg_scope函数说明如下: Stores the default arguments for the given set of list_ops. For usage, please ...

  6. 【Android手机测试】OOM

    当大多数应用程序都消耗完自己的内存的时候,因为这些应用程序的内存需求加起来超出了物理内存(包括swap)的容量,内核(OOM killer)必须杀掉一些进程才能腾出空间保障系统正常运行 Linux内核 ...

  7. Ansible运维自动化工具19个常用模块使用实例【转】

    一.模块列表 1.setup 2.ping 3.file 4.copy 5.command 6.shell 7.script 8.cron 9.yum 10.service 11.group 12.u ...

  8. ABP core学习之一 使用Mysql数据库

    修改项目EntityFrameworkCore的相关内容 1.添加类库 使用nuget包管理器,添加Pomelo.EntityFrameworkCore.MySql 2.TradeErpDbConte ...

  9. XPath Helper使用教程

    下载地址 百度网盘下载密码:yuuv下载完成后选择保留 安装 在导航栏中输入chrome://extensions:将.crx文件拖拽到扩展程序页面中,勾选已启用按钮. 使用 重启浏览器,快捷键CTR ...

  10. 快速搭建Docker Registry私有仓库

    前提条件: 服务器已经安装Docker(我的服务器是CentOS 7) 服务器已经安装Docker Compose 满足以上条件时就可以开始搭建了: 1. 生成用户密码文件:(运行下面命令后会在当前目 ...