Введение: BeeCP — это небольшой пул соединений JDBC: высокая производительность, лёгкий код и хорошая стабильность.
Скачать: Java 7+
<dependency>
<groupId>com.github.chris2018998</groupId>
<artifactId>beecp</artifactId>
<version>4.1.3</version>
</dependency>
Java 6
<dependency>
<groupId>com.github.chris2018998</groupId>
<artifactId>beecp</artifactId>
<version>1.6.10</version>
</dependency>
Пример:
BeeDataSourceConfig config = new BeeDataSourceConfig();
config.setDriverClassName("com.mysql.jdbc.Driver");
config.setJdbcUrl("jdbc:mysql://localhost/test");
config.setUsername("root");
config.setPassword("root");
BeeDataSource ds=new BeeDataSource(config);
Connection con=ds.getConnection();
....
application.properties
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.url=jdbc:mysql://localhost/test
spring.datasource.driverClassName=com.mysql.jdbc.Driver
DataSourceConfig.java
@Configuration
public class DataSourceConfig {
@Value("${spring.datasource.username}")
private String user;
@Value("${spring.datasource.password}")
private String password;
@Value("${spring.datasource.url}")
private String url;
@Value("${spring.datasource.driverClassName}")
private String driver;
@Bean
@Primary
@ConfigurationProperties(prefix="spring.datasource")
public DataSource primaryDataSource() {
return DataSourceBuilder.create().type(cn.beecp.BeeDataSource.class).build();
}
@Bean
public DataSource secondDataSource() {
return new BeeDataSource(new BeeDataSourceConfig(driver,url,user,password));
}
}
Карта функций:
Монитор времени выполнения: В пуле предусмотрены два способа:
Если ваш проект использует beecp и основан на springboot, мы рекомендуем наш инструмент управления источниками данных BeeCP-Starter (веб-интерфейс, без разработки кода, просто некоторая конфигурация).
Сравнение с HikariCP:
Элемент сравнения | BeeCP | HikariCP |
---|---|---|
ключевая технология | ||
Аналоги | CAS, предварительное создание прокси, кэш операторов драйверов | |
Отличия | честный режим, поддержка XA, повторное использование соединения, кеш одного соединения, повторное использование очереди, ожидание без перемещения, пауза пула | |
Файлы | 37 файлов, 95 КБ Jar | 44 файла, 158 КБ Jar |
Производительность | на 40 % быстрее (тест HikariCP) |
Два интерфейса, которые используются для создания необработанного соединения или необработанного XAConnection для самостоятельной реализации, имя его подкласса необходимо установить в «connectionFactoryClassName» в объекте Bee DataSourceConfig.
Пример
Название элемента | Описание | Значение по умолчанию |
---|---|---|
username | Ссылка на имя пользователя в БД | null |
password | Пароль пользователя БД | null |
jdbcUrl | Ссылка на URL БД | null |
driverClassName | Имя класса драйвера JDBC | null |
poolName | Имя генерации, назначенное ему, если не установлено | null |
fairMode | Режим работы пула | false |
initialSize | Количество соединений при инициализации пула | 0 |
asyncCreateInitConnection | Режим создания начальных соединений | false (синхронизация) |
maxActive | Максимальное количество доступных соединений в пуле | |
---------------------------------------------------------------------------------------- | ||
borrowSemaphoreSize | максимальный размер разрешений пула семафоров | min(maxActive/2,CPU size) |
defaultAutoCommit | начальное значение свойства autoCommit для созданных соединений | null, считывает значение свойства read из первого соединения как начальное значение для других соединений |
defaultTransactionIsolationCode | начальное значение свойства transactionIsolation для созданных соединений | null, считывает значение свойства read из первого соединения как начальное значение для других соединений |
enableThreadLocal | индикатор включения кэша локальных потоков | true, установите значение false для поддержки виртуальных потоков |
defaultCatalog | начальное значение свойства catalog для созданных соединений | null, считывает значение свойства read из первого соединения как начальное значение для других соединений |
defaultSchema | начальное значение свойства schema для созданных соединений | null, считывает значение свойства read из первого соединения как начальное значение для других соединений |
defaultReadOnly | начальное значение свойства readOnly для созданных соединений | null, считывает значение свойства read из первого соединения как начальное значение для других соединений |
maxWait | максимальное время ожидания в пуле для получения соединения заёмщиками, единица времени: миллисекунды | 8000 |
idleTimeout | время простоя соединений в пуле, единица времени: миллисекунды | 18000 |
holdTimeout | максимальное неактивное время заимствованных соединений, единица времени: миллисекунды | 0 (никогда не истекает) |
aliveTestSql | живой тестовый SQL на заимствованных соединениях, пул удаляет мёртвые соединения | SELECT 1 |
aliveTestTimeout | максимальное время ожидания для получения результата проверки на тестовых соединениях, единица времени: секунды | 3 |
aliveAssumeTime | значение промежутка времени от последнего времени активности до точки заимствования, если меньше, не проверять, единица времени: миллисекунды | 500 |
forceCloseUsingOnClear | индикатор прямого закрытия заимствованных соединений во время очистки пула | false |
timerCheckInterval | интервал времени для сканирования незанятых соединений, единица времени: миллисекунды | 18000 |
connectionFactoryClassName | имя класса фабрики соединений | null |
sqlExceptionCodeList | хранит коды исключений SQL для проверки исключения соединений | null, связанные методы: addSqlExceptionCode, removeSqlExceptionCode |
sqlExceptionStateList | хранит состояние исключений SQL для проверки исключения соединений | null, related methods: addSqlExceptionCode, removeSqlExceptionCode |
evictPredicateClassName | имя класса предиката выселения | null, pool только для проверки исключения, если оно установлено |
jdbcLinkInfoDecoderClassName | класс с коротким жизненным циклом, используемый для декодирования информации о связи JDBC | null |
forceDirtyOnSchemaAfterSet | индикатор принудительной установки грязного состояния для свойства схемы под драйвером PG | false |
forceDirtyOnCatalogAfterSet | индикатор принудительной установки грязного состояния для свойства каталога под драйвером PG | false |
enableJmx | индикатор включения для регистрации конфигурации и пула в JMX | false |
printConfigInfo | логический индикатор, true: печать информации об элементе конфигурации при запуске пула | false |
printRuntimeLog | логический индикатор, true: печать журнала времени выполнения | false |
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )