Ați colectat și analizat metrici direct de pe servere în mediul de producție în cadrul ultimului dvs. proiect?
Java
Care este diferența dintre utilizarea synchronizedMap și ConcurrentHashMap pentru asigurarea siguranței în fire în colecții?
Ce metode pot fi aplicate pentru a crește viteza de răspuns a unei tabele care procesează aproximativ 100 de mii de înregistrări noi zilnic, și cum va afecta acest lucru realizarea eșantionărilor săptămânale?
Care sunt motivele pentru limitarea numărului de câmpuri indexabile în baza de date?
Explicați conceptul de blocare completă în gestionarea bazelor de date și caracteristicile sale.
Ce consecințe pot apărea la crearea unui index într-un tabel cu un milion de rânduri?
Cum să afli interogarea SQL executată în PostgreSQL?
Ce nume ar trebui să folosesc pentru a-ți vorbi?
Care sunt costurile temporale pentru efectuarea operațiunilor de căutare a elementului maxim atunci când se utilizează ArrayList, dacă elementele sunt adăugate rar?
Cum se evaluează complexitatea temporală a operației de inserare a unui element în structura de date TreeMap?
Ce alte metode, în afară de multithreading, pot fi utilizate pentru a crește eficiența unui serviciu care generează rapoarte și care efectuează 4 solicitări HTTP paralele către diferite sisteme?
Cum se pot optimiza sau elimina erorile dintr-o interogare SQL?
Cum se poate implementa un mecanism de blocare pesimistă pentru a asigura integritatea datelor într-un mediu multi-thread?
Citiți codul și evidențiați erorile /** * Un client cu bilet cumpărat poate, contra unei taxe suplimentare, să aleagă un loc specific. * Prețul de bază al locurilor este determinat de tarife (serviciu extern). * Pentru clienții cu tarife specifice (PREMIUM, ULTRA), trebuie aplicată o reducere la plată. * La rezervare, se emite o factură pentru plată. Gestionarea plăților se face într-un serviciu terț. */ @Service public class SeatBookingService { @Autowired private SeatBookingRepository seatBookingRepository; @Autowired private TicketRepository ticketRepository; @Autowired private TariffClient tariffClient; @Autowired private CustomerClient customerClient; @Autowired private PaymentClient paymentClient; /** * Rezervare. * @param seatCode codul locului (de exemplu, 19A) * @param ticketId ID-ul biletului */ @Transactional public void bookSeat(String seatCode, UUID ticketId) { var ticket = ticketRepository.findById(ticketId); //rezervăm var seatBooking = new SeatBooking(seatCode, ticket.get().getFlightId(), ticketId, BookingStatus.BOOKED); seatBookingRepository.save(seatBooking); //căutăm tariful de bază pentru locul din avion var basePrice = tariffClient.getBasePrice(ticket.get().getPlaneModel(), seatCode); //căutăm datele clientului Long userId = (Long) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); var userData = customerClient.getCustomer(userId); System.out.println("Utilizator găsit " + userData.getFio() + " număr document " + userData.getDocument()); var price = basePrice; if (userData.getTariff() == "PREMIUM") { //reducere de 50% price = basePrice * 0.5d; } if (userData.getTariff() == "ULTRA") { //reducere de 20% price = basePrice * 0.8d; } var invoice = new Invoice(price, ticketId, userId); //emitere factură paymentClient.sendInvoice(invoice); System.out.println("Factură emisă"); } @Data @Table("seat_booking") public class SeatBooking { @Column private String seatCode; @Column private UUID flightId; @Column private UUID ticketId; @Column private BookingStatus status; } public enum BookingStatus { BOOKED, PAID; }
Ce metode pot fi folosite pentru a crește viteza de căutare într-un tabel?
Ce poate duce la scăderea performanței în execuția unei funcții?
Puteți explica principiul de funcționare al blocării pesimiste și în ce se deosebește de o altă strategie de blocare?
Ce structură de date este preferabil să folosiți pentru extragerea rapidă a elementului maxim la inserții rare?