Hi Jason,

Thanks for sharing your opinion :) 
This is actually what we are currently doing, for now, as we do not find a 
better solution for this yet.

Best
Dat

On 2019/06/12 08:28:32, Jason Joo <[email protected]> wrote: 
> Hi, Tien
> 
> Agree to you that it will break the principle of design if overriding 
> toString().
> Currently consist hash of load balance only support specifying which 
> argument(s) can take charge in it but not support specify certain property of 
> a parameter to do so.
> 
> For better understanding maybe add a parameter like
> 
> > MyResponse getResponse(String partitionKey, MyRequestParams params);
> 
> 
> may be more easy.
> 
> It's only my opinion.
> 
> 
> best regards,
> 
> Jason
> 
> > On Jun 12, 2019, at 15:31, [email protected] wrote:
> > 
> > Dear Jason,
> > 
> > I am aware of that. 
> > However, as the MyRequestParams has multiple fields, we would like to avoid 
> > implementing the toString method that return a string containing only the 
> > URI field.
> > This would break the purpose of the toString method.
> > 
> > Do you know any other approaches/work around for this?
> > 
> > Best
> > Dat
> > 
> > On 2019/06/12 00:56:42, Jason Joo <[email protected]> wrote: 
> >> Hi, Tien
> >> 
> >> Consistent hash is relying mainly the object's "toString()" protocol. So 
> >> pls make sure your objects have a unique and stable toString() method and 
> >> it will be ok.
> >> 
> >> best regards,
> >> 
> >> Jason
> >> 
> >>> On Jun 11, 2019, at 16:58, [email protected] wrote:
> >>> 
> >>> Dear experts,
> >>> 
> >>> We are using Dubbo to export our services. For data load balancing, we 
> >>> would like to use the consistent hash load balancer.
> >>> For the default usage of this load balancer, we can define either one or 
> >>> several parameters of the consumed method to be used as the hashing data.
> >>> We wonder if it is possible to target the hashing on the field of an 
> >>> object passed as the param.
> >>> For instance, the method interface is as follows:
> >>> 
> >>> MyResponse getResponse(MyRequestParams params);
> >>> 
> >>> The object params has a field named URI, which we would like to apply the 
> >>> hash algorithm upon.
> >>> Of course, we can modify our method to:
> >>> 
> >>> MyResponse getResponse(String uri, MyRequestParams params);
> >>> 
> >>> But this really is contradictory with the design goal of MyRequestParam 
> >>> object (which is defined to wrap all our request params into one object)
> >>> 
> >>> Best regards
> >>> Tien Dat PHAN
> >> 
> >> 
> 
> 

Reply via email to