You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@dubbo.apache.org by Ian Luo <ia...@gmail.com> on 2019/07/17 12:07:45 UTC

Fwd: 给dubbo-php-framework开发者们的一封信

forward to @dev

---------- Forwarded message ---------
From: Jinxi Wang <cr...@gmail.com>
Date: Wed, Jul 17, 2019 at 2:48 PM
Subject: Re: 给dubbo-php-framework开发者们的一封信
To: Ian Luo <ia...@gmail.com>
Cc: Huxing Zhang <hu...@gmail.com>, <ki...@qq.com>


各位老师好!

 本次对dubbo-php-framework进行了一次更新,主要涉及到consumer相关功能,新增和修改了一些功能,功能点已列到下方,
github已经发出合并请求,如有不妥之处还望老师们给予指导。

以下功能已应用到本人公司产品中

新增及变动功能点
1、支持hessian数据序列化,解序列化,提供crazyxman/hessian-parser组件进行支持
2、dubbo调用传参通过新增Type类可绑定多种数据类型:short,int,integer,long,float,double,bool,boolean,string,arrayList,Map,Object
3、dubbo服务version,group如在配置文件中未设置,不在强制使用1.0.0,*作为校验,
请求头中根据发现的dubbo服务的version,group进行自适应设置
4、数据序列化方式根据dubbo服务中serialization参数或响应头中的数值,进行自适应的序列化和解序列化,默认还是使用fastjson格式
5、dubbo consumer抛出的异常不在是根异常Exception,定义了ConsumerException异常作为区分
6、接受数据超时不再是15秒和20次的限制,统一使用iotimeout控制获取数据的总时长,iotimeout可配
7、请求头中数据类型不再是统一的java/lang/Object,可根据传递的参数类型自动设置
8、redis连接方式与地址可设置到配置文件(agent+redis服务部署到其他主机时)
9、redis连接超时,读超时,连接重试次数可设置到配置文件
10、redis地址可设置多个, 当地址个数大于重试次数时可保证不会选择同一个地址重试

新增配置:
[consumer_config]
redis_connect_type = TCP //TCP,SOCK 默认TCP
redis_hosts = 11.0.16.248:6379,11.0.16.249:6379 //多个host,以逗号分隔,默认
127.0.0.1:6379
redis_connect_timeout = 1 // 默认1秒
redis_read_timeout = 2 //默认2秒
redis_retry_count = 1 //默认重试1次

各参数类型使用示例:
require_once('dubbo-php-framework/consumer/Type.php');
$service = 'com.imooc.springboot.dubbo.demo.DemoService';
$proxy = FSOFApi::newProxy($service, 3);

//其他参数类型到Type类中寻找即可,如果参数不指定类型会根据参数自身类型判定, 如下
$ret = $proxy->invoke("sayHello", Type::integer(123));
等价
$ret = $proxy->invoke("sayHello", 123);

$ret = $proxy->invoke("sayHello2", Type::string("zhangsan"));
$ret = $proxy->invoke("sayHello2", "zhangsan");

$ret = $proxy->invoke("sayHello3",Type::arrayList(['a', 10000, "你好"]));
$ret = $proxy->invoke("sayHello3",['a', 10000, "你好"]);

$ret = $proxy->invoke("sayHello4", Type::map(['a'=>"b", 10 => "v"]));
$ret = $proxy->invoke("sayHello4", ['a'=>"b", 10 => "v"]);

$ret =
$proxy->invoke("sayHello5",Type::object('com.imooc.springboot.dubbo.demo.dto.TestObjectDemo',
['name' => '张三', 'age' => 10]), Type::string("hello"), Type::integer(30));

盼复
祝好

Ian Luo <ia...@gmail.com> 于2019年7月5日周五 上午11:47写道:

> 现在 dubbo-php-framework 缺少维护者。期望 php 可以跟上 dubbo 2.7 的脚步。您能参与进来,欢迎欢迎。
>
> On Mon, Jun 17, 2019 at 11:18 AM Jinxi Wang <cr...@gmail.com> wrote:
>
>> 大家好!
>>            因工作需要从github apache看到dubbo-php-framework产生较大兴趣,最近会发布一个稳定版本吗?
>> 看目前只支持fastjson格式的数据传输,未来会支持其他序列化方式吗?
>> 你们对dubbo-php-framework将来的规划是怎样的?现个人想根据此项目未来规划尝试开发参与进来!
>>
>> 盼复!
>> 祝好!
>>
>

Re: 给dubbo-php-framework开发者们的一封信

Posted by Jinxi Wang <cr...@gmail.com>.
agent不是一个php扩展,安装完zookeeper后,路径设置成自己安装的版本
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/zookeeper-3.4.14/lib
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/zookeeper-3.4.14/include
然后到 dubbo-php-framework/agent/src/c/ 目录下直接make即可

needrunning <ne...@qq.com> 于2019年7月19日周五 下午2:30写道:

>
> 多谢回答。
>
> 这个 agent(c语言)服务 是以PHP扩展的形式安装吗,没有找到对应的agent文档
>
> ------------------ 原始邮件 ------------------
> *发件人:* "crazyxman01"<cr...@gmail.com>;
> *发送时间:* 2019年7月19日(星期五) 上午10:58
> *收件人:* "dev"<de...@dubbo.apache.org>;
> *抄送:* "needrunning"<ne...@qq.com>;
> *主题:* Re: 给dubbo-php-framework开发者们的一封信
>
> 1. 目前是把dubbo-php-framework通过include文件的方式注册到框架中的,后续打算将此组件提交到composer管理加载。
> 2.
> php与注册中心做长连接在php-fpm模式下是不合适,目前组件把连接注册中心的这部分单独抽了出来,也就是组件中的agent(c语言)服务,将发现的dubbo服务存到了redis中,注册中心变动都会实时同步到redis中,使用时从redis中拿dubbo服务地址连接即可。
>
>
> needrunning <ne...@qq.com> 于2019年7月18日周四 下午11:27写道:
>
>>
>> 大家好 很高兴看到 dubbo-php-framework 还有继续更新的讨论,我目前主要开发语言也是PHP
>>
>> 最近在了解PHP业界在 关于dubbo分布式服务调用这块的场景,PHP服务化的资料很少,大家使用PHP调用后端
>> 大多采用明确的接口地址,联调的方式,很少有接入服务注册中心的。
>>
>>  想请教 @Jinxi Wang两个问题
>>
>>  1 你们在你生产环境中的使用,把PHP这个客户端集成到来具体的框架中了吗 比如YII2?
>>
>>  2  PHP作为客户端 如何解决客户端与注册中心的长连机制的,是不是使用额Swool?
>>
>> 谢谢
>>
>> ------------------ 原始邮件 ------------------
>> *发件人:* "Huxing Zhang"<hu...@apache.org>;
>> *发送时间:* 2019年7月18日(星期四) 上午9:39
>> *收件人:* "dev"<de...@dubbo.apache.org>;
>> *抄送:* "crazyxman01"<cr...@gmail.com>;
>> *主题:* Re: 给dubbo-php-framework开发者们的一封信
>>
>> Hi,
>>
>> It really glad to see so many improvement!
>> Hope someone in the dubbo-php-framework could take a look.
>> Let's try to contact the original author of this project.
>>
>> On Wed, Jul 17, 2019 at 8:09 PM Ian Luo <ia...@gmail.com> wrote:
>> >
>> > forward to @dev
>> >
>> > ---------- Forwarded message ---------
>> > From: Jinxi Wang <cr...@gmail.com>
>> > Date: Wed, Jul 17, 2019 at 2:48 PM
>> > Subject: Re: 给dubbo-php-framework开发者们的一封信
>> > To: Ian Luo <ia...@gmail.com>
>> > Cc: Huxing Zhang <hu...@gmail.com>, <ki...@qq.com>
>> >
>> >
>> > 各位老师好!
>> >
>> >  本次对dubbo-php-framework进行了一次更新,主要涉及到consumer相关功能,新增和修改了一些功能,功能点已列到下方,
>> > github已经发出合并请求,如有不妥之处还望老师们给予指导。
>> >
>> > 以下功能已应用到本人公司产品中
>> >
>> > 新增及变动功能点
>> > 1、支持hessian数据序列化,解序列化,提供crazyxman/hessian-parser组件进行支持
>> >
>> 2、dubbo调用传参通过新增Type类可绑定多种数据类型:short,int,integer,long,float,double,bool,boolean,string,arrayList,Map,Object
>> > 3、dubbo服务version,group如在配置文件中未设置,不在强制使用1.0.0,*作为校验,
>> > 请求头中根据发现的dubbo服务的version,group进行自适应设置
>> >
>> 4、数据序列化方式根据dubbo服务中serialization参数或响应头中的数值,进行自适应的序列化和解序列化,默认还是使用fastjson格式
>> > 5、dubbo consumer抛出的异常不在是根异常Exception,定义了ConsumerException异常作为区分
>> > 6、接受数据超时不再是15秒和20次的限制,统一使用iotimeout控制获取数据的总时长,iotimeout可配
>> > 7、请求头中数据类型不再是统一的java/lang/Object,可根据传递的参数类型自动设置
>> > 8、redis连接方式与地址可设置到配置文件(agent+redis服务部署到其他主机时)
>> > 9、redis连接超时,读超时,连接重试次数可设置到配置文件
>> > 10、redis地址可设置多个, 当地址个数大于重试次数时可保证不会选择同一个地址重试
>> >
>> > 新增配置:
>> > [consumer_config]
>> > redis_connect_type = TCP //TCP,SOCK 默认TCP
>> > redis_hosts = 11.0.16.248:6379,11.0.16.249:6379 //多个host,以逗号分隔,默认
>> > 127.0.0.1:6379
>> > redis_connect_timeout = 1 // 默认1秒
>> > redis_read_timeout = 2 //默认2秒
>> > redis_retry_count = 1 //默认重试1次
>> >
>> > 各参数类型使用示例:
>> > require_once('dubbo-php-framework/consumer/Type.php');
>> > $service = 'com.imooc.springboot.dubbo.demo.DemoService';
>> > $proxy = FSOFApi::newProxy($service, 3);
>> >
>> > //其他参数类型到Type类中寻找即可,如果参数不指定类型会根据参数自身类型判定, 如下
>> > $ret = $proxy->invoke("sayHello", Type::integer(123));
>> > 等价
>> > $ret = $proxy->invoke("sayHello", 123);
>> >
>> > $ret = $proxy->invoke("sayHello2", Type::string("zhangsan"));
>> > $ret = $proxy->invoke("sayHello2", "zhangsan");
>> >
>> > $ret = $proxy->invoke("sayHello3",Type::arrayList(['a', 10000, "你好"]));
>> > $ret = $proxy->invoke("sayHello3",['a', 10000, "你好"]);
>> >
>> > $ret = $proxy->invoke("sayHello4", Type::map(['a'=>"b", 10 => "v"]));
>> > $ret = $proxy->invoke("sayHello4", ['a'=>"b", 10 => "v"]);
>> >
>> > $ret =
>> >
>> $proxy->invoke("sayHello5",Type::object('com.imooc.springboot.dubbo.demo.dto.TestObjectDemo',
>> > ['name' => '张三', 'age' => 10]), Type::string("hello"),
>> Type::integer(30));
>> >
>> > 盼复
>> > 祝好
>> >
>> > Ian Luo <ia...@gmail.com> 于2019年7月5日周五 上午11:47写道:
>> >
>> > > 现在 dubbo-php-framework 缺少维护者。期望 php 可以跟上 dubbo 2.7 的脚步。您能参与进来,欢迎欢迎。
>> > >
>> > > On Mon, Jun 17, 2019 at 11:18 AM Jinxi Wang <cr...@gmail.com>
>> wrote:
>> > >
>> > >> 大家好!
>> > >>            因工作需要从github
>> apache看到dubbo-php-framework产生较大兴趣,最近会发布一个稳定版本吗?
>> > >> 看目前只支持fastjson格式的数据传输,未来会支持其他序列化方式吗?
>> > >> 你们对dubbo-php-framework将来的规划是怎样的?现个人想根据此项目未来规划尝试开发参与进来!
>> > >>
>> > >> 盼复!
>> > >> 祝好!
>> > >>
>> > >
>>
>>
>>
>> --
>> Best Regards!
>> Huxing
>>
>

回复: 给dubbo-php-framework开发者们的一封信

Posted by needrunning <ne...@qq.com>.
多谢回答。


这个 agent(c语言)服务 是以PHP扩展的形式安装吗,没有找到对应的agent文档



------------------ 原始邮件 ------------------
发件人: "crazyxman01"<cr...@gmail.com>;
发送时间: 2019年7月19日(星期五) 上午10:58
收件人: "dev"<de...@dubbo.apache.org>;
抄送: "needrunning"<ne...@qq.com>;
主题: Re: 给dubbo-php-framework开发者们的一封信



1. 目前是把dubbo-php-framework通过include文件的方式注册到框架中的,后续打算将此组件提交到composer管理加载。2. php与注册中心做长连接在php-fpm模式下是不合适,目前组件把连接注册中心的这部分单独抽了出来,也就是组件中的agent(c语言)服务,将发现的dubbo服务存到了redis中,注册中心变动都会实时同步到redis中,使用时从redis中拿dubbo服务地址连接即可。





needrunning <ne...@qq.com> 于2019年7月18日周四 下午11:27写道:



大家好 很高兴看到 dubbo-php-framework 还有继续更新的讨论,我目前主要开发语言也是PHP


最近在了解PHP业界在 关于dubbo分布式服务调用这块的场景,PHP服务化的资料很少,大家使用PHP调用后端 大多采用明确的接口地址,联调的方式,很少有接入服务注册中心的。


 想请教 @Jinxi Wang两个问题


 1 你们在你生产环境中的使用,把PHP这个客户端集成到来具体的框架中了吗 比如YII2?
 
 2  PHP作为客户端 如何解决客户端与注册中心的长连机制的,是不是使用额Swool?


谢谢


------------------ 原始邮件 ------------------
发件人: "Huxing Zhang"<hu...@apache.org>;
发送时间: 2019年7月18日(星期四) 上午9:39
收件人: "dev"<de...@dubbo.apache.org>;
抄送: "crazyxman01"<cr...@gmail.com>;
主题: Re: 给dubbo-php-framework开发者们的一封信



Hi,

It really glad to see so many improvement!
Hope someone in the dubbo-php-framework could take a look.
Let's try to contact the original author of this project.

On Wed, Jul 17, 2019 at 8:09 PM Ian Luo <ia...@gmail.com> wrote:
>
> forward to @dev
>
> ---------- Forwarded message ---------
> From: Jinxi Wang <cr...@gmail.com>
> Date: Wed, Jul 17, 2019 at 2:48 PM
> Subject: Re: 给dubbo-php-framework开发者们的一封信
> To: Ian Luo <ia...@gmail.com>
> Cc: Huxing Zhang <hu...@gmail.com>, <ki...@qq.com>
>
>
> 各位老师好!
>
>  本次对dubbo-php-framework进行了一次更新,主要涉及到consumer相关功能,新增和修改了一些功能,功能点已列到下方,
> github已经发出合并请求,如有不妥之处还望老师们给予指导。
>
> 以下功能已应用到本人公司产品中
>
> 新增及变动功能点
> 1、支持hessian数据序列化,解序列化,提供crazyxman/hessian-parser组件进行支持
> 2、dubbo调用传参通过新增Type类可绑定多种数据类型:short,int,integer,long,float,double,bool,boolean,string,arrayList,Map,Object
> 3、dubbo服务version,group如在配置文件中未设置,不在强制使用1.0.0,*作为校验,
> 请求头中根据发现的dubbo服务的version,group进行自适应设置
> 4、数据序列化方式根据dubbo服务中serialization参数或响应头中的数值,进行自适应的序列化和解序列化,默认还是使用fastjson格式
> 5、dubbo consumer抛出的异常不在是根异常Exception,定义了ConsumerException异常作为区分
> 6、接受数据超时不再是15秒和20次的限制,统一使用iotimeout控制获取数据的总时长,iotimeout可配
> 7、请求头中数据类型不再是统一的java/lang/Object,可根据传递的参数类型自动设置
> 8、redis连接方式与地址可设置到配置文件(agent+redis服务部署到其他主机时)
> 9、redis连接超时,读超时,连接重试次数可设置到配置文件
> 10、redis地址可设置多个, 当地址个数大于重试次数时可保证不会选择同一个地址重试
>
> 新增配置:
> [consumer_config]
> redis_connect_type = TCP //TCP,SOCK 默认TCP
> redis_hosts = 11.0.16.248:6379,11.0.16.249:6379 //多个host,以逗号分隔,默认
> 127.0.0.1:6379
> redis_connect_timeout = 1 // 默认1秒
> redis_read_timeout = 2 //默认2秒
> redis_retry_count = 1 //默认重试1次
>
> 各参数类型使用示例:
> require_once('dubbo-php-framework/consumer/Type.php');
> $service = 'com.imooc.springboot.dubbo.demo.DemoService';
> $proxy = FSOFApi::newProxy($service, 3);
>
> //其他参数类型到Type类中寻找即可,如果参数不指定类型会根据参数自身类型判定, 如下
> $ret = $proxy->invoke("sayHello", Type::integer(123));
> 等价
> $ret = $proxy->invoke("sayHello", 123);
>
> $ret = $proxy->invoke("sayHello2", Type::string("zhangsan"));
> $ret = $proxy->invoke("sayHello2", "zhangsan");
>
> $ret = $proxy->invoke("sayHello3",Type::arrayList(['a', 10000, "你好"]));
> $ret = $proxy->invoke("sayHello3",['a', 10000, "你好"]);
>
> $ret = $proxy->invoke("sayHello4", Type::map(['a'=>"b", 10 => "v"]));
> $ret = $proxy->invoke("sayHello4", ['a'=>"b", 10 => "v"]);
>
> $ret =
> $proxy->invoke("sayHello5",Type::object('com.imooc.springboot.dubbo.demo.dto.TestObjectDemo',
> ['name' => '张三', 'age' => 10]), Type::string("hello"), Type::integer(30));
>
> 盼复
> 祝好
>
> Ian Luo <ia...@gmail.com> 于2019年7月5日周五 上午11:47写道:
>
> > 现在 dubbo-php-framework 缺少维护者。期望 php 可以跟上 dubbo 2.7 的脚步。您能参与进来,欢迎欢迎。
> >
> > On Mon, Jun 17, 2019 at 11:18 AM Jinxi Wang <cr...@gmail.com> wrote:
> >
> >> 大家好!
> >>            因工作需要从github apache看到dubbo-php-framework产生较大兴趣,最近会发布一个稳定版本吗?
> >> 看目前只支持fastjson格式的数据传输,未来会支持其他序列化方式吗?
> >> 你们对dubbo-php-framework将来的规划是怎样的?现个人想根据此项目未来规划尝试开发参与进来!
> >>
> >> 盼复!
> >> 祝好!
> >>
> >



-- 
Best Regards!
Huxing

Re: 给dubbo-php-framework开发者们的一封信

Posted by Jinxi Wang <cr...@gmail.com>.
1. 目前是把dubbo-php-framework通过include文件的方式注册到框架中的,后续打算将此组件提交到composer管理加载。
2.
php与注册中心做长连接在php-fpm模式下是不合适,目前组件把连接注册中心的这部分单独抽了出来,也就是组件中的agent(c语言)服务,将发现的dubbo服务存到了redis中,注册中心变动都会实时同步到redis中,使用时从redis中拿dubbo服务地址连接即可。


needrunning <ne...@qq.com> 于2019年7月18日周四 下午11:27写道:

>
> 大家好 很高兴看到 dubbo-php-framework 还有继续更新的讨论,我目前主要开发语言也是PHP
>
> 最近在了解PHP业界在 关于dubbo分布式服务调用这块的场景,PHP服务化的资料很少,大家使用PHP调用后端
> 大多采用明确的接口地址,联调的方式,很少有接入服务注册中心的。
>
>  想请教 @Jinxi Wang两个问题
>
>  1 你们在你生产环境中的使用,把PHP这个客户端集成到来具体的框架中了吗 比如YII2?
>
>  2  PHP作为客户端 如何解决客户端与注册中心的长连机制的,是不是使用额Swool?
>
> 谢谢
>
> ------------------ 原始邮件 ------------------
> *发件人:* "Huxing Zhang"<hu...@apache.org>;
> *发送时间:* 2019年7月18日(星期四) 上午9:39
> *收件人:* "dev"<de...@dubbo.apache.org>;
> *抄送:* "crazyxman01"<cr...@gmail.com>;
> *主题:* Re: 给dubbo-php-framework开发者们的一封信
>
> Hi,
>
> It really glad to see so many improvement!
> Hope someone in the dubbo-php-framework could take a look.
> Let's try to contact the original author of this project.
>
> On Wed, Jul 17, 2019 at 8:09 PM Ian Luo <ia...@gmail.com> wrote:
> >
> > forward to @dev
> >
> > ---------- Forwarded message ---------
> > From: Jinxi Wang <cr...@gmail.com>
> > Date: Wed, Jul 17, 2019 at 2:48 PM
> > Subject: Re: 给dubbo-php-framework开发者们的一封信
> > To: Ian Luo <ia...@gmail.com>
> > Cc: Huxing Zhang <hu...@gmail.com>, <ki...@qq.com>
> >
> >
> > 各位老师好!
> >
> >  本次对dubbo-php-framework进行了一次更新,主要涉及到consumer相关功能,新增和修改了一些功能,功能点已列到下方,
> > github已经发出合并请求,如有不妥之处还望老师们给予指导。
> >
> > 以下功能已应用到本人公司产品中
> >
> > 新增及变动功能点
> > 1、支持hessian数据序列化,解序列化,提供crazyxman/hessian-parser组件进行支持
> >
> 2、dubbo调用传参通过新增Type类可绑定多种数据类型:short,int,integer,long,float,double,bool,boolean,string,arrayList,Map,Object
> > 3、dubbo服务version,group如在配置文件中未设置,不在强制使用1.0.0,*作为校验,
> > 请求头中根据发现的dubbo服务的version,group进行自适应设置
> >
> 4、数据序列化方式根据dubbo服务中serialization参数或响应头中的数值,进行自适应的序列化和解序列化,默认还是使用fastjson格式
> > 5、dubbo consumer抛出的异常不在是根异常Exception,定义了ConsumerException异常作为区分
> > 6、接受数据超时不再是15秒和20次的限制,统一使用iotimeout控制获取数据的总时长,iotimeout可配
> > 7、请求头中数据类型不再是统一的java/lang/Object,可根据传递的参数类型自动设置
> > 8、redis连接方式与地址可设置到配置文件(agent+redis服务部署到其他主机时)
> > 9、redis连接超时,读超时,连接重试次数可设置到配置文件
> > 10、redis地址可设置多个, 当地址个数大于重试次数时可保证不会选择同一个地址重试
> >
> > 新增配置:
> > [consumer_config]
> > redis_connect_type = TCP //TCP,SOCK 默认TCP
> > redis_hosts = 11.0.16.248:6379,11.0.16.249:6379 //多个host,以逗号分隔,默认
> > 127.0.0.1:6379
> > redis_connect_timeout = 1 // 默认1秒
> > redis_read_timeout = 2 //默认2秒
> > redis_retry_count = 1 //默认重试1次
> >
> > 各参数类型使用示例:
> > require_once('dubbo-php-framework/consumer/Type.php');
> > $service = 'com.imooc.springboot.dubbo.demo.DemoService';
> > $proxy = FSOFApi::newProxy($service, 3);
> >
> > //其他参数类型到Type类中寻找即可,如果参数不指定类型会根据参数自身类型判定, 如下
> > $ret = $proxy->invoke("sayHello", Type::integer(123));
> > 等价
> > $ret = $proxy->invoke("sayHello", 123);
> >
> > $ret = $proxy->invoke("sayHello2", Type::string("zhangsan"));
> > $ret = $proxy->invoke("sayHello2", "zhangsan");
> >
> > $ret = $proxy->invoke("sayHello3",Type::arrayList(['a', 10000, "你好"]));
> > $ret = $proxy->invoke("sayHello3",['a', 10000, "你好"]);
> >
> > $ret = $proxy->invoke("sayHello4", Type::map(['a'=>"b", 10 => "v"]));
> > $ret = $proxy->invoke("sayHello4", ['a'=>"b", 10 => "v"]);
> >
> > $ret =
> >
> $proxy->invoke("sayHello5",Type::object('com.imooc.springboot.dubbo.demo.dto.TestObjectDemo',
> > ['name' => '张三', 'age' => 10]), Type::string("hello"),
> Type::integer(30));
> >
> > 盼复
> > 祝好
> >
> > Ian Luo <ia...@gmail.com> 于2019年7月5日周五 上午11:47写道:
> >
> > > 现在 dubbo-php-framework 缺少维护者。期望 php 可以跟上 dubbo 2.7 的脚步。您能参与进来,欢迎欢迎。
> > >
> > > On Mon, Jun 17, 2019 at 11:18 AM Jinxi Wang <cr...@gmail.com>
> wrote:
> > >
> > >> 大家好!
> > >>            因工作需要从github
> apache看到dubbo-php-framework产生较大兴趣,最近会发布一个稳定版本吗?
> > >> 看目前只支持fastjson格式的数据传输,未来会支持其他序列化方式吗?
> > >> 你们对dubbo-php-framework将来的规划是怎样的?现个人想根据此项目未来规划尝试开发参与进来!
> > >>
> > >> 盼复!
> > >> 祝好!
> > >>
> > >
>
>
>
> --
> Best Regards!
> Huxing
>

回复: 给dubbo-php-framework开发者们的一封信

Posted by needrunning <ne...@qq.com>.
大家好 很高兴看到 dubbo-php-framework 还有继续更新的讨论,我目前主要开发语言也是PHP


最近在了解PHP业界在 关于dubbo分布式服务调用这块的场景,PHP服务化的资料很少,大家使用PHP调用后端 大多采用明确的接口地址,联调的方式,很少有接入服务注册中心的。


 想请教 @Jinxi Wang两个问题


 1 你们在你生产环境中的使用,把PHP这个客户端集成到来具体的框架中了吗 比如YII2?
 
 2  PHP作为客户端 如何解决客户端与注册中心的长连机制的,是不是使用额Swool?


谢谢


------------------ 原始邮件 ------------------
发件人: "Huxing Zhang"<hu...@apache.org>;
发送时间: 2019年7月18日(星期四) 上午9:39
收件人: "dev"<de...@dubbo.apache.org>;
抄送: "crazyxman01"<cr...@gmail.com>;
主题: Re: 给dubbo-php-framework开发者们的一封信



Hi,

It really glad to see so many improvement!
Hope someone in the dubbo-php-framework could take a look.
Let's try to contact the original author of this project.

On Wed, Jul 17, 2019 at 8:09 PM Ian Luo <ia...@gmail.com> wrote:
>
> forward to @dev
>
> ---------- Forwarded message ---------
> From: Jinxi Wang <cr...@gmail.com>
> Date: Wed, Jul 17, 2019 at 2:48 PM
> Subject: Re: 给dubbo-php-framework开发者们的一封信
> To: Ian Luo <ia...@gmail.com>
> Cc: Huxing Zhang <hu...@gmail.com>, <ki...@qq.com>
>
>
> 各位老师好!
>
>  本次对dubbo-php-framework进行了一次更新,主要涉及到consumer相关功能,新增和修改了一些功能,功能点已列到下方,
> github已经发出合并请求,如有不妥之处还望老师们给予指导。
>
> 以下功能已应用到本人公司产品中
>
> 新增及变动功能点
> 1、支持hessian数据序列化,解序列化,提供crazyxman/hessian-parser组件进行支持
> 2、dubbo调用传参通过新增Type类可绑定多种数据类型:short,int,integer,long,float,double,bool,boolean,string,arrayList,Map,Object
> 3、dubbo服务version,group如在配置文件中未设置,不在强制使用1.0.0,*作为校验,
> 请求头中根据发现的dubbo服务的version,group进行自适应设置
> 4、数据序列化方式根据dubbo服务中serialization参数或响应头中的数值,进行自适应的序列化和解序列化,默认还是使用fastjson格式
> 5、dubbo consumer抛出的异常不在是根异常Exception,定义了ConsumerException异常作为区分
> 6、接受数据超时不再是15秒和20次的限制,统一使用iotimeout控制获取数据的总时长,iotimeout可配
> 7、请求头中数据类型不再是统一的java/lang/Object,可根据传递的参数类型自动设置
> 8、redis连接方式与地址可设置到配置文件(agent+redis服务部署到其他主机时)
> 9、redis连接超时,读超时,连接重试次数可设置到配置文件
> 10、redis地址可设置多个, 当地址个数大于重试次数时可保证不会选择同一个地址重试
>
> 新增配置:
> [consumer_config]
> redis_connect_type = TCP //TCP,SOCK 默认TCP
> redis_hosts = 11.0.16.248:6379,11.0.16.249:6379 //多个host,以逗号分隔,默认
> 127.0.0.1:6379
> redis_connect_timeout = 1 // 默认1秒
> redis_read_timeout = 2 //默认2秒
> redis_retry_count = 1 //默认重试1次
>
> 各参数类型使用示例:
> require_once('dubbo-php-framework/consumer/Type.php');
> $service = 'com.imooc.springboot.dubbo.demo.DemoService';
> $proxy = FSOFApi::newProxy($service, 3);
>
> //其他参数类型到Type类中寻找即可,如果参数不指定类型会根据参数自身类型判定, 如下
> $ret = $proxy->invoke("sayHello", Type::integer(123));
> 等价
> $ret = $proxy->invoke("sayHello", 123);
>
> $ret = $proxy->invoke("sayHello2", Type::string("zhangsan"));
> $ret = $proxy->invoke("sayHello2", "zhangsan");
>
> $ret = $proxy->invoke("sayHello3",Type::arrayList(['a', 10000, "你好"]));
> $ret = $proxy->invoke("sayHello3",['a', 10000, "你好"]);
>
> $ret = $proxy->invoke("sayHello4", Type::map(['a'=>"b", 10 => "v"]));
> $ret = $proxy->invoke("sayHello4", ['a'=>"b", 10 => "v"]);
>
> $ret =
> $proxy->invoke("sayHello5",Type::object('com.imooc.springboot.dubbo.demo.dto.TestObjectDemo',
> ['name' => '张三', 'age' => 10]), Type::string("hello"), Type::integer(30));
>
> 盼复
> 祝好
>
> Ian Luo <ia...@gmail.com> 于2019年7月5日周五 上午11:47写道:
>
> > 现在 dubbo-php-framework 缺少维护者。期望 php 可以跟上 dubbo 2.7 的脚步。您能参与进来,欢迎欢迎。
> >
> > On Mon, Jun 17, 2019 at 11:18 AM Jinxi Wang <cr...@gmail.com> wrote:
> >
> >> 大家好!
> >>            因工作需要从github apache看到dubbo-php-framework产生较大兴趣,最近会发布一个稳定版本吗?
> >> 看目前只支持fastjson格式的数据传输,未来会支持其他序列化方式吗?
> >> 你们对dubbo-php-framework将来的规划是怎样的?现个人想根据此项目未来规划尝试开发参与进来!
> >>
> >> 盼复!
> >> 祝好!
> >>
> >



-- 
Best Regards!
Huxing

Re: 给dubbo-php-framework开发者们的一封信

Posted by Ian Luo <ia...@gmail.com>.
I already talked to the original author. He will take a look once he has
time.

On Thu, Jul 18, 2019 at 9:39 AM Huxing Zhang <hu...@apache.org> wrote:

> Hi,
>
> It really glad to see so many improvement!
> Hope someone in the dubbo-php-framework could take a look.
> Let's try to contact the original author of this project.
>
> On Wed, Jul 17, 2019 at 8:09 PM Ian Luo <ia...@gmail.com> wrote:
> >
> > forward to @dev
> >
> > ---------- Forwarded message ---------
> > From: Jinxi Wang <cr...@gmail.com>
> > Date: Wed, Jul 17, 2019 at 2:48 PM
> > Subject: Re: 给dubbo-php-framework开发者们的一封信
> > To: Ian Luo <ia...@gmail.com>
> > Cc: Huxing Zhang <hu...@gmail.com>, <ki...@qq.com>
> >
> >
> > 各位老师好!
> >
> >  本次对dubbo-php-framework进行了一次更新,主要涉及到consumer相关功能,新增和修改了一些功能,功能点已列到下方,
> > github已经发出合并请求,如有不妥之处还望老师们给予指导。
> >
> > 以下功能已应用到本人公司产品中
> >
> > 新增及变动功能点
> > 1、支持hessian数据序列化,解序列化,提供crazyxman/hessian-parser组件进行支持
> >
> 2、dubbo调用传参通过新增Type类可绑定多种数据类型:short,int,integer,long,float,double,bool,boolean,string,arrayList,Map,Object
> > 3、dubbo服务version,group如在配置文件中未设置,不在强制使用1.0.0,*作为校验,
> > 请求头中根据发现的dubbo服务的version,group进行自适应设置
> >
> 4、数据序列化方式根据dubbo服务中serialization参数或响应头中的数值,进行自适应的序列化和解序列化,默认还是使用fastjson格式
> > 5、dubbo consumer抛出的异常不在是根异常Exception,定义了ConsumerException异常作为区分
> > 6、接受数据超时不再是15秒和20次的限制,统一使用iotimeout控制获取数据的总时长,iotimeout可配
> > 7、请求头中数据类型不再是统一的java/lang/Object,可根据传递的参数类型自动设置
> > 8、redis连接方式与地址可设置到配置文件(agent+redis服务部署到其他主机时)
> > 9、redis连接超时,读超时,连接重试次数可设置到配置文件
> > 10、redis地址可设置多个, 当地址个数大于重试次数时可保证不会选择同一个地址重试
> >
> > 新增配置:
> > [consumer_config]
> > redis_connect_type = TCP //TCP,SOCK 默认TCP
> > redis_hosts = 11.0.16.248:6379,11.0.16.249:6379 //多个host,以逗号分隔,默认
> > 127.0.0.1:6379
> > redis_connect_timeout = 1 // 默认1秒
> > redis_read_timeout = 2 //默认2秒
> > redis_retry_count = 1 //默认重试1次
> >
> > 各参数类型使用示例:
> > require_once('dubbo-php-framework/consumer/Type.php');
> > $service = 'com.imooc.springboot.dubbo.demo.DemoService';
> > $proxy = FSOFApi::newProxy($service, 3);
> >
> > //其他参数类型到Type类中寻找即可,如果参数不指定类型会根据参数自身类型判定, 如下
> > $ret = $proxy->invoke("sayHello", Type::integer(123));
> > 等价
> > $ret = $proxy->invoke("sayHello", 123);
> >
> > $ret = $proxy->invoke("sayHello2", Type::string("zhangsan"));
> > $ret = $proxy->invoke("sayHello2", "zhangsan");
> >
> > $ret = $proxy->invoke("sayHello3",Type::arrayList(['a', 10000, "你好"]));
> > $ret = $proxy->invoke("sayHello3",['a', 10000, "你好"]);
> >
> > $ret = $proxy->invoke("sayHello4", Type::map(['a'=>"b", 10 => "v"]));
> > $ret = $proxy->invoke("sayHello4", ['a'=>"b", 10 => "v"]);
> >
> > $ret =
> >
> $proxy->invoke("sayHello5",Type::object('com.imooc.springboot.dubbo.demo.dto.TestObjectDemo',
> > ['name' => '张三', 'age' => 10]), Type::string("hello"),
> Type::integer(30));
> >
> > 盼复
> > 祝好
> >
> > Ian Luo <ia...@gmail.com> 于2019年7月5日周五 上午11:47写道:
> >
> > > 现在 dubbo-php-framework 缺少维护者。期望 php 可以跟上 dubbo 2.7 的脚步。您能参与进来,欢迎欢迎。
> > >
> > > On Mon, Jun 17, 2019 at 11:18 AM Jinxi Wang <cr...@gmail.com>
> wrote:
> > >
> > >> 大家好!
> > >>            因工作需要从github
> apache看到dubbo-php-framework产生较大兴趣,最近会发布一个稳定版本吗?
> > >> 看目前只支持fastjson格式的数据传输,未来会支持其他序列化方式吗?
> > >> 你们对dubbo-php-framework将来的规划是怎样的?现个人想根据此项目未来规划尝试开发参与进来!
> > >>
> > >> 盼复!
> > >> 祝好!
> > >>
> > >
>
>
>
> --
> Best Regards!
> Huxing
>

Re: 给dubbo-php-framework开发者们的一封信

Posted by Huxing Zhang <hu...@apache.org>.
Hi,

It really glad to see so many improvement!
Hope someone in the dubbo-php-framework could take a look.
Let's try to contact the original author of this project.

On Wed, Jul 17, 2019 at 8:09 PM Ian Luo <ia...@gmail.com> wrote:
>
> forward to @dev
>
> ---------- Forwarded message ---------
> From: Jinxi Wang <cr...@gmail.com>
> Date: Wed, Jul 17, 2019 at 2:48 PM
> Subject: Re: 给dubbo-php-framework开发者们的一封信
> To: Ian Luo <ia...@gmail.com>
> Cc: Huxing Zhang <hu...@gmail.com>, <ki...@qq.com>
>
>
> 各位老师好!
>
>  本次对dubbo-php-framework进行了一次更新,主要涉及到consumer相关功能,新增和修改了一些功能,功能点已列到下方,
> github已经发出合并请求,如有不妥之处还望老师们给予指导。
>
> 以下功能已应用到本人公司产品中
>
> 新增及变动功能点
> 1、支持hessian数据序列化,解序列化,提供crazyxman/hessian-parser组件进行支持
> 2、dubbo调用传参通过新增Type类可绑定多种数据类型:short,int,integer,long,float,double,bool,boolean,string,arrayList,Map,Object
> 3、dubbo服务version,group如在配置文件中未设置,不在强制使用1.0.0,*作为校验,
> 请求头中根据发现的dubbo服务的version,group进行自适应设置
> 4、数据序列化方式根据dubbo服务中serialization参数或响应头中的数值,进行自适应的序列化和解序列化,默认还是使用fastjson格式
> 5、dubbo consumer抛出的异常不在是根异常Exception,定义了ConsumerException异常作为区分
> 6、接受数据超时不再是15秒和20次的限制,统一使用iotimeout控制获取数据的总时长,iotimeout可配
> 7、请求头中数据类型不再是统一的java/lang/Object,可根据传递的参数类型自动设置
> 8、redis连接方式与地址可设置到配置文件(agent+redis服务部署到其他主机时)
> 9、redis连接超时,读超时,连接重试次数可设置到配置文件
> 10、redis地址可设置多个, 当地址个数大于重试次数时可保证不会选择同一个地址重试
>
> 新增配置:
> [consumer_config]
> redis_connect_type = TCP //TCP,SOCK 默认TCP
> redis_hosts = 11.0.16.248:6379,11.0.16.249:6379 //多个host,以逗号分隔,默认
> 127.0.0.1:6379
> redis_connect_timeout = 1 // 默认1秒
> redis_read_timeout = 2 //默认2秒
> redis_retry_count = 1 //默认重试1次
>
> 各参数类型使用示例:
> require_once('dubbo-php-framework/consumer/Type.php');
> $service = 'com.imooc.springboot.dubbo.demo.DemoService';
> $proxy = FSOFApi::newProxy($service, 3);
>
> //其他参数类型到Type类中寻找即可,如果参数不指定类型会根据参数自身类型判定, 如下
> $ret = $proxy->invoke("sayHello", Type::integer(123));
> 等价
> $ret = $proxy->invoke("sayHello", 123);
>
> $ret = $proxy->invoke("sayHello2", Type::string("zhangsan"));
> $ret = $proxy->invoke("sayHello2", "zhangsan");
>
> $ret = $proxy->invoke("sayHello3",Type::arrayList(['a', 10000, "你好"]));
> $ret = $proxy->invoke("sayHello3",['a', 10000, "你好"]);
>
> $ret = $proxy->invoke("sayHello4", Type::map(['a'=>"b", 10 => "v"]));
> $ret = $proxy->invoke("sayHello4", ['a'=>"b", 10 => "v"]);
>
> $ret =
> $proxy->invoke("sayHello5",Type::object('com.imooc.springboot.dubbo.demo.dto.TestObjectDemo',
> ['name' => '张三', 'age' => 10]), Type::string("hello"), Type::integer(30));
>
> 盼复
> 祝好
>
> Ian Luo <ia...@gmail.com> 于2019年7月5日周五 上午11:47写道:
>
> > 现在 dubbo-php-framework 缺少维护者。期望 php 可以跟上 dubbo 2.7 的脚步。您能参与进来,欢迎欢迎。
> >
> > On Mon, Jun 17, 2019 at 11:18 AM Jinxi Wang <cr...@gmail.com> wrote:
> >
> >> 大家好!
> >>            因工作需要从github apache看到dubbo-php-framework产生较大兴趣,最近会发布一个稳定版本吗?
> >> 看目前只支持fastjson格式的数据传输,未来会支持其他序列化方式吗?
> >> 你们对dubbo-php-framework将来的规划是怎样的?现个人想根据此项目未来规划尝试开发参与进来!
> >>
> >> 盼复!
> >> 祝好!
> >>
> >



-- 
Best Regards!
Huxing