回到目录
Kafka
1.配置文件
在配置文件infra.properties 中,有关于kafka的一个配置项:
app.eventkafka.servers=127.0.0.1:9092
该配置项在配置文件 infra.xml 中引用
<bean id="kafkaMessageEventService"
class="com.skynet.infrastructure.kafkaservice.KafkaMessageEventService">
<property name="producerProperties">
<props>
<prop key="bootstrap.servers">${app.eventkafka.servers}</prop>
<prop key="acks">all</prop>
<prop key="key.serializer">
org.apache.kafka.common.serialization.StringSerializer
</prop>
<prop key="key.deserializer">
org.apache.kafka.common.serialization.StringDeserializer
</prop>
<prop key="value.serializer">
org.apache.kafka.common.serialization.StringSerializer
</prop>
<prop key="value.deserializer">
org.apache.kafka.common.serialization.StringDeserializer
</prop>
</props>
</property>
</bean>
默认这段是被注释掉的,因为一般的小型项目不需要打开。
需要使用kafka的时候,请打开此部分注释。
默认的,在项目的配置文件 XXX_custom.xml 中,消息服务使用的是dummy service。定义在bean secUserManager中:
dummyEventService 也是在infra.xml 中定义的。
根据项目需要,修改XXX_custom.xml中的secUserManager的配置,来打开kafka。
2.环境变量
kafka目前没有配置是通过环境变量配置的
3.后台使用
eventService是注入在userContext里的,通过userContext即可发送消息。
消息体是“com.terapico.caf.baseelement.Event”的类型。在生成的代码中,创建对象时会发送消息,可在BaseManagerImpl中查看:
public void sendCreationEvent(UserContext userContext, BaseEntity sourceEntity) {
EventService eventService = ((IscmUserContextImpl)userContext).getEventService();
if(eventService == null){
return;
}
Event event = new Event();
event.setTarget(getSystemInternalName());
event.setMessage(sourceEntity);
eventService.sendEvent(event);
}
4.前台使用
kafka无需前台参与5.参考资料
官网: kafka.apache.org
一个不错的介绍:www.cnblogs.com/BYRans/p/60…