Java
Perché il metodo con @Transactional potrebbe non creare una transazione?
Come interagiscono tra loro i microservizi?
Cos'è il load factor in HashMap e cosa succede quando viene raggiunto?
Esercizio pratico: progetta un sistema di trasferimento di denaro tra account con i seguenti requisiti: 1000 transazioni/sec, correttezza transazionale, API sincrona.
In quale area di memoria viene memorizzato ConcurrentHashMap? Quale contenitore usare per memorizzare le metriche?
Qual è la differenza tra memorizzare informazioni in PostgreSQL usando metodi integrati e semplicemente conservarle come dati di testo?
Come scrivere un test per Kafka (produttore/consumatore)?
Come creare un indice su una grande tabella in produzione senza blocchi e superare i timeout di Kubernetes?
Quale interfaccia viene utilizzata per gestire le transazioni in Spring?
Parlami del compito più difficile/interessante.
Cosa succede se il contesto Spring fallisce durante il deployment in Kubernetes?
Conosci il teorema CAP? Come implementare un sistema distribuito che soddisfi tutte le proprietà del CAP? Nomina le tre proprietà e spiega come si combinano a coppie.
Cos'è un gruppo di consumatori in Kafka?
Quali metriche sono state prese dalle applicazioni? Come avete lavorato con il monitoraggio?
Il servizio di autenticazione si trova tra l'API e il servizio di transazione — se cade, tutto crolla. Come lo avete messo in sicurezza?
Leggi il codice e conta gli errori ```java @Component public class AuthorSearchService { @Autowired private AuthorRepository authorRepository; @Autowired private StatisticsRepository statisticsRepository; private AlertRestClient arc = new AlertRestClient(); // Nella query può esserci sia un valore completo che solo una parte del nome, ad esempio "Vadim Pavlo" o "pavlo" @Transactional public List<Author> search(String query) { List<Author> authors = authorRepository.findByNameContainingIgnoreCase(query); Statistics s = statisticsRepository.findById(query).orElse(null); if (s == null) s = new Statistics(query); s.setNumbers(s.getNumbers() + 1); statisticsRepository.save(s); if (s.getNumbers() > 1000 && authors.size() > 1000) { System.out.println("ricerca troppo popolare con troppi dati, invio di un avviso..."); arc.send(query, s.getNumbers(), authors.size()); } return authors; } } @Entity @Data public class Author { @Id @GeneratedValue private Long id; private String name; @OneToMany(mappedBy = "author") private List<Book> books; public Author(String name) { this.name = name; } } ```
Quali sono i problemi di Spring Kafka con i thread virtuali? O non ci sono affatto problemi?
Qual è la differenza tra un Dockerfile e un file Docker Compose?
Scrivi un metodo in Java che accetti una stringa e restituisca le statistiche sui caratteri (quante volte ogni carattere si presenta)
Come hai analizzato le richieste in arrivo?