我正在尝试使用镜像制作器来复制__consumre_offsets
主题以及其他主题。
出现如下所述的错误。
[2018-10-24 16:16:03,802]错误向主题发送消息时出错 __consumer_offsets,键:16个字节,值:445个字节,错误:(org.apache.kafka.clients.producer.internals.ErrorLoggingCallback) org.apache.kafka.common.errors.InvalidTopicException:该请求 尝试对无效主题执行操作。 [2018-10-24 16:16:03,828]错误将消息发送到主题时出错 __consumer_offsets,键:29个字节,值:754个字节,错误:(org.apache.kafka.clients.producer.internals.ErrorLoggingCallback) org.apache.kafka.common.errors.InvalidTopicException:该请求 尝试对无效主题执行操作。
有什么办法解决这个问题?
在幻灯片21上SlideShare上的一篇精彩演讲中,它提到了有关在多个数据中心中复制偏移量主题的信息。有人可以告诉我实现这一目标的可能方法吗?
或者还有其他更好的方法来备份和恢复Kafka的策略。
答案 0 :(得分:3)
将此添加到您的 consumer.config 中:
exclude.internal.topics=false
并将其添加到您的 producer.config 中:
client.id=__admin_client
有鉴于此,除非您声明AdminClient.scala使用的client.id=__admin_client
,否则生产者无法写内部主题。在这里找到:https://issues.apache.org/jira/browse/KAFKA-6524
答案 1 :(得分:0)
@amdelamar @Abhisek Verma这对你有用吗?如上所述,我分别在使用者和生产者配置文件中尝试了相同的设置,但仍然失败,并出现相同的错误。它开始复制主题,并且经过一定时间后仍然失败。
consumer.config
1
producer.config
import cx_Oracle
import os
def why__(Part_No, Rev_no):
dsn_tns = cx_Oracle.makedsn('XXXXX', 'XXXX', service_name='XXXXX')
conn = cx_Oracle.connect(user=r'XXXX', password='XXXX', dsn=dsn_tns)
c = conn.cursor()
#u_sql =('SELECT PART_REV_CFP.GET_OBJKEY(:Part_No,:Rev_no) from dual')
v_sql =('SELECT PART_REV_CFP.GET_OBJKEY(:Part_No,:Rev_no) from dual')
print(Part_No)
print(Rev_no)
c.execute(v_sql,[Part_No,Rev_no])
#c.execute(v_sql,['02502-9001-12','SS'])
R = c.fetchone()
print('before the loop')
i=0
for row in R:
print('inside the loop')
i+=1
print(i)
print(str(row))
print('after the loop')
conn.close()
return row
Part_No = input("Enter the obs part num: ")
Rev_no = input("Enter the obs part rev: ")
why__(Part_No,Rev_no)
print('outside of the method')
print(why__(Part_No,Rev_no))
OutPut when c.execute(v_sql,[Part_No,Rev_no]) --IN other words no hard coding the values of Part_no and Rev_no
Enter the obsolete part number: 02502-9001-12
Enter the obsolete part revision: ss
before the loop
inside the loop
1
(None,)
after the loop
***Repl Closed***
Output when c.execute(v_sql,['02502-9001-12','SS'])
Enter the obsolete part number: 02502-9001-12
Enter the obsolete part revision: ss
02502-9001-12
ss
before the loop
inside the loop
1
AAAW07AAFAAF5/PAAq
after the loop
outside of the method
02502-9001-12
ss
before the loop
inside the loop
1
AAAW07AAFAAF5/PAAq
after the loop
AAAW07AAFAAF5/PAAq
***Repl Closed***
错误当向主题__consumer_offsets发送消息时发生错误,键:62个字节,值:28个字节,错误:(org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)