
Έχω ένα loadbalancer nginx μπροστά από δύο περιπτώσεις γάτος κάθε περιέχει μια εφαρμογή εκκίνησης την άνοιξη. Κάθε αίτηση εκκίνησης την άνοιξη εκτελεί μια παρτίδα που γράφει δεδομένα σε μια βάση δεδομένων. Η παρτίδα εκτελεί κάθε μέρα σε μία. Το πρόβλημα είναι ότι και οι δύο περιπτώσεις εκτελέσει την παρτίδα simultaniously το οποίο δεν θέλω.


Είναι ένας τρόπος για να κρατήσει τις φουρνιές αναπτύσσεται σε δύο περιπτώσεις και πείτε γάτος ή Nginx για να ξεκινήσει η παρτίδα στο κεντρικό διακομιστή (και ο διακομιστής σκλάβος δεν λειτουργεί η παρτίδα) εκεί.


Αν ένας από τους διακομιστές σταματά, ο δεύτερος διακομιστής θα μπορούσε να αρχίσει την παρτίδα για λογαριασμό του.


Είναι ένα εργαλείο για nginx ή γάτος (ή κάποια άλλη τεχνολογία) για να κάνει αυτό;


ευχαριστώ εκ των προτέρων.

 
Ενεργοποίηση παρτίδας σε ένα μόνο παράδειγμα διακομιστή
=======================================================



Άνοιξη παρτίδας χρησιμοποιεί μια βάση δεδομένων για τις θέσεις εργασίας του (JobsRepository). Εξ ορισμού ένα στην πηγή δεδομένων της μνήμης χρησιμοποιείται για την παρακολούθηση της λειτουργίας θέσεις εργασίας και την κατάστασή τους. Κατά τη ρύθμισή σας, οι 2 περιπτώσεις είναι (πιθανότατα) χρησιμοποιώντας τα δικά τους στη βάση δεδομένων της μνήμης. Πολλαπλές εμφανίσεις του εαρινού παρτίδας μπορούν να συντονιστούν μεταξύ τους ως σύμπλεγμα και μπορεί κανείς να τρέξει θέσεις εργασίας, ενώ το άλλο αντίγραφο ασφαλείας actasa, αν η jobsRepository βάση δεδομένων είναι κοινή. Για αυτό θα πρέπει να ρυθμίσετε τις 2 περιπτώσεις να χρησιμοποιούν μια κοινή πηγή δεδομένων.


Εδώ είναι μερικά έγγραφα:
 <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>

 

Εάν σχεδιάζετε δύο περιπτώσεις του server εφαρμογή για να εκτελέσετε την ίδια εργασία την ίδια στιγμή, στη συνέχεια, από το σχεδιασμό, το ένα θα καταφέρει να δημιουργήσει ένα παράδειγμα εργασίας και η άλλη θα αποτύχει (και αυτή η αποτυχία μπορεί να αγνοηθεί). Δείτε [Javadoc της JobRepository](https://docs.spring.io/spring-batch/docs/4.2.x/api/org/springframework/batch/core/repository/JobRepository.html#createJobExecution-java.lang.String-org.springframework.batch.core.JobParameters-) . Αυτός είναι ένας από τους ρόλους του αποθετηρίου δουλειά: να ενεργήσει ως εγγύηση κατά διπλούν εκτελέσεις εργασίας σε περιβάλλον συμπλέγματος.



> 
> Αν ένας από τους διακομιστές σταματά, ο δεύτερος διακομιστής θα μπορούσε να αρχίσει την παρτίδα για λογαριασμό του. Είναι ένα εργαλείο για nginx ή γάτος (ή κάποια άλλη τεχνολογία) για να κάνει αυτό;
> 
> 
> 


Πιστεύω ότι δεν υπάρχει ανάγκη για τέτοιου είδους εργαλείο ή τεχνολογία. Αν ένας από τους διακομιστές είναι κάτω κατά τη στιγμή του προγράμματος, η άλλη θα είναι σε θέση να πάρει τα πράγματα και να επιτύχουν στην έναρξη της εργασίας.

 