我们有一个带有三个代理(节点 ID 0、1、2)的 kafka 集群和一个带有三个节点的 zookeeper 设置。
我们在这个有 20 个分区和复制因子 2 的集群上创建了一个主题“test”。我们使用 Java 生产者 API 向这个主题发送消息。其中一位 kafka 代理间歇性地宕机,之后无法恢复。为了模拟这种情况,我们手动杀死了其中一个经纪人。根据 kafka arch,它应该会自我恢复,但这并没有发生。当我在控制台上描述该主题时,我看到 ISR 的数量减少到少数分区的一个,因为其中一个代理被杀死。现在,每当我们尝试通过生产者 API(Java 客户端或控制台生产者)推送消息时,我们都会遇到 SocketTimeoutException.. 快速查看日志说,“无法获取元数据”
WARN [2015-07-01 22:55:07,590] [ReplicaFetcherThread-0-3][] kafka.server.ReplicaFetcherThread - [ReplicaFetcherThread-0-3],
Error in fetch Name: FetchRequest; Version: 0; CorrelationId: 23711; ClientId: ReplicaFetcherThread-0-3;
ReplicaId: 0; MaxWait: 500 ms; MinBytes: 1 bytes; RequestInfo: [zuluDelta,2] -> PartitionFetchInfo(11409,1048576),[zuluDelta,14] -> PartitionFetchInfo(11483,1048576).
Possible cause: java.nio.channels.ClosedChannelException
[2015-07-01 23:37:40,426] WARN Fetching topic metadata with correlation id 0 for topics [Set(test)] from broker [id:1,host:abc-0042.yy.xxx.com,port:9092] failed (kafka.client.ClientUtils$)
java.net.SocketTimeoutException …Run Code Online (Sandbox Code Playgroud) 我有一个如下查询
select field1,filed2,count(*),
sum(case isNew WHEN 0 THEN 0 ELSE 1 END) as new_count1,
sum(case source WHEN 'SomeValue' THEN 0 ELSE 1 END) as new_count2
from TABLE
where status='processed'
and filed1='filed1Value'
and filed2='field2Value';
Run Code Online (Sandbox Code Playgroud)
这个输出是一行包含我需要的所有值.我想使用queryDSL实现相同的功能.我在QueryDSL中使用CaseBuilder但无法在其上应用总和.. QueryDsl是否支持?有没有人解决过这个问题?
Expression<Integer> sourceCases = qTable.source.
when(matchedValue1).then(new Integer(1)).
otherwise(new Integer(0));
Expression<Integer> newAccountCases = qTable.isNew.
when(matchedValue2).then(new Integer(1)).
otherwise(new Integer(0));
return queryDslJdbcTemplate.queryForObject(sqlQuery,
new Mapping(qTable.filed1,
qTable.filed2,
qTable.id.count(),
####SUM( (sourceCases) )###,
####SUM( (newAccountCases) )###);
Run Code Online (Sandbox Code Playgroud) 我有一个属性文件,比方说
##
## Start of property1
##
##
Property1=\
a:b,\
a1:b1,\
a2,b2
##
## Start of propert2
##
Property2=\
c:d,\
c1:d1,\
c2,d2
Run Code Online (Sandbox Code Playgroud)
请注意,任何给定属性的值可以分为多行.
我想用Perl读取这个属性文件.这在Java中运行良好,因为Java使用反斜杠支持多行值,但在Perl中它是一个噩梦.
在上面的属性文件中有两个属性 - Property1和Property2- 每个属性与一个字符串相关联,我可以根据分隔符,和:
对于给定的属性(比如说Property1)和给定的列(比如说a1)我需要返回第二列(这里b1)
代码应该能够忽略注释,空格等.
提前致谢