본문 바로가기

빅데이터

rabbitmq publish - 최대 접속 테스트

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
□ 내용


단일 RabbitMQ에 몇개 까지 Connection(MAX)이 되는지 해보자.







□ 단일 노드에서 지원할 수있는 동시 연결 수를 제한하는 요소


열린 파일 핸들 (소켓 포함)의 최대 수

커널 강제 리소스 제한

각 연결에 사용 된 RAM 크기

각 연결에 사용 된 CPU 리소스의 양

Erlang 프로세스의 최대 수

 






□ 서버 및 설정



 






□ Dependency

 

       <dependency>

            <groupId>org.eclipse.paho</groupId>

            <artifactId>org.eclipse.paho.client.mqttv3</artifactId>

            <version>1.0.2</version>

        </dependency>

        <dependency>

            <groupId>com.rabbitmq</groupId>

            <artifactId>amqp-client</artifactId>

            <version>3.6.1</version>

        </dependency>

        <dependency>

            <groupId>org.springframework.amqp</groupId>

            <artifactId>spring-rabbit</artifactId>

            <version>1.5.6.RELEASE</version>

        </dependency>

        <dependency>

            <groupId>org.springframework.amqp</groupId>

            <artifactId>spring-erlang</artifactId>

            <version>1.4.3.RELEASE</version>

        </dependency>







□ QOS LEVEL


▶ 0=그냥 데이터 던짐 (RabbitMQ 지원)


▶ 1=전달완료확인 (RabbitMQ 지원)


▶ 2=최종목적지까지 처리완료 (지원안함 X)

 






□ Test


                int qos = 1;

String topic = "test";

MemoryPersistence persistence = new MemoryPersistence();


try {

//우선 500개만 해보자

for(int a= 0 ; a < 500 ; a++){

MqttClient client = new MqttClient("tcp://xxx.xxx.xxx.xxx:1883", "testname" + a, persistence);

MqttConnectOptions connOpts = new MqttConnectOptions();

connOpts.setCleanSession(true);

connOpts.setUserName("rabbitmq");

connOpts.setPassword("rabbitmq".toCharArray());

client.connect(connOpts);

System.out.println(a);

}




                        /* 메세지 보내는 부분


                        MqttMessage message = new MqttMessage();

message.setQos(qos); // crc level

while (true) {

String dump = "보낼 메세지";

message.setPayload(dump.getBytes());

client.publish(topic, message);

message.setPayload(dump.getBytes());

client.publish(topic, message);

Thread.sleep(1000); // 200 ms

}


client.disconnect();

                        */


} catch (Exception e) {

e.printStackTrace();

}

 






□결과


310개 부터 에러 발생


리눅스 쓰레드 제한 걸림


해결하려면 올려주자.







'빅데이터' 카테고리의 다른 글

Elasticsaerch + SparkStreaming  (0) 2018.03.14
kibana 설치  (0) 2018.02.12
zeppelin 설치  (0) 2017.06.26
RabbitMQ & Spark Streaming Test  (0) 2017.05.17
(설치)RabbitMQ Install Centos 6.X  (0) 2017.05.15