java在Kamfka中发送消息时选择源ip地址
我在ApacheKaraf中使用camel KAFKA,并向KAFKA服务器生成消息。我在系统中配置了多个接口,只有始终使用第一个接口才能发送(生成)消息。与我在camel ftp中尝试的方法相同,我可以使用名称“ManagementServer1\u traffic\u interface”选择网络接口,并通过2.23之后引入的bindAddressapi进行绑定。有没有办法配置camel kafka组件以选择网络接口?目前我的机器有2个网络接口
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
192.198.10.1 testserver1 managementserver1_local_interface
192.199.11.2 testserver1 managementserver1_traffic_interface
查看了kafka的源代码,发现它正在内部创建一个用于传输的socket,该socket将提供绑定源地址的选项
private void configureSocketChannel(SocketChannel socketChannel, int sendBufferSize, int receiveBufferSize)
throws IOException {
socketChannel.configureBlocking(false);
Socket socket = socketChannel.socket();
socket.setKeepAlive(true);
if (sendBufferSize != Selectable.USE_DEFAULT_BUFFER_SIZE)
socket.setSendBufferSize(sendBufferSize);
if (receiveBufferSize != Selectable.USE_DEFAULT_BUFFER_SIZE)
socket.setReceiveBufferSize(receiveBufferSize);
socket.setTcpNoDelay(true);
}
注意:在camel ftp中,有一个选项可以通过属性bindAddress选择网络接口,该属性允许我们绑定源地址(在多个接口的情况下)。我们正在使用camel 2.23。因为我们计划只通过流量接口处理流量,而oam活动只通过管理服务器本地接口处理
共 (0) 个答案