【发布时间】:2014-06-19 22:08:36
【问题描述】:
我通常使用 scala 2.10.x。
由于我无法控制的组件的某些限制,我必须使用kafka 客户端版本0.7.2 但是这个版本的kakfa 只能使用scala 2.9.2 编译并且不能使用scala 2.10 .
注意:我不能使用较新版本的 kafka,它不起作用,我无法控制实际的 kafka 版本,所以我必须使用这个客户端版本。 所以我必须使用 kafka 客户端 0.7.2
所以我有多种选择:
- 下载
0.7.2kafka 客户端的源代码并使用 scala 编译2.10不幸的是,源代码更改太多无法执行。 - 使用
jarajar并更新scala-library.jar在打包时有前缀scala.* -> scala.29.*,然后更新kafka客户端0.7.2从scala.29.*导入类我试过了,这里也有问题。 - 这就是我现在要做的 - 在我的 tomcat web 服务器中创建另一个
.war,因为 tomcat 将使用不同的类加载器加载不同的战争,我可以发送我的 kafka 请求而不是从我原来的war到从我的war1到war2和war2将是一个简单的网络应用程序,其中包含一个简单的kafka client 0.7.2。
我的问题:选项 3 听起来明智吗?我对它的开销有一些想法,如果我发送GET 请求到localhost 只是因为我有多个wars 来解决有多个类加载器的问题,这有多好/坏?
【问题讨论】:
标签: java scala maven tomcat apache-kafka