我有一个应用程序,它执行大量的数据处理(一次约130万次)。该应用程序使用来自kafka主题的数据。
我正在使用spring-cloud-stream-starter-kafka的2.0.1版本来消耗数据。
我的代码如下:
监听器:
@Service
public class ListenerService {
@Autowired
private Application2<Foo> application;
@Override
@StreamListener(FooStreams.INPUT)
public void subscribe(@Payload Foo foo) {
application.sync(foo);
}
}
流:
public interface FooStreams {
String INPUT = "Foo";
@Input(value = INPUT)
SubscribableChannel subscribe();
}
在主应用程序中,我将流像这样绑定到kafka:
@SpringBootApplication
@EnableBinding({FooStreams.class})
public class Application {
private static final Logger logger = LoggerFactory.getLogger(Application.class);
public static void main(String[] args) {
try {
SpringApplication.run(Application.class, args);
}
catch (Exception e) {
logger.error("Application failed to start");
}
}
}
我缺少什么吗?问题是我可以看到在数据处理期间内存利用率上升,而在处理完成后并没有下降。