Aktiver Batch på bare én Server-forekomst

stemmer
0

Jeg har en nginx loadbalancer foran to tomcat tilfeller hver inneholder en fjær støvel søknad. Hver vår boot programmet utfører en batch som skriver data i en database. Batch utfører hver dag på 1 am. Problemet er at begge tilfeller utføre batch simultaniously som jeg ikke ønsker.

Er det en måte å holde batchs utplassert i to tilfeller og fortelle Tomcat eller Nginx å starte batch i master server (og slave serveren ikke kjøre batch).

Hvis en av serverne stopper, kan den andre serveren starte batch på hans vegne.

Er det et verktøy i Nginx eller Tomcat (eller noen annen teknologi) for å gjøre det?

takk på forhånd.

Publisert på 14/02/2020 klokken 00:02
kilden bruker
På andre språk...                            


2 svar

stemmer
0

Spring Batch bruker en database for sine arbeidsplasser (JobsRepository). Som standard en i minnet datakilden brukes til å holde oversikt over kjørende jobber og deres status. I ditt oppsett, de 2 tilfellene er (mest sannsynlig) ved hjelp av sine egne i minnet database. Multiple forekomster av Spring Batch kan koordinere med hverandre som en gruppe, og man kan kjøre jobber, mens den andre actasa backup, hvis jobsRepository databasen er delt. For dette må du konfigurere de 2 tilfeller å bruke en felles datakilde.

Her er noen dokumenter: https://docs.spring.io/spring-batch/docs/current/reference/html/index-single.html#jobrepository

https://docs.spring.io/spring-batch/docs/current/reference/html/job.html#configuringJobRepository

Svarte 14/02/2020 kl. 03:00
kilden bruker

stemmer
0

Hvis du designe to app tjenerforekomster til å kjøre den samme jobben på samme tid, så for design, vil man lykkes å skape en jobb forekomst og den andre vil mislykkes (og denne feilen kan ignoreres). Se Javadoc av JobRepository . Dette er en av rollene i jobben depotet: å fungere som en sikkerhet mot dupliserte jobb henrettelser i et klyngemiljø.

Hvis en av serverne stopper, kan den andre serveren starte batch på hans vegne. Er det et verktøy i Nginx eller Tomcat (eller noen annen teknologi) for å gjøre det?

Jeg tror det ikke er behov for et slikt verktøy eller teknologi. Hvis en av serverne er nede på den tiden av planen, vil den andre kunne ta ting over og lykkes i lanseringen jobben.

Svarte 24/02/2020 kl. 15:40
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more