Наш GRPC должен обрабатывать 1000 QPS, и каждый запрос требует списка последовательных операций , включая то, что считывает данные из DB с использованием JDBC. Обработка единого запроса требует не более 50 мс. < /P>
Наше приложение можно записать двумя способами: < /p>
опция 1 - классическая однополосная тема на запрос: < /strong> мы можем создать большой пул потоков (~ 200) и просто назначить один запрос на одну блок -блок, в то время как он ждал DB. Запрос обрабатывается по-настоящему не блокирующим способом: . Это потребовало бы, чтобы мы использовали не блокирующего клиента MySQL, который я не знаю, существует ли он, но пока давайте предположим, что он существует. /> Pro: Сохраните некоторые накладные расходы на ОС, поскольку ей не нужно давать время ЦП в поток, ожидающий io. И, возможно, если один и тот же запрос выполняется в нескольких физических ядрах, он добавляет накладные расходы, поскольку данные могут быть недоступны в кэше ядра L1/L2. Процессор эффективен, чем написание приложения блокировки. Есть ли какие-либо основания полагать иначе? В этом случае вариант 1, скорее всего, лучше?
Подробнее здесь: https://stackoverflow.com/questions/747 ... jdbc-calls
Не блокирующий VS блокирующий сервер Java с вызовами JDBC ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как я могу эмулировать не блокирующий ввод/вывод в Java, используя потоки
Anonymous » » в форуме JAVA - 0 Ответы
- 15 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как установить неактивное соединение Hive jdbc из Java-кода с помощью hive jdbc
Anonymous » » в форуме JAVA - 0 Ответы
- 24 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как установить Idle Hive JDBC Connection Out из кода Java с помощью Hive JDBC
Anonymous » » в форуме JAVA - 0 Ответы
- 4 Просмотры
-
Последнее сообщение Anonymous
-