Предназначен для обработки DHCP-пакетов для схем DHCP.82, ISG/CLIPS+DHCP.82. Используется в InetAccess, добавляется в контейнер следующим образом:
<context name="dhcp"> <!-- Cоздание процессора dhcp-пакетов --> <bean name="dhcpProcessor" class="ru.bitel.bgbilling.modules.inet.dhcp.InetDhcpProcessor"/> <scheduledExecutorService name="hrlydtlggr" corePoolSize="1" /> <!-- Cоздание dataLogger, сохраняющего dhcp-пакеты на диск --> <bean name="dhcpDataLogger" class="ru.bitel.bgbilling.modules.inet.dhcp.DhcpHourlyDataLogger"> <param name="scheduledExecutor">hrlydtlggr</param> </bean> <!-- Cоздание слушателя dhcp-пакетов на порту с передачей ему процессора и dataLogger --> <bean name="dhcpListener" class="ru.bitel.bgbilling.kernel.network.dhcp.DhcpListener"> <constructor> <!-- Хост (интерфейс), на котором будет открыт сокет. Если пусто - на всех --> <param name="host" value=""/> <!-- Порт, на котором будет открыт сокет --> <param name="port" value="67"/> <!-- Размер буфера приема слушателя --> <param name="byteBufferCapacity">512 * 1024</param> <!-- Количество потоков-обработчиков --> <param name="threadCount">10</param> <!-- Максимальное количество пакетов в очереди на обработку --> <param name="maxQueueSize">200</param> <!-- Передача процессора --> <param name="processor">dhcpProcessor</param> <!-- Передача dataLogger --> <param name="dataLogger"></param> </constructor> </bean> </context>
Параметры:
- IP-адрес, на котором слушатель, пустое значение - прослушивать любой IP-адрес; |
- прослушиваемый UDP порт; |
- размер буфера для приёма пакетов; |
- число потоков-обработчиков пакетов, рекомендуемые значения 10-50, не рекомендуется указывать более 100; |
- максимальный размер очереди пакетов, при превышении размера очереди пакеты начинают отбрасываться и высылается аларм. Рекомендуемые значения 200-1000. Следует учитывать, что если по какой-то причине сервер не успевает обрабатывать пакеты, очередь растет, то какие-то пакеты из очереди могут быть обработаны с опозданием и DHCP-клиент уже выслал повторный запрос, который опять попадет в очередь и опять может быть обработан с опозданием. Поэтому большое значение вместо распределения нагрузки может вызвать ее увеличение; |
- объект, осуществляющий запись бинарных логов, по умолчанию это объект типа (сохранение бинарных логов с разбивкой по источникам и часам); |
- процессор, реализующий логику обработки пакетов. |