Not sure whether I fully understood the question but if you are asking how
the StandaloneHaServices notify its listeners about a changed REST endpoint
address, then this is not possible. The StandaloneHaServices do not
tolerate failures of the Dispatcher, ResourceManager, JobMaster or
WebMonitorEndpoint. The contract is that the addresses stored in the
StandaloneHaServices don't change. Hence, if you want to enable HA for the
MiniCluster, then one would have to start a ZooKeeper cluster without the
EmbeddedLeaderService.

Cheers,
Till

On Mon, Aug 5, 2019 at 1:52 PM Zili Chen <wander4...@gmail.com> wrote:

> Yes I can understand the idea.
>
> One more question, as you mentioned, the EmbeddedLeaderService
> is not needed. However, from our current codebase, if we configure
> rest.bind-port as "0", i.e., resolve the port at the runtime,
> we actually resolve the port on WebMonitorEndpoint#start.
> But WebMonitorEndpoint#<init> requires HaService and
> StandaloneHaService#<init> requires pre-configured port.
>
> How we fits this scenario into StandaloneHaService instead of
> EmbeddedLeaderService which publish leader host:port at the
> runtime?
>
> Best,
> tison.
>
>
> Till Rohrmann <trohrm...@apache.org> 于2019年8月5日周一 下午7:29写道:
>
> > The idea of the EmbeddedLeaderService is to give you ZooKeeper like high
> > availability if all components run inside of the same process. That way
> it
> > is also easy to test HA functionality without having to start ZooKeeper.
> >
> > Technically, the EmbeddedLeaderService is not needed but it is very handy
> > to have.
> >
> > Cheers,
> > Till
> >
> > On Mon, Aug 5, 2019 at 10:43 AM Zili Chen <wander4...@gmail.com> wrote:
> >
> > > Investigated the usage of EmbeddedLeaderService, as
> > > you said, it is mainly used in MiniCluster.
> > >
> > > The difference between EmbeddedLeaderService and
> > > ZooKeeperLeader(Election|Retrieval)Service is that
> > > the latter uses component host and port pre-configured
> > > while the former configured at the runtime.
> > >
> > > I'm not sure when proceeding FLINK-10333 whether
> > > implement such a in memory leader election service
> > > or let MiniCluster use the standalone one is preferred.
> > >
> > > Best,
> > > tison.
> > >
> > >
> > > Zili Chen <wander4...@gmail.com> 于2019年8月5日周一 下午4:39写道:
> > >
> > > > Hi Till,
> > > >
> > > > SingleLeaderElectionService is an effectively subclass of
> > > > EmbeddedLeaderService. The merge work can be done as the
> > > > minor patch attached.
> > > >
> > > > I came into this area when working on FLINK-10333, implementing
> > > > LeaderElectionService as the document describes. I noticed that
> > > > besides Standalone and ZooKeeper implementation there is an
> > > > in memory LeaderElectionService, EmbeddedLeaderService.
> > > >
> > > > Before thinking whether it could be replace with the Standalone
> > > > one, I found SingleLeaderElectionService which is an effectively
> > > > subclass of it. Thus I started this issue to hear from the
> > > > community.
> > > >
> > > > Best,
> > > > tison.
> > > >
> > > >
> > > > Till Rohrmann <trohrm...@apache.org> 于2019年8月2日周五 下午5:59写道:
> > > >
> > > >> I think at the moment SingleLeaderElectionService is not really used
> > > since
> > > >> it is part of the YarnIntraNonHaMasterServices. The idea of these ha
> > > >> services was to offer a different ha implementation which slightly
> > > >> different guarantees. Concretely, the YarnIntraNonHaMasterServices
> > > handle
> > > >> operator and TaskManager faults but not master faults.
> > > >>
> > > >> The EmbeddedHaServices are only used by the MiniCluster.
> > > >>
> > > >> I'm not so sure whether the refactoring is so easy because
> > > >> EmbeddedLeaderElectionService is an inner class of
> > EmbeddedLeaderService
> > > >> and calls methods of this class. Why do you wanna change anything
> > there?
> > > >>
> > > >> Cheers,
> > > >> Till
> > > >>
> > > >> On Fri, Aug 2, 2019 at 6:33 AM Zili Chen <wander4...@gmail.com>
> > wrote:
> > > >>
> > > >> > Hi devs,
> > > >> >
> > > >> > I found that these two classes are quite similar except
> > > >> > SingleLeaderElectionService has a pre-config leader id.
> > > >> >
> > > >> > However, I don't see use points of that leader id. Also
> > > >> > a random UUID would work as a DEFAULT_LEADER_ID(0).
> > > >> > I consider whether we could replace SingleLeaderElectionService
> > > >> > with EmbeddedLeaderElectionService, or merge.
> > > >> >
> > > >> > Best,
> > > >> > tison.
> > > >> >
> > > >>
> > > >
> > >
> >
>

Reply via email to