MetaQ 实战经验
Last updated
Last updated
<!-- 配置 metaq 的 zk 地址 -->
<bean id="metaClientConfig" class="com.taobao.metamorphosis.client.MetaClientConfig">
<property name="zkConfig">
<bean id="zkConfig" class="com.taobao.metamorphosis.utils.ZkUtils.ZKConfig">
<property name="zkConnect" value="${metaq.zk.server}" />
</bean>
</property>
</bean>
<!-- 广播消息会话工厂,既可以创建广播消息会话,也可以创建非广播消息会话 -->
<!-- metaq 建议一个应用只使用一个消息会话工厂,所以使用广播消息会话工厂是最吼滴 -->
<bean id="broadcastMessageSessionFactory"
class="com.meizu.flymetv.video.metaq.patch.MetaBroadcastMessageSessionFactoryForWindows">
<constructor-arg index="0">
<ref bean="metaClientConfig" />
</constructor-arg>
</bean>
<!-- 消息生产者,注入到业务代码后调用 messageProducer.publish(topic) 后就可以发射消息了 -->
<!-- 多个 topic 可以调用多次 publish 方法,所以一个应用只需要一个生产者 -->
<bean id="messageProducer" factory-bean="broadcastMessageSessionFactory"
factory-method="createProducer" destroy-method="shutdown" /><!-- 消费者,不同的 group 用不同的消费者 -->
<!-- 创建消费者:广播消息 createBroadcastConsumer(), 非广播消息 createConsumer() -->
<!-- 消息者注入业务代码后,需依次调用 subscribe(), completeSubscribe() 方法才能订阅并生效 -->
<!-- jetty group 广播消息 -->
<bean id="jettyMessageConsumer" factory-bean="broadcastMessageSessionFactory"
factory-method="createBroadcastConsumer" destroy-method="shutdown">
<constructor-arg>
<bean id="jettyConsumerConfig"
class="com.taobao.metamorphosis.client.consumer.ConsumerConfig">
<property name="group" value="${metaq.group.jetty}" />
</bean>
</constructor-arg>
</bean>
<!-- redis group 广播消息 -->
<bean id="redisMessageConsumer" factory-bean="broadcastMessageSessionFactory"
factory-method="createBroadcastConsumer" destroy-method="shutdown">
<constructor-arg>
<bean id="redisConsumerConfig"
class="com.taobao.metamorphosis.client.consumer.ConsumerConfig">
<property name="group" value="${metaq.group.redis}" />
</bean>
</constructor-arg>
</bean>
<!-- youku group 非广播消息 -->
<bean id="youkuMessageConsumer" factory-bean="broadcastMessageSessionFactory"
factory-method="createConsumer" destroy-method="shutdown">
<constructor-arg>
<bean id="youkuConsumerConfig"
class="com.taobao.metamorphosis.client.consumer.ConsumerConfig">
<property name="group" value="${metaq.group.youku}" />
</bean>
</constructor-arg>
</bean>