Подсказки для использования пула свободного городского населения в производстве

Если вы работаете в Android Studio 3.1 или более поздней версии, вы, скорее всего, столкнетесь с проблемой такого типа, вызываемой окном Build. enter image description here

Просто нажмите на опцию Add Google Maven repository and sync project справа и запустите другую синхронизацию gradle.

Он внесет необходимые изменения как в gradle-wrapper.properties, так и в build.gradle файлы.

9
задан Community 23 May 2017 в 10:29
поделиться

5 ответов

[
] [

] Кто-нибудь использует общий бассейн в производство, чтобы написать свой собственный пул?[

] [
] [

]Да, и пул держит TCP-соединения, как вы и собираетесь. Он подключается через Spring, так что, если вы понимаете конфигурацию Spring:[

] [
<bean class="com.company.ConnectionSupplier">
<constructor-arg>
  <!-- The ConnectionSupplier wraps an object pool -->
  <bean class="org.apache.commons.pool.impl.GenericObjectPool">
    <constructor-arg>
       <!-- The ObjectPool uses a ConnectionFactory to build new connections -->
       <bean class="com.company.ConnectionFactory">
         <constructor-arg value="server" />
         <constructor-arg value="3000" />  
       </bean>  
    </constructor-arg>
    <property name="maxActive" value="20" />
    <property name="testOnBorrow" value="true" />
  </bean>
</constructor-arg>
</bean>  
] [

]The ConnectionFactory расширяет BasePoolableObjectFactory и представляет собой небольшую обертку вокруг SocketFactory. [

] [

]@Первый комментарий: Конструктор ConnectionFactory берет сервер и порт. В переопределении makeObject() он создает сокеты, которые соединяются с этим сервером и портом. Он возвращает объекты 'Connection', которые обёртывают созданный сокет некоторыми удобными методами для связи через сокет.[

] [

]Соединение проверяется с помощью своего рода 'ping' или 'echo', предоставляемого протоколом, используемым для связи через сокет. Если это не было доступно, проверка/тестирование соединения на самом деле невозможно, за исключением запроса сокета о том, было ли оно закрыто. В этом случае, соединение в пуле было бы недействительным, если бы оно бросило исключение, и каждый метод, использующий Connections, должен быть готов к подобному срыву и пытаться выполнить такую же операцию с другим соединением.[

].
9
ответ дан 4 December 2019 в 20:24
поделиться

Ознакомьтесь с MultiThreadedHttpConnectionManager - это диспетчер пула соединений Apache Commons HttpClient, который, вероятно, сразу же подойдет вашим потребностям.

0
ответ дан 4 December 2019 в 20:24
поделиться

Во-первых, не используйте commons-pool 1.3, у него есть некоторые основные проблемы с многопоточными приложениями.

Во-вторых, у Java 5 concurency package есть достойные реализации пула (см. образец здесь)

.
0
ответ дан 4 December 2019 в 20:24
поделиться

Вы просмотрели Netty или Apache MINA ? Они оба отслеживают ваши TCP соединения и должны упростить реализацию любого коммуникационного протокола, который эти TCP сокеты будут использовать.

1
ответ дан 4 December 2019 в 20:24
поделиться

Вы должны проверить, что инстанция стоит дороже или извлечение из пула. Потому что единственная действительная ситуация для использования бассейна - первая.

1
ответ дан 4 December 2019 в 20:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: