Прежде всего, отметим, что классы ConsumerConnector
или kafka.consumer.KafkaStream
устарели в версии kafka v # 0.11.0. В случае, если вы используете старую версию, вы должны запланировать обновление до более новой версии по крайней мере v # 1.0 или более.
Будет ли метод createMessageStreams последовательно считывать данные из темы или считывать данные в определенном количестве пакетов и обрабатывать их?
blockquote>
.createMessageStreams
возвращает карту темы и список KafkaStream пара.(topic,list#stream)
Каждый поток поддерживает итератор для сообщений или пару метаданных для темы. Он читает данные последовательно только внутри раздела. Если у вас больше разделов, чем количество потоковых потоков, один поток может читать из нескольких разделов. Но только в пределах разделов порядок последовательности гарантирован.for (final KafkaStream
stream : streamList) { ConsumerIterator it= stream.iterator(); while (it.hasNext()) { String message = new String(it.next().message()); System.out.println(message); } } } Эквивалентной функциональностью в v # 0.11 и далее является метод
.poll()
. Вы можете установитьmax.poll.records
илиmax.poll.interval.ms
, чтобы установить количество записей на запрос опроса и продолжительность интервала соответственно.Вы можете найти нового потребителя здесь: https://kafka.apache.org/20/javadoc/org/apache/kafka/clients/consumer/KafkaConsumer.html
Я полагаю, что возможно установить php.ini на виртуальный хост
<VirtualHost *:80>
...
PHPINIDir /full/path/to/php/ini/
</VirtualHost>
этим путем можно настроить open_basedir и других
Можно ограничить способность к сценариям видеть что-либо выше определенного дерева папки путем добавления open_basedir директивы блок папки в httpd.conf файле. Это должно быть похожим:
<КАТАЛОГ,/full/path/to/folder/containing/script/>
php_admin_value open_basedir "/full/path/to/top/folder/of/desired/tree /"
</КАТАЛОГ>
Одна вещь - если Вы не заканчиваете путь / затем, это - подстановочное соответствие. Другими словами, "/var/etc/my" будет соответствовать "/var/etc/myFolder", а также "/var/etc/myMothersFolder", в то время как "/var/etc/my /" будет только соответствовать тому точному имени папки.
Относительно изоляции приложения ~ - это в отношении обеспечения Сценариев PHP, таким образом, они не могут получить доступ к другим? Уточните -
Относительно php.ini - я не знаю ни о каком способе использовать определенный php.ini на каталог, но Вы могли, конечно, создать php, включают страницу с набором ini_set () строки, возможно, что-то вроде этого..
<?php
// in your header or along top of all php modules in your pap
require_once ( '/path/to/includes/ini_set.php' );
// ...
?>
и ini_set.php сценарий:
<?php
// one of these for each override of defaults set in php.ini file --
ini_set ( $varname, $newvalue );
ini_set ( $varname, $newvalue );
ini_set ( $varname, $newvalue );
?>
Если Вы интересуетесь получением дополнительной информации о ini_set () функция, вот страница документации на php.net: http://us3.php.net/ini_set
Надежда это было несколько полезным ~
Лучший способ сделать так состоит в том, чтобы использовать PHP через FCGI (mod_fcgid). Таким образом, можно выполнить PHP использование другого пользователя и различного php.ini на vHost.
Вот пример, как настроить такую конфигурацию на Ubuntu: http://www.howtoforge.com/how-to-set-up-apache2-with-mod_fcgid-and-php5-on-ubuntu-8.10
Если Вы хотите использовать имя полного пути, можно использовать это:
<?php
include dirname( __FILE__ ) . '/includes/include.php';
?>
Попробуйте относительный путь! Как:
<?php
include("./includes/include.php");
?>
или
<?php
include("includes/include.php");
?>