本文介紹了獲取/設(shè)置Spring-Data-Cassanda中的PoolingOptions(啟動)的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我在我的環(huán)境中使用以下依賴項:
Spring-Boot-starter-Parent-v2.3.5版本
Spring-Boot-starter-data-Cassandra-ame
Cassandra-Driver-core(com.datastax.cassandra)-v3.2.0
如何訪問我的設(shè)置中com.datastax.driver.core.PoolingOptions
中設(shè)置的連接池選項?
Spring Data Cassandra(SDC)文檔指定以下內(nèi)容:
AbstractCassandraConfiguration允許您提供各種配置
選項,如初始實體、默認查詢選項、池化
選項、插座選項等。
但我無論如何也找不到在DS驅(qū)動程序中設(shè)置這些池化選項的位置:(
看起來Spring data中的CassandraClusterFactoryBean
和PoolingOptionsFactoryBean
Cassandra已被移除,我不知道如何在沒有它們的情況下或通過我編寫的AbstractCassandraConfiguration
擴展/實現(xiàn)來獲得PoolingOptions
的句柄。
以下是受支持的池化選項。但是,如何訪問代碼中包含這些配置的PoolingOptions
Bean呢?
Connection pooling options
cassandra.pool.heartbeat-interval-seconds - heartbeat interval in seconds.
cassandra.pool.idle-timeout-seconds - idle connection timeout in seconds.
cassandra.pool.pool-timeout-millis - timeout for acquiring connection from pool in ms.
cassandra.pool.local.core-connections-per-host - initial number of connections to each "local" host.
cassandra.pool.local.max-connections-per-host - max number of connections to each "local" host.
cassandra.pool.local.max-requests-per-connection - max number of requests per connections to "local" host.
cassandra.pool.local.new-connection-threshold - threshold to trigger new connection to "local" host.
cassandra.pool.remote.core-connections-per-host - initial number of connections to each "remote" host.
cassandra.pool.remote.max-connections-per-host - max number of connections to each "remote" host.
cassandra.pool.remote.max-requests-per-connection - max number of requests per connections to "remote" host.
cassandra.pool.remote.new-connection-threshold - threshold to trigger new connection to "remote" host.
SDC文件中還提到:
將
Cluster
和Session
對象合并到一個
因此,所有與集群相關(guān)API都是
已刪除。
為了反映配置構(gòu)建器中的更改,
ClusterBuilderConfigurer
已重命名為SessionBuilderConfigurer
現(xiàn)在接受CqlSessionBuilder
而不是Cluster.Builder
感謝任何幫助。
推薦答案
我設(shè)法訪問這些配置的方式是通過覆蓋CassandraAutoConfiguration類中的cassandraDriverConfigLoaderBean。
此處,在cassandraDriverConfigLoaderBean中,Spring配置映射到Cassandra驅(qū)動程序配置。
基本上,我將代碼從自動配置復(fù)制粘貼到我的項目中,并添加了所需的配置。有一個包含所有所需配置的方便的枚舉。
@Bean
public DriverConfigLoader cassandraDriverConfigLoader(CassandraProperties properties,
ObjectProvider<DriverConfigLoaderBuilderCustomizer> builderCustomizers) {
.....
}
private Config cassandraConfiguration(CassandraProperties properties) {
CassandraDriverOptions options = new CassandraDriverOptions();
options.add(DefaultDriverOption.CONNECTION_MAX_REQUESTS,30000)
...
}
為了驗證是否加載了我的自定義配置,我只在DriverConfig.getDefaultProfile
處設(shè)置了一個斷點
這篇關(guān)于獲取/設(shè)置Spring-Data-Cassanda中的PoolingOptions(啟動)的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,