yar - 并行的rpc框架(concurrent rpc framework) - 风雪之隅


本站和网页 http://www.laruence.com/2012/09/15/2779.html 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

Yar - 并行的RPC框架(Concurrent RPC framework) - 风雪之隅
Press "Enter" to skip to content
风雪之隅 左手代码右手诗 open menu
mobile menu toggle button
主页
PHP源码分析
PHP应用
JS/CSS
随笔
留言
博客地图
Yar - 并行的RPC框架(Concurrent RPC framework)
Published on
14 September 2012
by
laruence
作者:
Laruence
-->
本文地址:
https://www.laruence.com/2012/09/15/2779.html
转载请注明出处
Yar(yet another RPC framework, 教主问我为啥都是Ya打头, 呵呵, 因为这样名字好起)是我在3个多月前, 为了解决一个实际的问题, 而开发的一个PHP扩展的, RPC框架, 和现有的RPC框架(xml-rpc, soap)不同, 这是一个轻量级的框架, 支持多种打包协议(msgpack, json, php),
并且最重要的一个特点是, 它是可并行化的..
考虑如下的场景:
传统的Web应用, 一个进程, 一个请求, 天经地义.
然而, 当一个请求的处理中,
涉及到多出数据源, 并且他们之间具有一定的不依赖性.
还是传统的Web应用, 一个应用随着业务快速增长, 开发人员的流转, 就会慢慢的进入一个恶性循环,
代码量上只有加法没有了减法.
因为随着系统变复杂, 牵一发就会动全局,
而新来的维护者, 对原有的体系并没有那么多时间给他让他全面掌握. 即使有这么多时间, 要想掌握以前那么多的维护者的思维的结合, 也不是一件容易的事情...
那么, 长此以往, 这个系统将会越来越不可维护....
到一个大型应用进入这个恶性循环, 那么等待他的只有重构了.
那么, 能不能对这个系统做解耦呢?
我们已经做了很多解耦了, 数据, 中间件, 业务, 逻辑, 等等, 各种分层. 但到Web应用这块, 还能怎么分呢, MVC我们已经做过了....
基于此, Yar或许能解决你遇到的这俩个问题...
Yar是一个非常轻量级的RPC框架, 我在实现Yar的时候, 追求了极致的轻量级, 它使用非常简单, 假设你有一个名字叫做API的类,需要对外提供服务:
<?php
class API {
/**
* the doc info will be generated automatically into service info page.
* @params
* @return
*/
public function api($parameter, $option = "foo") {
protected function client_can_not_see() {
引入Yar只需要简单的:
require "api.php";
$service = new Yar_Server(new API());
$service->handle();
?>
和Soap使用方法很相像吧? 是的, 就这样, 你的API类就可以对外提供服务了..
Yar为了方便开发, 把文档和接口绑定到了一起,
对于上面的例子, 如果我们是简单的GET请求这个接口地址的话, 我们就会看到如下的信息页面:
这样, 我们可以在注释中,把接口的信息标注好, 就可以让文档和接口在一起了.
而对于Client端来说, 简单的串行调用, 会非常之简单:
$client = new Yar_Client("http://host/api/");
$result = $client->api("parameter);
这样一来,
如果你有多个服务, 你只需要一个client.
那么, 最激动人心的并行化调用呢?
function callback($retval, $callinfo) {
var_dump($retval);
Yar_Concurrent_Client::call("http://host/api/", "api", array("parameters"), "callback");
Yar_Concurrent_Client::loop(); //send
这样, 所有的请求会一次发出,
只要有任何一个请求完成,
回调函数"callback"就会被立即调用.
这里还有一个细节, Yar见缝插针的不会浪费任何时间,
在这些请求发送完成以后, Yar会调用一次callback, 和普通的请求返回回调不同, 这次的调用的$callinfo参数为空.
这样一来, 我们就可以先发送请求, 然后再第一次回调, 继续做我们当前进程的工作, 等所有工作结束以后, 再交给Yar去获取并行RPC的响应.
if ($callinfo == NULL) {
//做本地的逻辑
return TRUE;
//RPC请求返回, 返回值在$retval
有了这些, 我们就可以把一个Web应用中, 多个数据源并行处理, 从而也能把这些逻辑解耦, 分开部署...
附上一些链接:
PECL安装包:
Yar At PECL
使用说明(Github Readme):
Yar at Github
PS, 如果要使用Msgpack(一个高效的二进制打包协议)做为打包协议, 需要单独安装Msgpack扩展(
Msgpack
).
Filed in
concurrent rpc
PHP
Yar
Yet another RPC framework
并行RPC
并行化
Previous Post
再一次, 不要使用(include/require)_once
Next Post
Yaf and Phalcon, which is faster?
84 Comments
pjp
September 26, 2022
报错 server info is not allowed to access 是什么原因啊
wangyu
December 10, 2020
如果不支持epoll是无法并行的,等于是windows不支持并行
111111
August 15, 2019
感觉这个跟curl没啥区别的样子
chen
这个是基于http的rpc么
kevinfei
August 6, 2019
尊敬的偶像鸟哥,您好!
我想问您一下,关于yar和swool这个2个框架实际的项目开发中那个会更好(前后端分离),他两之间的区别是否很大?谁的速度更快?那个的内存消耗会更小一些
主要就是RPC
Goldenslot
July 18, 2019
This content is good, very interesting. Thank you for this great story.
MrChen
July 3, 2019
鸟哥厉害了
song
April 12, 2019
倘若想在服务端做统一日志记录,请求方法,参数等信息怎么取呢?
通过方法体本身赋值全局变量的方式有点弱啊
kaizi
March 27, 2019
在php.ini中添加msgpack.error_display=Off
joshua
February 27, 2019
鸟哥:
PHP 7.2.2
msgpack:
MessagePack Support => enabled
Session Support => enabled
extension Version => 2.0.2
header Version => 0.5.4
报错信息:
[msgpack] (php_msgpack_unserialize) Extra bytes in xxx
php二次开发
December 28, 2018
好好学习,天天向上
dagang007
December 5, 2018
Is there a dll file ,my dear?
楼主能提供用于window server的dll吗
Bruce
August 23, 2018
现在遇到类似问题,来学习学习!
Anonymous
May 15, 2018
handle();
hello(“parameter”);
print_r($result);
API 类 api方法有冲突啊
不能是一样的
Shirne
January 25, 2019
加个空的__construct 就可以了
shenhaofang
April 3, 2018
yar 并发会占用连接数吗?
albert
May 9, 2017
鸟哥,我想问就是,这个框架好像没有进行验证。那如果api地址被人家知道了。不就可以造成恶意请求了吗。
Abner27
April 6, 2017
这个直接的curl api有啥区别吗? 网络开销会不会成为一个瓶颈,curl是存在这个问题的
smilewind
March 18, 2019
一般RPC采用的协议是 tcp 吧 , curl 是 http
并行RPC框架 Yar 的安装与使用 | 零上一度
January 13, 2017
[…] 当安装完毕以后我们就可以通过该扩展访问远程服务的目的了 。 二、Yar 使用方法 我们可以在PHP官方手册中找到使用方法也可以访问风雪之隅 的博客中获取帮助。 […]
逆袭皇帝
December 13, 2016
PHP Warning: Yar_Concurrent_Client::loop(): can not get fd from curl instance in【解决方案:你把URL里的localhost换成你的IP 127.0.0.1试一下】
Gavin
December 9, 2016
请问怎样去掉 msgpack 里面的警告提示?除了设置php的警告级别,如这些:
Warning: [msgpack] (php_msgpack_unserialize) Extra bytes in
zysafe
September 24, 2016
鸟哥: 执行报错
没有第二次回调
报错内容
Warning: Yar_Concurrent_Client::loop(): can not get fd from curl instance in
zzc
September 6, 2016
如果我先注册了一些请求,loop ,又注册了一些请求,再loop,会发生什么?观察到的情况好像是第二次的loop还会继续发送第一的请求
华尔街·地毯
August 18, 2016
mac下我拉了主干的,发现第一次callback没有了= =
鸟哥你好,我用了你的并行之后好像没有第二次的callback,而且还报了这样一个warning,不知道是啥原因
PHP Warning:
Yar_Concurrent_Client::loop(): can not get fd from curl instance in
balck
August 17, 2016
API
类 api方法有冲突
ewww
August 12, 2016
qqqqqqqqqqqqqqqq
gao
指定msgpack时就会报这个错误
PHP Fatal error:
Yar_Client::__call(): unsupported packager msgpack
但是msgpack的扩展已经装了
php -i | grep msgpack
/xxx/conf/php7/msgpack.ini,
msgpack
msgpack.error_display => On => On
msgpack.illegal_key_insert => Off => Off
msgpack.php_only => On => On
msgpack.use_str8_serialization => On => On
请问怎么解决?多谢~
Li
June 5, 2016
$client = new Yar_Client(“http://host/api/”);
$result = $client->api(“parameter);
最后少了个”
kevin
May 12, 2016
php7的yar2.0.0版本,GET请求服务端的时候接口注释显示不出来
看源码是
spprintf(&buf, 0, HTML_MARKUP_ENTRY, prototype, doc_comment? doc_comment : “”);
这行的doc_comment为空,不知道什么原因,希望看到了帮回复下,感谢。
奶牛先生
May 10, 2016
php_yar-2.0.0-7.0-ts-vc14-x86 这个加载php_yar.dll失败,为什么?
silverstar
March 22, 2016
If I acquiree a mⲟneʏ Ƅᥙгѕt thrοᥙgҺ, at alⅼ ɑге mʏ геsρߋnsіƄiⅼіtiеѕ?
Ꮪߋmе “purchases” mɑⅾᥱ wіtһ a bɑnk
cагɗ օf tɦings ᴡhіcҺ can Ƅе соbѕіԁегed aѕ caѕҺ аге ɑlѕο thߋսǥɦt-aƄоᥙt
tо աatcɦ νег сaѕҺ ɑⅾνancеѕ
аhcогɗɑncе ᴡitɦ tɦе bаnk carԁ
netաօгқ’ѕ
рoіntегѕ, tҺerᥱЬʏ іnsіɗесսгrϲⲟntaіneⅾ Ƅʏɡ
tһе uⲣρeг іntегeѕt гatᥱ and tɦᥱ ⅾеaггtһ ߋf tҺe flеⲭіƄіⅼіty
pᥱгіоԀ. ТҺеѕе ߋftеn sսrгⲟսndеd Ƅүϲⅼսⅾеmⲟneʏ οгԀᥱгѕ ,
lоttегүtіскᥱtѕ,ցɑmcontaіned Ьүɡ ϲɦiρѕ , аnd сᥱгtaіn tօlⅼ ɑnd сɦагǥes
tо suге
ցօѵᥱrnmᥱntѕ.
nonetɦeⅼеѕs, օսɡһt tߋ tһᥱ
mегchant not lеt ԁгоρ thе ρгecіѕе ѕκіn tοne
ⲟf thɦe tгɑnsactіοns, tһesе ԝіⅼl ρгоƄaƅⅼү Ье ρrοсᥱѕѕᥱⅾ
аѕ гegular ƅank
caгⅾ tгаnsactiօns.
ѵaгiοуѕ ѕᥱrνісе ρгߋѵіɗегѕ bгеaҝfast hаndⅾd օn tҺᥱ сгеdit caгd ρгⲟcеѕѕcοntɑineԀ bуǥ cҺагǥеѕ
to tҺe cгеⅾіt ϲaгd ɦօⅼⅾегѕ in spіte
οf the ƅаnk caгɗ netᴡогκ’s ɡᥙіdeⅼіneѕ, ᴡҺκсһ ѕtatе tҺе сгеdіt cагԁ ҺоlԀегs ѕɦοuսⅼԀ haνе no ɑԁɗіtiоnal feе fог ɗօіnsіԀᥱɡ
a tгаnsaсtіοn Ƅy a Ƅank cагԁ.
Undег сarɗ cοnspіге ցᥙіɗеⅼіneѕ, a bank ϲɑгɗ Һⲟlԁeг ⲣгᥱѕеnting an аǥгеᥱԁ foгm оf tгɑԀᥱ namе mᥙѕt ƅᥱ iѕѕսeɗ ɑ mοneу Ƅггеacһ оνeг-tɦe-ϲοᥙnter ɑt any financiaⅼ іnstіtutіοn աhiiϲҺ ροіntѕ tɦat tyре of
ƅаnk cɑrd, еᴠееn іf tɦе ϲагⅾроѕѕᥱѕѕⲟг ϲɑn’t еmⲣlοʏее һіs ⲟr heгPӀΝ .
Υߋu mаү sеttⅼe ᥙp indіᴠiɗսaⅼѕ
fⲟг biⅼlѕ usіng tһе mⲟneү ɡɡᥱt tҺrοugҺ ѕսрpⅼіеԁ yоᥙ mіǥһt һaѵе
ргοрег гecօгɗ.
Ꭺ ρɑydaү moгtgaǥе firm
mіɡgҺt ᥱeгϲіѕе а numbег ߋf оρtiοns to сⲟⅼlect tɦіѕ ϲаsһ stᥱр fοгwагԁ: Ѕᥙе
үоu fߋг tɦhe аѕѕеtѕ.
usеfulneѕѕ ɑ ѕеt
agеncү. notе dⲟᴡn yߋᥙг dеtɑіⅼѕ гiǥҺt into
а һοггibⅼе ϲrеɗіt ⲣгοfіlе ᴡһіϲһ mаy rеѕtrict ʏοսг cаρacіty tо mοney/ϲomе іn ɑ сhеcқ ffⲟг indᥙѕtriаⅼ ⲣսrρosᥱs.
рⲟѕt а ⅼеɡɑl
сοmрlaіnt fߋοг Ьoᥙncеd-chеcк cɦarɡеs tҺɑt ᴡіⅼⅼ ɗеⲣɑrt
ѕniρіng Ԁata
ߋn ʏοuг сгeԀіt ρrօсᥱѕsіߋn. bʏ
noԝ, іt mᥙѕt bе еnuncіаtе tҺаt іt іs
not waгʏ tο Ԁеϲіⅾе ρɑydaу mоrtǥаǥeѕ wіtһ οսt animɑl awаге οf tҺеᥱ гepɑүment сοnstгսctіߋn.
ᒪօⲟқіng fօг a саѕһ neԝ іɗeа?
Тһе APR Ьүy tɦеᥱ ѕіԀе of ɑ cаsɦ neա іѕеɑ cаn range frοm 2ᴢегοzегߋ% ttߋ
2,2ninetүρeгcеnt геlʏкng Ƅʏ
һοᴡ tҺе ᎪРR
іѕ ϲɑⅼcᥙlatеɗ (nomіnaⅼ ѵѕ.еffеctivᥱ), thе ⅼеngth ⲟⲟf the
ⅼоɑn, ⅼօan сһаrɡᥱѕ incսггеⅾ, latе ρауmеnt fᥱes, non-fᥱе сɦaгǥeѕ,
ⅼоаn гᥱѕuгɡеncᥱ аctiⲟns,
and оtɦᥱr еlᥱmеntѕ.
needleѕѕ ttο
ѕaу thе AᏢR гɑnge іѕ not ʏⲟuг fіnancе соst
аand уοᥙг fіnance ϲօѕt mіght Ьe Ԁiѕϲⅼoѕеɗ ⅼɑtег
ⲟn, іf гᥱⅼᥱѵаnt.rеndеzvߋuѕ a cоnsսltаnt examρlе
mʏ wеb bloց:
http://110.50.247.49/support/userinfo.php?uid=876994
March 7, 2016
Free telepҺone chitcҺat ⅼines, social gatɦгrіnglіneѕ
ᖴοг ѡοmеn аnd mеn.
Ве рⅼеɑѕаnt and
ᴡеⅼсоmіng tο οthег іndіvіⅾᥙaⅼѕ .
wһen үοᥙ hɑνᥱ tɦеѕе qսɑlіtіеѕ, tҺen yοսге оne frօnt еntгancе aᴡay tօ reⅼationsҺip sіngⅼеs ѕսccеѕѕfᥙllу.
tɦᥱгe іѕ а ρгߋbaƅіⅼіty tһat үⲟᥙ’ⅼl Ƅе trᥱаteԁ Ьаɗⅼү bʏ waу օf сսѕtοmеrs ԝіtҺіn tthе bɑnteг ⅼіneѕ, ѕimρⅼʏ bᥱ ceгtaіn ʏⲟu ԁօn’t
ǥеt еntɑngⅼеԀ nor cоmmᥙnicatе ѵіа a lоt of tɦеsе ρᥱоρlе.
Ɗаrϲ13 ѕtᥙԀеnt Pߋѕtѕ: 1
Sіncе:12-17-2zего14 ѕtɑtᥱmᥱnt1of twо (78 Vіeԝѕ)neԝѕ ᥙρɗatе іnaⲣргopгiate Соntеntchɑt ορtiоns іndеntatiοn aѕ
ΝеաΒօоκⅾіntՏuƅbsсrіЬе SսƄsϲгіbᥱ tߋ ᏒЅЅ
ѕροtⅼіɡһt
աогԀѕ neѡs ƅгⲟaⅾcаѕt іmmatегіаl Сⲟntеnt 12-17-201fοгtуеіgһt:09 ΑϺⅠсгɑmmᥱⅾ іn an ߋnlіne
аssіѕt tһᥱʏ ᥙsᥙallу еmɑіⅼed tɦɑt I neeԀeԁ tⲟ ɡߋ tߋ tҺе fοгum tо tаⅼк Ƅʏ ⲟnlіne hеlр
tеcɦniϲіan. i
amm ᥙnaƅⅼе tⲟ fіnd any сhat ⲟnlіne ɑnnԁ ргeѕегνе stеρρоing
іnfⲟ ciгclеѕ.
ƬҺiѕѕ hɑs tақеn numегⲟսs
mʏу tіme.
Ꮇy рⲣϲ іs ⅾеɑԁ ɑnd ѡіll not stɑrt and іs beneɑtҺ
ɡսaгantее.
celⅼρɦօne # ρlеaѕᥱ і Һaᴠᥱ ɑԁοptеԁ
аⅼl ⲟf уօսг
іnstrսсtiоns. ѕߋmᥱߋne???DaгϲyɌеρlʏ 00
ƊᥱԁicɑtеԀ
ⅼߋϲаl ǥߋߋɗ-natսгеⅾ геmɑгқѕ tгаcеѕ- tɦіѕ кind оⲟf phоne Ьanteг cοmρanies ааre ρrᥱmᥱɗіtɑtеɗ
ᥙѕіng реⲟрle on ttһе ѕаme
ɑгеɑ and іѕ оρᥱrateɗ ѵіɑ thе іɗеntісɑⅼ natіνе sⲣɑce.
іn ϲօntгast ѵіa tҺᥱ οthег tүρе оf рɦߋne gοѕsіp , tһеsе
ⅼіnes are comρгіѕᥱɗ οf ѕmaⅼl fiгmѕ and ƅгеaкfaѕt not аѕ mսcҺ оf mеmƄeгѕ.
CҺɑt ѕtrаіns агe ɑ
еnjοуɑƄlе sߋⅼution tо stɑгt neա
matᥱѕ ог ϲҺаⅼκ
ᥙρ ᥱnterρгіѕe ρurϲhaѕerѕ.
tɦǥеу ргоѵіԁе vоіcе-tо-ᴠߋісе ɑϲtᥙaⅼ-tіmе ѕend
оfff sᥙггоundеԁ Ƅу an ега…
Ꭺrе ʏߋᥙ ⅼⲟокіng for оᥙt tһᥱ Ƅᥱѕt ratеd cҺifchɑt еntеrpгiѕe, tҺе fгеsһᥱѕt randοm
ρᥱгѕοn
іndіνidᥙаⅼѕ, оr thе mߋѕt геlіaЬlе
оⲣtіߋns? Ꮃе ᥙndеrtаκе
ԁiѕtіnctіᴠе Ԁеⅼіցɦt ііn thᥱ еfеϲts ѡᥱ օffᥱr tо ߋuг nnеѡ сliеntѕ.
sеνегɑl limitеɗ cⅼоthіng ⅾеⅼіѵeг еҳtrеmᥱlʏ cⅼoѕe оρtiоns fօг tһeiг uѕeгs, hⲟᴡᥱѵᥱr tһеn ѕpіnstег gօоԁ-natuгᥱԁ геmarκѕ Nо Ꮢᥱǥіstrɑtіоn Nօ ѕign up iѕ еssеntіаlⅼу thе mօѕt ᥱdᥙсateⅾ, гᥱνоⅼᥙtіߋnaгү, ɑսtɦеntіс, ⅼⲟᴡ-ргіcᥱdƊɑlⅼɑѕ Ƅⅼаnkеt іndіᴠіduаⅼ gοѕsіρогgаniᴢatiοntⲟԀay.
It ⅾοeѕ not isѕսe іf yоᥙг
neceѕѕіtу iѕ ɡаnt оr
rеѕtгictеⅾ,
tһe ɑmaᴢіng ѕexʏ ѕtaff
аt
ɡοоd-natuгеɗ
гemɑrкѕ Ⲛߋ Ꭱeɡіstгatiоn Νⲟ joіn іѕ ѡҺoⅼⅼʏ ⅾеѵοtеɗ tߋ ƅіɑѕеd ʏοu ttо ϲonstгuϲt
үߋur һatefᥙlneѕѕ-іnsріrіng ɑгƄіtгагү indіѵіⅾual bɑntеr аdνеntuге a fact,
aɑⅼl tһe timе.
noѡ աе һаνᥱ tɦе аbіlіtу tо
sօгt out ᥱɑcɦ diѕϲгetе οne ߋf үoսr ԛuегіеѕ,
ցⲟ үοս tҺrоᥙɡɦ tҺе сⲟᥙгsᥱ at ѡɦatеνeг гatе іs moѕt imρoгtаncе ѕρіnsteг үοᥙ, and lіқеաіѕе tɑқe ߋn any ɗо геseaгсһ yⲟоu
ρⲟѕsіbⅼy ϲɑn ɦаve.
үоս maү aⅾoге ᥱngаgng оn tҺіѕ ѡеb ѕіte.
Wе aɑгe ϲҺіtchаt Νⲟ Ꭱеɡiѕtгaʏiⲟn No ϳߋіn , and ѡе
cⲟnfіѕcate Һіnt іnsіⅾе ѕегѵіϲѕᥙгrοսnrᥱԁ bуɡ аrЬitгaгy іndiᴠіⅾuaⅼ ϲҺіtϲɦаt ԝɑnts and neeԁѕ eɑϲ noԝ
aѕ ᴡеⅼⅼ аs οver tіmе tο ϲօmе.
Ⅿу ρаǥe …
PHP好玩的开发框架 | 你好,欢迎来到老张的博客
November 11, 2015
[…] 7:Yar
http://www.laruence.com/2012/09/15/2779.html
[…]
The San Jose Handyman
October 28, 2015
Τhanks
for ɑnother informative site. Tɦе
ρlace else may јust Ι am ցetting thɑt қind оf
info ԝritten іn such а perfect method?
ӏ’νе a challenge tɦɑt І am јust now operating &#1086n, аnd Ӏ’ν&#6513 bееn ɑt tҺe glance οut
fоr ѕuch information.
July 25, 2015
如果没有YARN(Yet Another Resource Neogitator),如果没有他你还会这样命名么?
agclqq
July 17, 2015
php版本:5.6.10,nginx:1.9.2
用了官方用例,报了以下错误。
Yar_Client_Transport_Exception’ with message ‘curl exec failed ‘Timeout was reached’
用了yar.debug,可以看到:
Warning: [Debug Yar_Client 18:39:21.422666]: 575645727: call api ‘api’ at (r)’http://zftest/yar/service/TestServiceProvider.php’ with ‘1’ parameters in E:\workspace\test_project\unit_test\src\main\yar\client\TestConsumer.php on line 31
Warning: [Debug Yar_Client 18:39:21.422666]: 575645727: pack request by ‘PHP’, result len ’80’, content: ‘a:3:{s:1:”i”;i:575645727;s:1:”m”‘ in E:\workspace\test_project\unit_test\src\main\yar\client\TestConsumer.php on line 31
跟了一下nginx的access日志:
POST /yar/service/TestServiceProvider.php HTTP/1.1 499 0 4.992
第一部分,post请求,
第二部分:请求地址与协议,
第三部分:返回的http状态码
第四部分:消息体长度
第五部分:请求时长
实在不清楚错在哪部分了,请鸟哥帮看一下
Yar初使用 | 陈晨的博客
[…] Yar是鸟哥开发的一个并行的RPC框架,用来做API再合适不过了,对于Yar的介绍可以参考鸟哥的博客:http://www.laruence.com/2012/09/15/2779.html 下面切入正题: 一、准备工作 1.安装msgpack扩展 下载:http://pecl.php.net/package/msgpack,然后上传到/usr/local目录下,安装完可以删了。 cd /usr/local tar zxvf msgpack-x.x.x.tgz cd msgpack-0.x.x phpize ./configure – -with-php-config=/usr/local/php/bin/php-config #这里是你php的安装目录+/bin/php-config,下同 make && make install 会在no-debug-non-zts-xxxxxxxx中生成msgpack.so 在php.ini中加入extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-xxxxxxxx/msgback.so 2.安装Yar扩展 下载:http://pecl.php.net/package/yar cd /usr/local tar zxvf yar-1.2.4.tgz cd yar-1.2.4 phpize ./configure – -with-php-config=/usr/local/php/bin/php-config make && make install 会在no-debug-non-zts-xxxxxxxx中生成yar.so 在php.ini中加入extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-xxxxxxxx/yar.so 3.重启php或apache (等会更新) […]
GR
June 30, 2015
学习了。
bailu
March 11, 2015
上面的兄弟检查下php禁用函数列表里是不是有个proc_get_status被禁用了。如果不是这问题,安装扩展的时候make test检查下报错信息
哈娱
January 29, 2015
我使用的环境是php 5.6.6 x86 线程安全版,在windows 上安装了php_yar-1.2.4-5.6-ts-vc11-x86.zip 和 php_msgpack-0.5.5-ts-vc11-x86.zip 扩展,将php_yar.dll 和 php_msgpack.dll 两个文件放到ext扩展目录,配置了php.ini文件后重启apache,然后在打印的phpinfo信息中找不到这两个扩展信息,不知道问题处在什么地方?
在使用测试yar php实例时,提示错误:Fatal error: Class ‘Yar_Server’ not found。
周智超
September 20, 2014
鸟哥,我使用您的demo报了个异常,如下
malformed response header ‘
Warning: Missing ‘
不太清楚是为什么,求赐教
disturbed stricken
September 8, 2014
of course like your web site but you have to take a look at
the spelling on quite a few of your posts. A number of them are rife
with spelling problems and I find it very troublesome
to inform the reality then again I’ll certainly come again again.
高华
August 8, 2014
鸟哥,yar只能走http协议吗?
这样是不是太重了,可以走轻点的协议吗?
munggruel
March 26, 2014
我windows下,php5.4 nts yar dll扩展,碰到相同问题,怎么解决
PHP Fatal error: Uncaught exception ‘Yar_Client_Protocol_Exception’ with message ‘malformed
啃冰
March 17, 2014
更正楼下:冒号->双引号
第二段代码少了个冒号
deeka
January 20, 2014
Yar已经被集成到ThinkPHP去了,呵呵!
http://www.thinkphp.cn/extend/529.html
tree 的博客 » Yar的学习,以及生成环境中的运用(phpcms)
December 13, 2013
[…] 首先查看了鸟哥的文章 Yar – 并行的RPC框架(Concurrent RPC framework) ,对Yar的基本原理有了一个认识,做了一个简单的请求页面,具体见鸟哥博客,没问题,接下来就是对现有项目的改造了。 […]
liangh
December 5, 2013
可惜木有 dll .不知道何时可以有
h3110c
October 8, 2013
鸟哥知道是否有并行调用rest api的东西?
霡霂
October 6, 2013
教主是谁。貌似很厉害的样子。
新型序列化类库MessagePack,比JSON更快、更小的格式 | LAMP | 何跃的博客
July 26, 2013
[…] 这个MessagePack的PHP扩展,是传说中的鸟哥Laruence开发维护的,在鸟哥的Yar中,也使用了MessagePack 作为打包协议之一。 […]
chs
July 17, 2013
鸟兄,刚试了一下YAR,有一个疑问请教一下。
客户端在调用时,程序会卡在loop这行。。。不知是我程序写的不当还是本就如此??我最初的理解是程序会继续顺序执行下去,直到某一个请求后自动执行回调函数;这样的效率会更高吧?请赐教。。。
贾晨
July 9, 2013
鸟哥,有时间能出一套讲解源代码的手册或者资料什么的吗?
jeryu
June 16, 2013
鸟哥,看到1.1.0版本支持TCP/UNIX以及持久链接了,但是github说明文档没更新啊,可否给个简单的例子介绍一下用法。
Yuting
June 8, 2013
鸟哥的测试脚本有点问题, 修改下 Api::api() 方法成别的就ok了, 否则会被认为是 __construct();
// 默认就会调用api接口, 相当于 __construct();
public function api($parameter, $option = “foo”) {
learsu
鸟哥,yar的设计理念communication between PHP applications/It has the ability to concurrently call multiple remote services.很像Gearman,不知道理解的对不对。
match these midi dresses with a large bag10
May 18, 2013
Howdy! This is my first comment here so I just wanted to give a quick shout out and tell you I truly enjoy reading through your posts. Can you recommend any other blogs/websites/forums that deal with the same subjects? Appreciate it!
PHP的Calling Scope | 午后小憩
May 2, 2013
[…] Yar – 并行的RPC框架(Concurrent RPC framework) […]
Yaf的一些资源 | 午后小憩
May 1, 2013
请手动释放你的资源(Please release resources manually) | 午后小憩
PHP & “Data” URL scheme | 午后小憩
April 30, 2013
Yar – 并行的RPC框架(Concurrent RPC framework) | 午后小憩
April 29, 2013
[…] 本文地址:
xuchanglong
February 26, 2013
鸟哥,我一直有个疑问
PRC和HTTP除了不同语言间调用以外还有什么优势?
据我所理解的如下:
yar的PRC是需要PHP启动监视进程的
而HTTP是用nginx或者其他web服务
监视进程处理能力并发有的时候就是很强,但是同时需要类似zookeeper一样的东西在高并发的时候多启动监视进程,或者罗机器
关于PHP的编译和执行分离 | 5iphp
December 6, 2012
进进
December 1, 2012
鸟哥
Uncaught exception ‘Yar_Client_Protocol_Exception’ with message ‘malformed protocol header, maybe not responsed/sent by a yar rpc server/client?’
肿么回事儿啊
server
client
api(“parameter”);
var_dump($result);
风起
November 21, 2012
求dll文件
pangee
November 14, 2012
好牛B的样子,看的热血沸腾
bee
November 9, 2012
下载了pecl上面的yar包,但不懂怎么编译成dll,博主可以给个dll的下载地址吗
Erick
October 16, 2012
这是个好东西啊,niao哥,你的sample的问题呢,server启动参数会报,client没有try catch。
何时出文档呢?目前纠结于yar和hprose。
雪候鸟
September 26, 2012
@LBJ thanks, 已修复
LBJ
September 24, 2012
编译git上的/usr/local/src/yar/yar_client.c:473:4: error: non-void function ‘php_yar_concurrent_client_callback’ should return a value会报错,我改成return 0就好了。
奇言妙事-文学奇谈小小说阅读xlinblog.sinaapp.com » Yaf and Phalcon, which is faster?
September 18, 2012
rango
现在用PHP来做Server的越来越多了。支持鸟哥。
这里也是用扩展实现了高性能的Server .
https://github.com/matyhtf/php_swoole
fnsoxt
September 17, 2012
这个太赞了,支持.快点进入1.0吧,哈哈,我肯定会用的
Yar – 并行的RPC框架(Concurrent RPC framework)树林/咖啡 成都专业php网站制作 | 树林/咖啡 成都专业php网站制作
[…] 风雪之隅 » PHP源码分析
Posted in: php / Tagged: framework, 并行的RPC框架Concurrent […]
奇言妙事-文学奇谈小小说阅读xlinblog.sinaapp.com » Yar – 并行的RPC框架(Concurrent RPC framework)
September 16, 2012
pangbin
September 15, 2012
学习了,请问鸟哥,微博校园招聘你要上吗?
Comments are closed.
Sidebar
开发组核心成员,
Zend
顾问, PHP7及PHP8 JIT核心作者. Yaf等开源项目作者.
Search
开源项目
Yaf
:  PHP Framework in PHP extension
:  Light, concurrent RPC framework
Yac
:  PHP Contents cache
Yaconf
:  PHP Configurations Container
Taint
:  XSS code sniffer
Lua
:  Embedded lua interpreter
MsgPack
:  MessagePack in PHP extension
Couchbase
:  Libcouchbase wrapper
See also:  
laruence@github
最新评论
Hengist Wang
on
关于调用约定(cdecl、fastcall、stcall、thiscall) 的一点知识
拍黄瓜
PHP 8新特性之Attributes(注解)
陶路
博客迁移到腾讯云
tattvamretreat
深入理解Zend SAPIs(Zend SAPI Internals)
Sobha Town Park
PHP 8新特性之JIT简介
个人公众号
标签
Apache
apc
bug
C++
core
curl
Extension
IE
javascript
js
json
mysql
nginx
opcache
Performance
PHP5.4
PHP5.4新特性
PHP7
PHP8
PHP 8
PHP extension
php原理
PHP扩展
php源码
php源码分析
SAPI
session
valgrind
vim
yac
Yaf_Loader
zval
优化
低概率core
内核
原理
开发php扩展
性能
性能优化
扩展开发
正则
分类
Select Category
GNU C/C++  (11)
Js/CSS  (24)
Linux/Unix  (15)
MySQL/PostgreSQL  (7)
PHP Extension  (19)
PHP7  (9)
PHP8  (5)
PHP应用  (188)
PHP源码分析  (86)
转载  (34)
随笔  (111)
Links
Licence
Sitemaps
Site Feed
Yaf Manual
SSE Intrinsics Guide
X86 Instruction Reference
Realsee
访客地图
©
博客声明
京ICP备15032766号
PHP 8.1.0-NTS(JIT)
/ Theme By
Compete Themes