| <?xml version="1.0" encoding="UTF-8"?> |
| <beans xmlns="http://www.springframework.org/schema/beans" |
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> |
| <bean id="propertyConfigurer" |
| class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> |
| <property name="location"> |
| <value>classpath:s4_core.properties</value> |
| </property> |
| <property name="properties"> |
| <props> |
| <prop key="kryoSerDeser.initialBufferSize">2048</prop> |
| <prop key="kryoSerDeser.maxBufferSize">262144</prop> |
| </props> |
| </property> |
| <property name="ignoreUnresolvablePlaceholders" value="true" /> |
| </bean> |
| |
| <bean id="hasher" class="org.apache.s4.dispatcher.partitioner.DefaultHasher" /> |
| |
| <bean id="commLayerEmitterToAdapter" class="org.apache.s4.emitter.CommLayerEmitter" |
| init-method="init"> |
| <property name="serDeser" ref="serDeser" /> |
| <property name="listener" ref="rawListener" /> |
| <property name="listenerAppName" value="${adapter_app_name}" /> |
| <property name="monitor" ref="monitor" /> |
| </bean> |
| |
| <bean id="commLayerEmitter" class="org.apache.s4.emitter.CommLayerEmitter" |
| init-method="init"> |
| <property name="serDeser" ref="serDeser" /> |
| <property name="listener" ref="rawListener" /> |
| <property name="monitor" ref="monitor" /> |
| </bean> |
| |
| <bean id="serDeser" class="org.apache.s4.serialize.KryoSerDeser"> |
| <property name="initialBufferSize" value="${kryoSerDeser.initialBufferSize}" /> |
| <property name="maxBufferSize" value="${kryoSerDeser.maxBufferSize}" /> |
| </bean> |
| |
| <!--START: Dispatchers for control event processor. If stream name in Response |
| is @adapter or @client, then the event is sent to the adapter (via ctrlDispatcherAdapter). |
| Else it is sent to the S4 cluster itself (via ctrlDispatcherS4) --> |
| <bean id="ctrlDispatcher" class="org.apache.s4.dispatcher.MultiDispatcher"> |
| <property name="dispatchers"> |
| <list> |
| <ref bean="ctrlDispatcherFilteredS4" /> |
| <ref bean="ctrlDispatcherFilteredAdapter" /> |
| </list> |
| </property> |
| </bean> |
| |
| <bean id="ctrlDispatcherFilteredAdapter" class="org.apache.s4.dispatcher.StreamSelectingDispatcher"> |
| <property name="dispatcher" ref="ctrlDispatcherAdapter" /> |
| <property name="streams"> |
| <list> |
| <value>@${adapter_app_name}</value> |
| </list> |
| </property> |
| </bean> |
| |
| <bean id="ctrlDispatcherFilteredS4" class="org.apache.s4.dispatcher.StreamExcludingDispatcher"> |
| <property name="dispatcher" ref="ctrlDispatcherS4" /> |
| <property name="streams"> |
| <list> |
| <value>@${adapter_app_name}</value> |
| </list> |
| </property> |
| </bean> |
| |
| <bean id="genericPartitioner" class="org.apache.s4.dispatcher.partitioner.DefaultPartitioner"> |
| <property name="hasher" ref="hasher" /> |
| <property name="debug" value="false" /> |
| </bean> |
| |
| <bean id="ctrlDispatcherS4" class="org.apache.s4.dispatcher.Dispatcher" |
| init-method="init"> |
| <property name="partitioners"> |
| <list> |
| <ref bean="genericPartitioner" /> |
| </list> |
| </property> |
| <property name="eventEmitter" ref="commLayerEmitter" /> |
| <property name="loggerName" value="s4" /> |
| </bean> |
| |
| <bean id="ctrlDispatcherAdapter" class="org.apache.s4.dispatcher.Dispatcher" |
| init-method="init"> |
| <property name="partitioners"> |
| <list> |
| <ref bean="genericPartitioner" /> |
| </list> |
| </property> |
| <property name="eventEmitter" ref="commLayerEmitterToAdapter" /> |
| <property name="loggerName" value="s4" /> |
| </bean> |
| <!-- END: Dispatchers for control events --> |
| |
| <!-- Control Events handler --> |
| <bean id="ctrlHandler" class="org.apache.s4.processor.ControlEventProcessor"> |
| <property name="dispatcher" ref="ctrlDispatcher" /> |
| </bean> |
| |
| <bean id="peContainer" class="org.apache.s4.processor.PEContainer" |
| init-method="init" lazy-init="true"> |
| <property name="maxQueueSize" value="${pe_container_max_queue_size}" /> |
| <property name="monitor" ref="monitor" /> |
| <property name="trackByKey" value="true" /> |
| <property name="clock" ref="clock" /> |
| <property name="controlEventProcessor" ref="ctrlHandler" /> |
| <property name="safeKeeper" ref="safeKeeper" /> |
| </bean> |
| |
| <bean id="rawListener" class="org.apache.s4.listener.CommLayerListener" |
| init-method="init"> |
| <property name="serDeser" ref="serDeser" /> |
| <property name="clusterManagerAddress" value="${zk_address}" /> |
| <property name="appName" value="${s4_app_name}" /> |
| <property name="maxQueueSize" value="${listener_max_queue_size}" /> |
| <property name="monitor" ref="monitor" /> |
| </bean> |
| |
| <bean id="eventListener" class="org.apache.s4.collector.EventListener" |
| init-method="init"> |
| <property name="rawListener" ref="rawListener" /> |
| <property name="peContainer" ref="peContainer" /> |
| <property name="monitor" ref="monitor" /> |
| </bean> |
| |
| <bean id="monitor" class="org.apache.s4.logger.Log4jMonitor" lazy-init="true" |
| init-method="init"> |
| <property name="flushInterval" value="30" /> |
| <property name="loggerName" value="monitor" /> |
| </bean> |
| |
| <bean id="watcher" class="org.apache.s4.util.Watcher" init-method="init" |
| lazy-init="true"> |
| <property name="monitor" ref="monitor" /> |
| <property name="peContainer" ref="peContainer" /> |
| <property name="minimumMemory" value="52428800" /> |
| </bean> |
| |
| |
| |
| |
| <!-- Some useful beans related to client-adapter for apps --> |
| |
| <!-- Dispatcher to send to all adapter nodes. --> |
| <bean id="dispatcherToClientAdapters" class="org.apache.s4.dispatcher.Dispatcher" |
| init-method="init"> |
| <property name="partitioners"> |
| <list> |
| <ref bean="broadcastPartitioner" /> |
| </list> |
| </property> |
| <property name="eventEmitter" ref="commLayerEmitterToAdapter" /> |
| <property name="loggerName" value="s4" /> |
| </bean> |
| |
| <!-- Partitioner to achieve broadcast --> |
| <bean id="broadcastPartitioner" class="org.apache.s4.dispatcher.partitioner.BroadcastPartitioner" /> |
| |
| |
| |
| <bean id="loopbackDispatcher" class="org.apache.s4.dispatcher.Dispatcher" |
| init-method="init"> |
| <property name="partitioners"> |
| <list> |
| <ref bean="loopbackPartitioner" /> |
| </list> |
| </property> |
| <property name="eventEmitter" ref="commLayerEmitter" /> |
| <property name="loggerName" value="s4" /> |
| </bean> |
| |
| <bean id="loopbackPartitioner" class="org.apache.s4.dispatcher.partitioner.LoopbackPartitioner"> |
| <property name="eventEmitter" ref="commLayerEmitter"/> |
| </bean> |
| |
| <bean id="safeKeeper" class="org.apache.s4.ft.SafeKeeper" init-method="init"> |
| <property name="stateStorage" ref="fsStateStorage" /> |
| <property name="loopbackDispatcher" ref="loopbackDispatcher" /> |
| <property name="serializer" ref="serDeser"/> |
| <property name="hasher" ref="hasher"/> |
| <property name="storageCallbackFactory" ref="loggingStorageCallbackFactory"/> |
| </bean> |
| |
| <bean id="loggingStorageCallbackFactory" class="org.apache.s4.ft.LoggingStorageCallbackFactory"/> |
| |
| <bean id="fsStateStorage" class="org.apache.s4.ft.DefaultFileSystemStateStorage" init-method="init"> |
| <!-- if not specified, default is <current_dir>/tmp/storage |
| <property name="storageRootPath" value="${storage_root_path}" /> --> |
| </bean> |
| |
| |
| </beans> |