У нас есть около 100 устройств IoT, которые подключаются к облаку и отправляют данные в облако каждые 10 секунд.
Мы тестировали на 2vcore / 4G RAM и 8 vcore / 16G RAM.Загрузка процессора увеличивается до 200% и 800% соответственно за короткое время.Установленных TCP-соединений около 106.
Это потому, что мы создали слишком много mongoldb-соединений или частота записи в mongoDB слишком высокая?
Я думаю, что Object в Scala похож на singleton, поэтомудолжен только создать один объект DBHelper?Но создает ли код в DBHelper каждое хранилище данных для каждого TCP-соединения?
1.DBHelper.scala:
Object DBHelper{
var datastore= morphia.createDataStore(…………….);
}
2.MqttClient.java
mqttPushClient.setCallback(pushCallBack);
3.
public class PushCallback implements MqttCallback {
public void messageArrived(String topic, MqttMessage mqttMessage) throws Exception {
//calls DBHelper and save message to mongoDB
}
}