锁定老帖子 主题:纯Java的高性能长连接RPC解决方案
精华帖 (5) :: 良好帖 (0) :: 新手帖 (2) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2013-01-21
dragonsoar 写道 sniffer123 写道 单机支持50W连接吗??
支持,具体的优化方式在我的空间里面有 里面那些系统参数的设置麻烦能不能解释下? |
|
返回顶楼 | |
发表时间:2013-01-23
最后修改:2013-01-23
支持一吧,顺便问下 看了有些的RPC框架,底层通讯是借助消息中间件比如 ActiveMq 或者 redis之类的做数据交换,和你的这种底层基于netty的 两者有什么差别呢? 性能上那种更好
|
|
返回顶楼 | |
发表时间:2013-01-23
2350054 写道 支持一吧,顺便问下 看了有些的RPC框架,底层通讯是借助消息中间件比如 ActiveMq 或者 redis之类的做数据交换,和你的这种底层基于netty的 两者有什么差别呢? 性能上那种更好
1. 性能上确实是有不小的差距,activemq我测试了,2K数据性能在3000不到 2. redits做数据交换的和这个我感觉没有太直接的关系,所以不太好说这个和远程通讯的关系 远程通迅就是想方便,简单的使用。所以我个人的原则是支持越少依赖越好了 |
|
返回顶楼 | |
发表时间:2013-01-23
HsfConnector connector = new HsfConnectorImpl();
connector.connect(AddressUtil.parseAddress("127.0.0.1:8088")); TestService testService = ServiceProxyFactory.getRoundFactoryInstance(connector).wrapSyncProxy( TestService.class); testService.test("Hello World"); 看了下 调用代码,客户端需要知道服务部署的IP地址吗? 如果testService 部署带10台机器上,客户端需要知道所有IP,依次connect? |
|
返回顶楼 | |
发表时间:2013-01-23
2350054 写道 HsfConnector connector = new HsfConnectorImpl();
connector.connect(AddressUtil.parseAddress("127.0.0.1:8088")); TestService testService = ServiceProxyFactory.getRoundFactoryInstance(connector).wrapSyncProxy( TestService.class); testService.test("Hello World"); 看了下 调用代码,客户端需要知道服务部署的IP地址吗? 如果testService 部署带10台机器上,客户端需要知道所有IP,依次connect? 是的 |
|
返回顶楼 | |
发表时间:2013-01-24
dragonsoar 写道 yunnysunny 写道 说白了通信的数据是二进制的,换成其他语言还得自己封装代码来解析数据包。感觉这是和webservice最大的区别。
是的 不知道你通信的时候,有没有对象序列化的操作,如果有这种操作,非java语言再反序列化的话太困难了。 |
|
返回顶楼 | |
发表时间:2013-01-24
yunnysunny 写道 dragonsoar 写道 yunnysunny 写道 说白了通信的数据是二进制的,换成其他语言还得自己封装代码来解析数据包。感觉这是和webservice最大的区别。
是的 不知道你通信的时候,有没有对象序列化的操作,如果有这种操作,非java语言再反序列化的话太困难了。 刚才我看了,里面有个org.summercool.hsf.serializer.Serializer接口,我只需实现它,然后自定义一个SerializeDownstreamHandler和DeserializeUpstreamHandler即可。估计可以将其序列化成json字符串。 |
|
返回顶楼 | |
发表时间:2013-01-25
yunnysunny 写道 yunnysunny 写道 dragonsoar 写道 yunnysunny 写道 说白了通信的数据是二进制的,换成其他语言还得自己封装代码来解析数据包。感觉这是和webservice最大的区别。
是的 不知道你通信的时候,有没有对象序列化的操作,如果有这种操作,非java语言再反序列化的话太困难了。 刚才我看了,里面有个org.summercool.hsf.serializer.Serializer接口,我只需实现它,然后自定义一个SerializeDownstreamHandler和DeserializeUpstreamHandler即可。估计可以将其序列化成json字符串。 是的 |
|
返回顶楼 | |
发表时间:2013-06-04
你的boss和worker线程池,这部分功能在哪里看到?
|
|
返回顶楼 | |
发表时间:2013-06-05
yunnysunny 写道 你的boss和worker线程池,这部分功能在哪里看到?
刚才看了一下源码,org.summercool.hsf.netty.service.AbstractHsfService(Executor, Executor, int),但是不知道怎么使用。 还有你的org.summercool.hsf.netty.service.AbstractHsfService(Executor, Executor, int)函数调用时,要依赖kryo-1.04.jar和minlog-1.2.jar。但是我是多语言之间进行通信,数据格式使用的是json,我不需要kryo;并且我的日志是使用的log4j,我也不需要minlog。 建议楼主将代码转移到github上,这样才利于其他人贡献代码。 |
|
返回顶楼 | |