Ray

Results 167 comments of Ray

为了防止attachment被调用方误用,目前并没有开放这个功能。 如果是通用行为需要透传参数,如认证信息等,建议通过实现自定义的filter来只透传指定参数。关于spi扩展可以参考https://github.com/weibocom/motan/wiki/zh_developguide#编写一个motan扩展

@fallsea 已经支持了,可以通过RpcContext传递 RpcContext.getContext().setRpcAttachment("k","v"); RpcContext.getContext().getRequest().getAttachments().get("k");

ActiveWeightLoadBalance 主要是实现近似能者多劳的负载均衡模式,适合应用在server节点处理能力不太均匀的场景,并不会特别的考虑预热相关的问题。如果server节点处理性能相近的情况下,可以使用轮询或随机的负载均衡方式。 关于你提到的两个问题,我说一下我个人的理解: 1、服务预热貌似也没有通用的做法,我们内部一般是在正式提供服务前通过预热脚本对关键服务和关键路径进行预热,预热完成后再正式对外提供服务,这样做的好处是不需要使用线上业务请求进行预热,对业务请求尽可能是无损的,缺点是需要对运维流程增加一定复杂度。 2、通过负载均衡使用少量请求对新节点进行预热,可以减少新节点放量瞬间大量请求失败。但是这少部分流量依然有可能会超时失败,是否采样这种方式,取决于是否能把对业务请求的影响减少到可接受的程度,跟业务场景相关吧

motan server端启动后需要调用下面的开关进行注册服务,这段时间就是留给预热的,可以在预热完成后触发开关变更,然后在正式注册并对外提供服务。 ``` java MotanSwitcherUtil.setSwitcherValue(MotanConstants.REGISTRY_HEARTBEAT_SWITCHER, true) ```

感谢反馈,异常的原因是异步处理消息线程池满时,消息还未进行decode,类型转换错误。将在下个release版本fix

支持。需要先依赖serialization扩展包 ```xml com.weibo serialization-extension 1.1.4 ``` 然后在client和server端的protocol配置中都增加`serialization="protobuf"`就可以了

demo模块中有个'PbParamService',可以参考这个demo试试。 server端类和配置:Motan2Server、motan2_demo_server.xml client端类和配置:Motan2RpcClient、motan2_demo_client.xml

目前不支持同时使用多个consul注册中心。 这块是考虑由consul来实现多idc同步,client端只和本地agent进行通信。为避免建立多次链接,底层使用的EcwidClient设置成了静态。后续版本会去掉这个限制,请关注后续版本,谢谢。

目前不支持,已经计划在后续的版本中提供disable这个策略的能力 可以先试试调大maxworker数来减少reject。线程池的线程是按实际使用动态创建的,并不一定创建max个线程。