Cluster Environment Config Block
A lambda for the cluster environment configuration DSL.
Samples
import com.couchbase.client.core.env.NetworkResolution
import com.couchbase.client.core.retry.FailFastRetryStrategy
import com.couchbase.client.core.service.ServiceType
import com.couchbase.client.kotlin.Cluster
import com.couchbase.client.kotlin.codec.RawJsonTranscoder
import com.couchbase.client.kotlin.env.ClusterEnvironment
import com.couchbase.client.kotlin.env.dsl.TrustSource
import com.couchbase.client.kotlin.kv.Durability
import com.couchbase.client.kotlin.query.execute
import kotlinx.coroutines.runBlocking
import java.nio.file.Paths
import java.util.Optional
import kotlin.time.Duration.Companion.seconds
fun main() {
//sampleStart
// Configure TLS using DSL
val cluster = Cluster.connect("localhost", "Administrator", "password") {
security {
enableTls = true
// see TrustSource for more ways to specify trusted certificates
trust = TrustSource.trustStore(
Paths.get("/path/to/truststore.jks"),
"password"
)
}
}
//sampleEnd
}import com.couchbase.client.core.env.NetworkResolution
import com.couchbase.client.core.retry.FailFastRetryStrategy
import com.couchbase.client.core.service.ServiceType
import com.couchbase.client.kotlin.Cluster
import com.couchbase.client.kotlin.codec.RawJsonTranscoder
import com.couchbase.client.kotlin.env.ClusterEnvironment
import com.couchbase.client.kotlin.env.dsl.TrustSource
import com.couchbase.client.kotlin.kv.Durability
import com.couchbase.client.kotlin.query.execute
import kotlinx.coroutines.runBlocking
import java.nio.file.Paths
import java.util.Optional
import kotlin.time.Duration.Companion.seconds
fun main() {
//sampleStart
// Preconfigure builder using DSL
val builder = ClusterEnvironment.builder {
retryStrategy = FailFastRetryStrategy.INSTANCE
io {
maxHttpConnections = 16
}
}
//sampleEnd
}import com.couchbase.client.core.env.NetworkResolution
import com.couchbase.client.core.retry.FailFastRetryStrategy
import com.couchbase.client.core.service.ServiceType
import com.couchbase.client.kotlin.Cluster
import com.couchbase.client.kotlin.codec.RawJsonTranscoder
import com.couchbase.client.kotlin.env.ClusterEnvironment
import com.couchbase.client.kotlin.env.dsl.TrustSource
import com.couchbase.client.kotlin.kv.Durability
import com.couchbase.client.kotlin.query.execute
import kotlinx.coroutines.runBlocking
import java.nio.file.Paths
import java.util.Optional
import kotlin.time.Duration.Companion.seconds
fun main() {
//sampleStart
// Configure many things using DSL
val cluster = Cluster.connect("localhost", "Administrator", "password") {
applyProfile("wan-development")
transcoder = RawJsonTranscoder
ioEnvironment {
enableNativeIo = false
}
io {
enableDnsSrv = false
networkResolution = NetworkResolution.EXTERNAL
tcpKeepAliveTime = 45.seconds
// To see traffic, must also set "com.couchbase.io" logging category to TRACE level.
captureTraffic(ServiceType.KV, ServiceType.QUERY)
// Specify defaults before customizing individual breakers
allCircuitBreakers {
enabled = true
volumeThreshold = 30
errorThresholdPercentage = 20
rollingWindow = 30.seconds
}
kvCircuitBreaker {
enabled = false
}
queryCircuitBreaker {
rollingWindow = 10.seconds
}
}
timeout {
kvTimeout = 3.seconds
kvDurableTimeout = 20.seconds
connectTimeout = 15.seconds
}
transactions {
durabilityLevel = Durability.majorityAndPersistToActive()
cleanup {
cleanupWindow = 30.seconds
}
}
orphanReporter {
emitInterval = 20.seconds
}
}
//sampleEnd
}