Как обрабатывать postgresql слишком много соединений с источником данных jNDi

#java #spring #postgresql #hibernate

#java #весна #postgresql #спящий режим

Вопрос:

Привет, я протестировал свое приложение spring-hibernate с помощью Jmeter для тестирования производительности приложения.Итак, я использовал максимальный поток из 1000 подключений к приложению через вызов веб-служб restful. Но когда я запускаю приложение, я показываю ошибку слишком много соединений.Как мне преодолеть эту проблему. Я прочитал, что HIKARICP является альтернативой, и это быстро. должен ли я перейти на hikaricp?

конфигурация источника данных

 <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
        <property name="jndiName">
            <value>java:jboss/datasources/DFSAppDS</value>
        </property>
    </bean>
  

отображение jndi в standalone.xml файл

 <datasource jndi-name="java:jboss/datasources/DFSAppDS" pool-name="DFSAppDSPool">
                    <connection-url>jdbc:postgresql://localhost:5432/dfs</connection-url>
                    <driver>postgresql</driver>
                    <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
                    <pool>
                        <min-pool-size>10</min-pool-size>
                        <max-pool-size>2000</max-pool-size>
                        <prefill>true</prefill>
                    </pool>
                    <security>
                        <user-name>postgres</user-name>
                        <password>password</password>
                    </security>
                    <statement>
                        <prepared-statement-cache-size>32</prepared-statement-cache-size>
                        <share-prepared-statements>true</share-prepared-statements>
                    </statement>
                </datasource>
  

Комментарии:

1. » Как мне преодолеть эту проблему » — путем уменьшения значения для max-pool-size до разумного значения. 2000 — это путь , слишком много. Почему вы думаете, что вам нужно так много? На действительно быстром оборудовании высокого класса вы могли бы увеличить до 500. Значение от 50 до 100 намного более разумно.

2. я думал, что увеличение максимального значения соединения решит мою проблему. Но я был неправ.

3. Увеличение max_connections по крайней мере до 2003 года избавит от симптома (после перезапуска базы данных), но проблему лучше решить путем уменьшения max-pool-size .

4. Теперь я изменил на min 50 и max 1000, так будет ли он обрабатывать 1000 за раз?