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 年前

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南