Skip to content

Instantly share code, notes, and snippets.

@rozza
Created February 6, 2018 16:08
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rozza/78f926103dad935c482b98b8ee065d90 to your computer and use it in GitHub Desktop.
Save rozza/78f926103dad935c482b98b8ee065d90 to your computer and use it in GitHub Desktop.
Example
MongoClientSettings expected = MongoClientSettings.builder()
.applyToClusterSettings(new Block<ClusterSettings.Builder>() {
@Override
void apply(final ClusterSettings.Builder builder) {
builder.hosts([new ServerAddress('host1', 1), new ServerAddress('host2', 2)])
.mode(ClusterConnectionMode.MULTIPLE)
.requiredReplicaSetName('test')
.serverSelectionTimeout(25000, TimeUnit.MILLISECONDS)
.maxWaitQueueSize(10 * 7) // maxPoolSize * waitQueueMultiple
.localThreshold(30, TimeUnit.MILLISECONDS)
}
})
.applyToConnectionPoolSettings(new Block<ConnectionPoolSettings.Builder>() {
@Override
void apply(final ConnectionPoolSettings.Builder builder) {
builder.minSize(5)
.maxSize(10)
.maxWaitQueueSize(10 * 7) // maxPoolSize * waitQueueMultiple
.maxWaitTime(150, TimeUnit.MILLISECONDS)
.maxConnectionLifeTime(300, TimeUnit.MILLISECONDS)
.maxConnectionIdleTime(200, TimeUnit.MILLISECONDS)
}
})
.applyToServerSettings(new Block<ServerSettings.Builder>() {
@Override
void apply(final ServerSettings.Builder builder) {
builder.heartbeatFrequency(20000, TimeUnit.MILLISECONDS)
}
})
.applyToSocketSettings(new Block<SocketSettings.Builder>() {
@Override
void apply(final SocketSettings.Builder builder) {
builder.connectTimeout(2500, TimeUnit.MILLISECONDS)
.readTimeout(5500, TimeUnit.MILLISECONDS)
}
})
.applyToSslSettings(new Block<SslSettings.Builder>() {
@Override
void apply(final SslSettings.Builder builder) {
builder.enabled(true)
.invalidHostNameAllowed(true)
}
})
.readConcern(ReadConcern.MAJORITY)
.readPreference(ReadPreference.secondary())
.writeConcern(WriteConcern.MAJORITY.withWTimeout(2500, TimeUnit.MILLISECONDS))
.applicationName('MyApp')
.credential(MongoCredential.createScramSha1Credential('user', 'test', 'pass'.toCharArray()))
.compressorList([MongoCompressor.createZlibCompressor().withProperty(MongoCompressor.LEVEL, 5)])
.retryWrites(true)
.build()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment