forward to @dev
---------- Forwarded message ---------
From: Jinxi Wang <[email protected]>
Date: Wed, Jul 17, 2019 at 2:48 PM
Subject: Re: 给dubbo-php-framework开发者们的一封信
To: Ian Luo <[email protected]>
Cc: Huxing Zhang <[email protected]>, <[email protected]>
各位老师好!
本次对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 <[email protected]> 于2019年7月5日周五 上午11:47写道:
> 现在 dubbo-php-framework 缺少维护者。期望 php 可以跟上 dubbo 2.7 的脚步。您能参与进来,欢迎欢迎。
>
> On Mon, Jun 17, 2019 at 11:18 AM Jinxi Wang <[email protected]> wrote:
>
>> 大家好!
>> 因工作需要从github apache看到dubbo-php-framework产生较大兴趣,最近会发布一个稳定版本吗?
>> 看目前只支持fastjson格式的数据传输,未来会支持其他序列化方式吗?
>> 你们对dubbo-php-framework将来的规划是怎样的?现个人想根据此项目未来规划尝试开发参与进来!
>>
>> 盼复!
>> 祝好!
>>
>