我有3个Kafka经纪人在一个孤立的网络区域运行,我的客户端无法直接连接它们,所以我必须使用VIP(虚拟IP)来连接经纪人。
例如:
我的经纪人的IP是:10.5.1.5, 10.5.1.6, 10.5.1.7
,
我的VIP的IP是:200.100.1.5, 200.100.1.6, 200.100.1.7
,他们是一对一的配对。
因此,当我将引导列表指示为200.100.1.5
时,群集会响应混合的VIP和Broker ips,例如:10.5.1.5, 10.5.1.6, 200.100.1.5, 200.100.1.6 ...
,然后连接失败,因为我的程序无法访问代理的ip ,只能到达VIP。
我目前的配置如下,它同时响应IP和VIP:
listeners=INTERNAL://:9092,EXTERNAL_PLAINTEXT://:8080
advertised.listeners=EXTERNAL_PLAINTEXT://200.100.1.5:8080,INTERNAL://10.5.1.5:9092
listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL_PLAINTEXT:PLAINTEXT
inter.broker.listener.name=INTERNAL
我怎样才能让卡夫卡只回复贵宾名单。
我得到了答案,可能是以下内容:
advertised.listeners=PLAINTEXT://200.100.1.5:8080
listeners=PLAINTEXT://10.5.1.5:9092
And remove the listener.security and inter.broker.
答案 0 :(得分:3)
您可以使用名为class MainAdapter(lifecycleOwner: LifecycleOwner) : FirebaseRecyclerAdapter<Category, CategoryHolder>(buildOptions(lifecycleOwner)) {
companion object {
private fun buildQuery() = FirebaseDatabase.getInstance()
.reference
.child("").child("categories")
.limitToLast(50)
private fun buildOptions(lifecycleOwner:LifecycleOwner) = FirebaseRecyclerOptions.Builder<Category>()
.setQuery(buildQuery(), Category::class.java)
.setLifecycleOwner(lifecycleOwner)
.build()
}
class CategoryHolder(val customView: View, var category: Category? = null) : RecyclerView.ViewHolder(customView) {
fun bind(category: Category) {
with(category) {
customView.textView_name?.text = category.name
customView.textView_description?.text = category.description
}
}
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CategoryHolder {
return CategoryHolder(LayoutInflater.from(parent.context)
.inflate(R.layout.category_row, parent, false))
}
protected override fun onBindViewHolder(holder: CategoryHolder, position: Int, model: Category) {
holder.bind(model)
}
override fun onDataChanged() {
// Called each time there is a new data snapshot. You may want to use this method
// to hide a loading spinner or check for the "no documents" state and update your UI.
// ...
}
}
的代理设置告诉您的代理在其对客户的响应中包含不同的IP /主机名。
advertised.listeners
:
监听器发布到ZooKeeper以供客户端使用(如果不同) 比
advertised.listeners
配置属性。在IaaS环境中,这可能 需要与代理绑定的接口不同。如果 如果未设置,将使用listeners
的值。不像listeners
宣传0.0.0.0元地址无效。
在您的示例中,您可以拥有第一个经纪人:
listeners