Akka.net 性能测试兼使用小技巧
最近想研究一下分布式开发,先拿了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的跨域设计,你客户端请求地址如下
你不可能用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 性能测试兼使用小技巧的更多相关文章
- Loadrunner的Socket脚本关联小技巧
Socket脚本关联小技巧 我们在socket脚本调试的时候经常会遇到很多问题,比如:socket包中繁杂的二进制编码,socket数据如何进行截取,如何对socket数据包进行参数化等等,以下几点内 ...
- LoadRunner小技巧集锦
preftest 性能测试工作室,专注于性能测试技术研究(www.AutomationQA.com) LoadRunner小技巧集锦 1.录制脚本中包含中文,出现乱码怎么办? 把录制选项中的Suppo ...
- 「小技巧」使用Git从其他分支merge个别文件
小明发现在实际项目开发过程中,总会遇到各种各样的情况,比如一个大型的项目或版本迭代可能不是一次上线,可能会分好几次上线,这时候就会涉及创建多个分支,分别开发. 项目背景 产品经理:我们本次开发三个功能 ...
- 前端网络、JavaScript优化以及开发小技巧
一.网络优化 YSlow有23条规则,中文可以参考这里.这几十条规则最主要是在做消除或减少不必要的网络延迟,将需要传输的数据压缩至最少. 1)合并压缩CSS.JavaScript.图片,静态资源CDN ...
- Git小技巧 - 指令别名及使用Beyond Compare作为差异比较工具
前言 本文主要写给使用命令行来操作Git的用户,用于提高Git使用的效率.至于使用命令还是GUI(Tortoise Git或VS的Git插件)就不在此讨论了,大家根据自己的的喜好选择就好.我个人是比较 ...
- 分享两个BPM配置小技巧
1.小技巧 流程图修改后发布的话版本号会+1,修改次数多了之后可能会导致版本号很高,这个时候可以将流程导出,然后删除对应的流程包再导入,发布数据模型和流程图之后,版本清零 2.小技巧 有的同事入职后使 ...
- linux系统维护时的一些小技巧,包括系统挂载新磁盘的方法!可收藏!
这里发布一些平时所用到的小技巧,不多,不过会持续更新.... 1.需要将history创建硬链接ln 全盘需要备份硬链接 ln /etc/xxx /home/xxx 2.root用户不可以远程 /et ...
- JS处理事件小技巧
今天,就分享一下我自己总结的一些JS的小技巧: ①防止鼠标选中事件 <div class="mask" onselectstart="return false&qu ...
- iOS:小技巧(不断更新)
记录下一些不常用技巧,以防忘记,复制用. 1.获取当前的View在Window的frame: UIWindow * window=[[[UIApplication sharedApplication] ...
随机推荐
- 暑假闲着没事第一弹:基于Django的长江大学教务处成绩查询系统
本篇文章涉及到的知识点有:Python爬虫,MySQL数据库,html/css/js基础,selenium和phantomjs基础,MVC设计模式,ORM(对象关系映射)框架,django框架(Pyt ...
- 生成ISO文件
cat /dev/cdrom > image.iso dd if=/dev/cdrom of=image.iso mkisofs -V "Label" -o image.is ...
- Java方法参数的传递方式
程序设计语言中,将参数传递给方法(或函数)有两种方法.按值传递(call by value)表示方法接受的是调用者提供的值:按引用调用(call by reference)表示方法接受的是调用者提供的 ...
- mac air中编译安装swoole
本机php版本, 我的7.3.0 1 下载swoole源码 https://github.com/swoole/swoole-src/releases 我下载的版本是swoole-src-4.3.3. ...
- 模拟登陆github
import requests from lxml import etree class Login(object): def __init__(self): self.headers = { 'Re ...
- day09 详解内存管理机制
""" 今日内容:详解内存管理 1.引用计数 在内存中为了对变量的值进行标记从而方便管理,采用引用计数的方式对变量进行标记. (1)如果变量的值被引用一次,那么该变量的引 ...
- openGL learning
1,basic env in linux : cmake_minimum_required(VERSION 2.8) project(CP_01) set(GLFW_HOME /home/gearsl ...
- ajax上传文件显示进度
下面要做一个ajax上传文件显示进度的操作,文末有演示地址 这里先上代码: 1.前端代码 upload.html <!DOCTYPE html> <html lang="e ...
- iptables系列
详情请参考:http://www.zsythink.net/archives/tag/iptables/page/2/
- QT windeployqt
qt发布release版本时需要打包一些dll,需要哪些呢?请看截图: 在qt的安装包下找到这些文件,放在release文件夹下即可,当然有些时候也会需要一些其他的,比如含有串口的程序还需要加入Qt5 ...