DaaS 服务端 Java二次开发指南-消息服务集成

397 阅读1分钟

回到目录

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…

回到目录