-
Notifications
You must be signed in to change notification settings - Fork 390
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
请教一下性能的问题 #28
Comments
可以安装 hprose-pecl 来提高序列化、反序列化的性能。这个对于数据比较大的复杂数据性能提升很明显。 然后就是用 hprose-swoole 来做服务器,可以避免创建多个客户端,只需要一个客户端就可以代理所有请求了。 |
需要在每台服务器上安装hprose-pecl、swoole扩展吗?我用hprose的出发点是为了避免其他项目的服务器需要安装各种扩展 |
用到 hprose 的服务器安装 hprose-pecl,使用 php-fpm 的客户端不需要安装 swoole 扩展,这两个扩展安装都很容易直接使用:
命令安装就可以了。 |
swoole的客户端不装swoole扩展好像不行吧?你的意思是做http接口给其他项目调用? |
swoole的客户端只能用于命令行下面,在 php-fpm 下面只能使用 hprose-php 下面的客户端,这里面也有 TCP 客户端的。hprose-php 的 TCP 客户端(这个客户端不需要扩展)同样可以连接 swoole 的 TCP 服务器。 |
多谢大神耐心指导,"用 hprose-swoole 来做服务器,可以避免创建多个客户端,只需要一个客户端就可以代理所有请求了。" 我不太明白这句话后面的意思,只做一个客户端用来代理请求,那么这些请求是怎么到这个客户端的?用http服务RESTful吗? 我有这样的业务场景: |
你的意思是这个对吧:
你的 hprose 客户端是在 Web Server 上。 其中 Hprose Server 如果是基于 swoole 的,那么这个服务器会很快,使用 TCP 方式发布服务就可以。 而 Web Server 如果本身也用 swoole 来实现的话,那么这部分就可以用 hprose-swoole 的客户端来做,这种情况下,这个地方的客户端只需要一个就可以了。 而如果 Web Server 不是基于 swoole 来实现的,而是使用 nginx、IIS 等服务加 php 来实现的话,那么就只能使用 hprose-php 的 一般来说,如果你传输的数据比较复杂,那么传输慢的主要原因是序列化和反序列化比较慢,只需要安装一下 hprose-pecl 扩展就可以解决。 |
明白了,太谢谢你了 |
最近用hprose做服务,测试程序中以前的业务逻辑不变,只是多加了hprose;
test()
方法有涉及到逻辑处理有一定性能开销的,我想知道这个new [Client()
的性能开销大不大的?压测了下感觉原来的代码性能降了很多;没加hprose:
加了hprose:
还有问下有什么技术手段,可以让这个new的
Client
不用频繁的实例化?1000个用户的http请求就是new
1000次了,会产生1000个tcp连接,这种并发高了咋办?The text was updated successfully, but these errors were encountered: