Hi,

I’m not sure if I misunderstood what you mean.
Do you mean we need a global load balance? If we want to achieve this, we may 
need to use a gateway to achieve.
Or you mean we just need to ensure that all client use the same load balance 
strategy. I think this can be controlled by the user.
If we want all client use the same strategy and make this transparent to user, 
we may need all clients get the configuration from a unified storage or 
configuration center.
Of course, users can also implement such a strategy, because the select action 
has been extracted from client, it can be easily extended.

Thanks,
Wenjun Ruan

From: Eason Chen <[email protected]>
Date: Tuesday, May 11, 2021 at 9:43 PM
To: [email protected] <[email protected]>
Subject: Re: [Discuss] Support multiple load balance strategy in sdk
External Email

Hi,
If there is not a global config store for all clients to share, and let
each client create its own strategy, it seems will come out some problems.

On Tue, May 11, 2021 at 10:50 AM Ruan, Wenjun <[email protected]>
wrote:

>
> Yeal, currently the server address information is input from
> LiteClientConfig, and stored at AbstractLiteClient.eventMeshServerList.
> If we want to implement this feature, we may need to do two change.
> First, we need to change the address format at
> liteEventMeshAddr.liteEventMeshAddr, currently it is 127.0.0.1:10105;
> 127.0.0.2:10105,
> we need to change to 127.0.0.1:10105:1;127.0.0.2:10105:1 the last number
> is weight.
> Second, when the consumer client or producer client initialize,
> we will process the address information and create the load strategy
> class, store the server address with the weight information at the load
> strategy we created.
> Each client need to create their own load strategy, this is not shared by
> all clients. So this is not a global load.
>
> Thanks,
> Wenjun Ruan
>
> From: majorhe <[email protected]>
> Date: Monday, May 10, 2021 at 10:07 PM
> To: [email protected] <[email protected]>
> Subject: Re: [Discuss] Support multiple load balance strategy in sdk
> External Email
>
> Great, but there are still some points that we need to discuss in detail.
> For example, if we use the weight random or weight round-robin strategy,
> where is the weight information stored so that all clients can get it?
>
> Ruan, Wenjun <[email protected]> 于2021年5月8日周六 下午4:40写道:
>
> >
> > In current HTTP SDK, we use LiteProducer to publish messages. We store
> the
> > server address in the eventMeshServerList property of the LiteProducer,
> the
> > producer is responsible for the selection work.
> >
> > If we want to support multiple selection strategy, we can define a
> > interface named  HostManager or HostSelector, we store the address in the
> > HostManager and it can have different implementation according to a
> > specific strategy. The producer uses the HostManager to do the selecte
> > work. The User can use a specific implementation by configuration.
> >
> > Best wish
> > Wenjun Ruan
> > From: Eason Chen <[email protected]>
> > Date: Saturday, May 8, 2021 at 3:47 PM
> > To: [email protected] <[email protected]>
> > Subject: Re: [Discuss] Support multiple load balance strategy in sdk
> > External Email
> >
> > Hi,
> > Good suggestion, could you describe your design based on current sdk?
> >
> > Eason
> >
> > On Sat, May 8, 2021 at 11:37 AM Ruan, Wenjun <[email protected]>
> > wrote:
> >
> > > Hi team,
> > >
> > > As mention in this issue<
> > >
> >
> https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fapache%2Fincubator-eventmesh%2Fissues%2F333&amp;data=04%7C01%7Cweruan%40ebay.com%7Ced52051a2a3741a4c78008d91482c331%7C46326bff992841a0baca17c16c94ea99%7C0%7C0%7C637563374118876562%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=xx3kC3rTWogMUqo%2BGhdPbEzV9vHPfWqINQWUzaDH%2Biw%3D&amp;reserved=0
> >,
> > at present, if
> > > we use HTTP SDK to publish a message, the producer will use random
> > strategy
> > > to select the target server host, this may work well in most
> scenarios.
> > > But sometimes if the servers have different hardware we may want to use
> > the
> > > weighted polling method to select the server.
> > >
> > > So I suggest adding additional load strategy to choose server in SDK.
> > >
> > > Best wish,
> > > Wenjun Ruan
> > >
> >
>

Reply via email to