Why document db is creating 3 connections for a single insert operation.

0

Hello, I have created a document db instance of t4g.medium size. I am trying to insert data in a collection. While monitoring the connection count in AWS monitor console, I observed that for every request 3 connections are getting created. Has anybody faced any similar issue or any idea why 3 connections are getting created for each request.

Connection code

``

func createConnection() (*mongo.Client, error) {
	clusterEndpoint := fmt.Sprintf("%v:%v", host, port)
	connectionURI := fmt.Sprintf(ConnectionStringTemplate, username, password, clusterEndpoint, database, ReadPreference)
	tlsConfig, err := getCustomTLSConfig(CaFilePath)
	if err != nil {
		log.Errorf(context.Background(), "Failed getting TLS configuration: %v", err)
	}
	clientOptions := options.Client().ApplyURI(connectionURI).SetTLSConfig(tlsConfig)
	clientOptions = clientOptions.SetMaxPoolSize(1)
	clientOptions = clientOptions.SetMinPoolSize(1)

	ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
	defer cancel()

	client, err := mongo.Connect(ctx, clientOptions)
	if err != nil {
		return nil, err
	}

	// Test the connection
	err = client.Ping(ctx, nil)
	if err != nil {
		return nil, err
	}
	log.Infof(context.Background(), "Connection created successfully")

	return client, nil
}

``

AWS Monitor Screenshot :

已提问 1 年前279 查看次数
1 回答
0

This is the behavior of the Go driver (is not the only one, PyMongo does the same), which opens two additional sockets per instance for monitoring the server's state. See the details here.

You could try settings like heartbeatFrequencyMS to minimize those background server checks or directConnection to connect only to one instance specified in the URI (if you are going to use only single instance cluster and not connect in replica set mode).

AWS
Mihai A
已回答 1 年前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则