Іске асыру - Пайдаланушылар мен өндірушілер арасындағы байланыстың логикасы - Хабарламалар кілттері қайталануы мүмкін - Тұтынушылардың оффсеттері мен хабарламалардың үйлесіміндегі қате - Өндіруші үшін көңіл-күй жоқ - Бірнеше брокерлер үшін орындалу жоқ - Тұтынушы тобы қатты жазылған
Java
Spring пен Spring Boot арасындағы айырмашылық неде?
Егер мен жиі оқысам, бірақ сирек деректер енгізсем, қай Map қолданған дұрыс?
Таңдалған шешім құрылымының негізгі мәселесі - Қосылу кезінде ерекше қателерді өңдеу жоқ - @Configuration аннотациялары жоқ конфигурациялық класс - DI тәуелділіктерін дұрыс орнатпау - Әдеттегі конфигурацияларды дұрыс емес интеграциялау, жүктеу тәртібін өзгерту - @Autowired тәуелділіктері жоқ
Бұл жүзеге асырудың негізгі мәселелері SELECT f.food_id FROM Foods f JOIN Expirations e ON f.id = e.food_id WHERE e.is_expired = 1; - Тіркеулердің бар-жоғын тексеру үшін `JOIN` орнына `WHERE EXISTS` қолдану. - e.is_expired өрісінде индекс жоқ - JOIN кілттері индекстелмеген - Жарамдылық мерзімі кестесі артық - Сұрау транзакция ішінде қорғалмаған.
Postgres ақпаратты өңдеді, деректер бар екенін түсінді. Ол қайтару үшін не жібереді? Бірден деректерді жол картасы ретінде ме, әлде басқа бір нәрсе ме?
Деректер қорлары бәсекелес қатынасты өңдеу үшін қолданатын негізгі блоктау стратегиялары қандай?
Негізгі мәселе қандай? - Тұрақты ағындар пулын тиімсіз пайдалану - Жалпы ресурстармен өзара әрекеттесу мәселелері - Блокировка дұрыс емес қосылуы тупикке әкелуі мүмкін. - Синхрондау деңгейі дұрыс емес - Нәтиже алдында барлық ағындарды тексермейді - Айқын конструктор жоқ Код: import java.util.concurrent.locks.ReentrantLock; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; class RecyclingBinCounter { private int binCount; private final ReentrantLock lock = new ReentrantLock(); public void incrementBins() { lock.lock(); try { binCount++; } finally { } } public int getBinCount() { return binCount; } } class RecyclingManager { public static void main(String[] args) { RecyclingBinCounter counter = new RecyclingBinCounter(); ExecutorService service = Executors.newFixedThreadPool(3); for (int i = 0; i < 3; i++) { service.submit(() -> { for (int j = 0; j < 1000; j++) { counter.incrementBins(); } }); } service.shutdown(); while(!service.isTerminated()) {} System.out.println("Барлығы жиналған қораптар саны: " + counter.getBinCount()); } }
Қызметтің архитектурасы туралы қысқаша айтыңыз.
Жақында орындаған тапсырмалардың қайсысы сізге қызықты, қиын және есте қаларлық болды?
Неліктен сіз дәл wait/notify-ды таңдадыңыз, ReentrantLock-ты емес?
Егер бірнеше компаниядан бірнеше ұсыныс болса, таңдау жасау үшін қандай критерийлерді қолданасыз? Үшіншісін атаңыз.
Spring Kafka виртуалды ағындармен қандай мәселелер бар? Әлде мүлде мәселе жоқ па?
Келтірілген кодты орындағанда қандай жанама әсер пайда болады BEGIN; SET TRANSACTION ISOLATION LEVEL READ COMMITTED; START TRANSACTION; SELECT progress INTO @current_progress FROM courses WHERE course_id = 101; SET @current_progress = @current_progress + 60; UPDATE courses SET progress = @current_progress WHERE course_id = 101; COMMIT; END; BEGIN; SET TRANSACTION ISOLATION LEVEL READ COMMITTED; START TRANSACTION; SELECT progress INTO @current_progress FROM courses WHERE course_id = 101; SET @current_progress = @current_progress + 40; UPDATE courses SET progress = @current_progress WHERE course_id = 101; COMMIT; END;
Сіз KafkaListenerEndpointRegistry арқылы немесе KafkaConsumer арқылы нақты polling арқылы Kafka тыңдаушының өмірлік цикліне қалай қосылар едіңіз?
Технологиялар бойынша қайсысы саған ұнайды?
Таңдалған шешім құрылымының негізгі мәселесі неде? Property класы полиморфизмді қолдамайды. Класс өрістері инициализацияланбауы мүмкін. Жалпы құнды есептеу әдісін «Тапсырыс» класына көшіру. Транзакциялық механизмдерді пайдаланбайды. Бос тізім үшін исключениялар жоқ.
Spring-да бір түйіннің өмірлік циклі туралы айтыңыз.
DLT тақырыптарымен не істейсіз?
SQL-да транзакция оқшаулануының деңгейлері қандай және олардың қайсысы PostgreSQL-де әдепкі бойынша орнатылған?