Ar jūsų paskutiniame projekte atlikote metrikų rinkimą ir analizę tiesiogiai iš serverių gamybos aplinkoje?
Java
Kuo skiriasi naudoti synchronizedMap ir ConcurrentHashMap siekiant užtikrinti kolekcijų srauto saugumą?
Kokias metodus galima taikyti, siekiant padidinti užklausų greitį lentelėje, kuri apdoroja apie 100 tūkstančių naujų įrašų kasdien, ir kaip tai paveiks savaitinių atrankų vykdymą?
Kokios priežastys gali būti naudinga riboti indeksuotų laukų skaičių duomenų bazėje?
Paaiškinkite visiško užblokavimo koncepciją duomenų bazių valdyme ir jos ypatybes.
Kokios gali būti pasekmės kuriant indeksą milijono eilučių lentelėje?
Kaip sužinoti įvykdytą SQL užklausą PostgreSQL?
Kiek laiko užtrunka maksimalios elemento paieškos operacijos naudojant ArrayList, jei elementai retai pridedami?
Kokiu vardu turėčiau naudoti, kai kreipiuosi į tave?
Kaip įvertinti TreeMap duomenų struktūros elemento įterpimo operacijos laiko sudėtingumą?
Kaip galima optimizuoti arba pašalinti klaidas SQL užklausoje?
Kokiais kitais būdais, išskyrus daugiagijį apdorojimą, galima pagerinti paslaugos, kuri generuoja ataskaitas ir atlieka 4 paralelinius HTTP užklausimus skirtingoms sistemoms, efektyvumą?
Kaip galima įgyvendinti pesimistinio užrakinimo mechanizmą, siekiant užtikrinti duomenų vientisumą daugiasraityje aplinkoje?
Skaitykite kodą ir pažymėkite klaidas /** * Klientas, įsigijęs bilietą, gali už papildomą mokestį pasirinkti konkretų vietą. * Pagrindinė vietų kaina nustatoma tarifais (išorinis paslaugų teikėjas). * Kai kuriems klientams su tam tikrais tarifais (PREMIUM, ULTRA) reikia taikyti nuolaidą apmokėjimo metu. * Rezervuojant klientui išrašomas sąskaita apmokėjimui. Mokėjimo valdymas vyksta išoriniuose servisuose. */ @Service public class SeatBookingService { @Autowired private SeatBookingRepository seatBookingRepository; @Autowired private TicketRepository ticketRepository; @Autowired private TariffClient tariffClient; @Autowired private CustomerClient customerClient; @Autowired private PaymentClient paymentClient; /** * Rezervacija. * @param seatCode vietos kodas (pvz., 19A) * @param ticketId bilieto ID */ @Transactional public void bookSeat(String seatCode, UUID ticketId) { var ticket = ticketRepository.findById(ticketId); // rezervuojame var seatBooking = new SeatBooking(seatCode, ticket.get().getFlightId(), ticketId, BookingStatus.BOOKED); seatBookingRepository.save(seatBooking); // ieškome bazinės kainos pasirinktam vietai lėktuve var basePrice = tariffClient.getBasePrice(ticket.get().getPlaneModel(), seatCode); // ieškome kliento duomenų Long userId = (Long) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); var userData = customerClient.getCustomer(userId); System.out.println("Rasta naudotojas " + userData.getFio() + " dokumento numeris " + userData.getDocument()); var price = basePrice; if (userData.getTariff() == "PREMIUM") { // 50% nuolaida price = basePrice * 0.5d; } if (userData.getTariff() == "ULTRA") { // 20% nuolaida price = basePrice * 0.8d; } var invoice = new Invoice(price, ticketId, userId); // išrašome sąskaitą paymentClient.sendInvoice(invoice); System.out.println("Sąskaita išrašyta"); } @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; }
Kokiais būdais galima padidinti paieškos greitį lentelėje?
Ar galite paaiškinti pesimistinio užrakinėjimo veikimo principą ir kuo jis skiriasi nuo kitos užrakinėjimo strategijos?
Kuo skiriasi `==` operatorius ir `equals()` metodas lyginant objektus Java?
Kas gali sukelti funkcijos veikimo pablogėjimą?