Home >Backend Development >PHP Tutorial >The microservice uses phprpc, but recently it was discovered that fsockopen, which phprpc relies on, has a serious blocking problem under high concurrency. Is there a good way to solve it?
A large number of read operations are related to each user and must be real-time. How to solve this problem?
A large number of read operations are associated with each user and must be real-time. How to solve this problem?
Let’s try using yar
Message queue is the fundamental solution to concurrency problems
Someone mentioned message queue, but it seems that it is not suitable for scenarios with high real-time requirements and inability to be asynchronous.
I have never used phprpc. It is unknown whether it has performance problems.
But judging from the experience of other products, if the connection handle is opened for every request, there must be a congestion problem. When the intranet connection to mysql reaches a certain data level, you can see a relatively high connection delay, and the query process itself is not slow.
If this is the reason, yaf may also have such a problem. Long connections and connection pools are your research directions.
<code>用任务队列 1.新建一个数据表 去存放队列信息 2.利用linux上的定时任务去后台异步调用PHP /shell 脚本 去执行任务</code>
There is no research in this area, the poster can try: http://wiki.swoole.com/wiki/page/196.html
Please share your thoughts if you have any experience
Your rpc can’t solve the problem in real time. . . It should be using a long connection. . You should talk about your specific needs. I feel that your needs and solutions may not match
If you don’t have high real-time requirements, you can consider message queues.
You can also consider the swoole extension of php to see if the performance will be improved.
Thanks for the invitation. Recommended message queue