小编Kar*_*nna的帖子

多个Kafka消费者可以从分区读取相同的消息

我们计划编写一个Kafka使用者(java),它读取Kafka队列以执行消息中的操作.

由于消费者独立运营,消息一次只能由一个消费者处理吗?否则,所有消费者处理相同的消息,因为他们在分区中具有自己的偏移量.

请帮我理解.

apache-kafka kafka-consumer-api

28
推荐指数
3
解决办法
3万
查看次数

如何在主/从配置中配置Redis 3.4及更高版本以解决在保护模式下运行的错误Sentinel?

我正在使用Redis 3.2,当从不同的机器连接到哨兵时,我收到以下错误:

Trying X.X.X.X...
Connected to X.X.X.X.
Escape character is '^]'.
-DENIED Redis is running in protected mode because protected mode is enabled, no bind address was specified, no authentication password is requested to clients. In this mode connections are only accepted from the loopback interface. If you want to connect from external computers to Redis you may adopt one of the following solutions: 1) Just disable protected mode sending the command 'CONFIG SET protected-mode no' from the …
Run Code Online (Sandbox Code Playgroud)

redis

6
推荐指数
2
解决办法
1万
查看次数

KafkaConsumer Java API Subscribe()与Assign()

我是Kafka Java API的新手,正在研究使用特定Kafka主题的记录。

我知道我可以使用方法subscribe()从该主题开始轮询记录。assign()如果我要从选定主题的分区开始轮询记录,Kafka还提供了方法。

我想知道这是否是两者之间的唯一区别?

java apache-kafka kafka-consumer-api

6
推荐指数
1
解决办法
2460
查看次数

AWS Cloud Watch:我们可以在云监视查询中使用两次统计信息吗?

我正在处理一个仪表板查询,我想计算需要超过一定金额才能完成的所有交易的计数。

我的查询是这样的:

fields message
| filter kubernetes.namespace_name = 'feature-7355' 
| filter message like "INFO"
| filter message like "Metric" 
| parse '[*] * [*] * - *' as logLevel, timeStp, threadName, classInfo, logMessage
| parse logMessage 'Header: [*]. Metric: [*]. TimeSpent: [*]. correlationId: [*]' as headers, metric, timeSpent, correlationId
| filter ispresent(correlationId)
| stats sum(timeSpent) as TotalTimeSpentByTransaction by correlationId
| filter TotalTimeSpentByTransaction > 2000
| stats count(timeCorrelationId) as correlationIdCount
Run Code Online (Sandbox Code Playgroud)

当我尝试执行此操作时,出现错误:

mismatched input 'stats' expecting {K_PARSE, K_SEARCH, K_FIELDS, K_DISPLAY, K_FILTER, K_SORT, …
Run Code Online (Sandbox Code Playgroud)

amazon-cloudwatch

5
推荐指数
0
解决办法
482
查看次数

在命令设计模式中将上下文传递给执行方法

通过命令设计模式,我明白我们需要通过构造函数设置上下文来创建命令,然后调用执行方法对上下文执行某些操作。例子:

public class Command implements ICommand {

    Device device;

    public Command(Device device) {
        this.device = device;
    }

    public void execute() {
        this.device.turnOn()
    }
}
Run Code Online (Sandbox Code Playgroud)

我想知道通过这种方法,我们将需要为我们创建的每个设备对象创建一个新的命令对象。将上下文和一些参数传递给execute方法可以吗?我正在寻找类似的东西:

public class Command implements ICommand {

    public void execute(Device device) {
        this.device.turnOn();
    }

}
Run Code Online (Sandbox Code Playgroud)

这种方法有什么问题吗?

java design-patterns

3
推荐指数
1
解决办法
962
查看次数

2
推荐指数
1
解决办法
1421
查看次数

弹性搜索集群

我正在尝试使用 Elastic 搜索,并且很难在具有 3 个弹性搜索实例的单台机器上创建集群。我对实例进行了以下更改:

  1. 在所有实例上更改集群名称 {cluster.name: es-stack}
  2. 在所有实例上更改节点名称 {node.name: node-1 , node.name: node-2, node.name: node-3}
  3. 更改了 http 端口 {http.port: 9203, http.port: 9202, http.port: 9201}
  4. 改变了 ping 单播 {discovery.zen.ping.unicast.hosts: ["127.0.0.1:9201", "127.0.0.1:9202"]}

实例上的 elasticsearch.yml 如下所示:

# Instance 1
cluster.name: es-stack
node.name: node-1
http.port: 9201
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9202", "127.0.0.1:9203"]

# Instance 2
cluster.name: es-stack
node.name: node-2
http.port: 9202
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9201", "127.0.0.1:9203"]

# Instance 3
cluster.name: es-stack
node.name: node-3
http.port: 9203
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9201", "127.0.0.1:9202"]
Run Code Online (Sandbox Code Playgroud)

在尝试启动实例时进行这些配置后,我无法获得集群环境。启动弹性搜索实例时日志文件中的错误跟踪显示:

[2016-11-30T23:25:59,320][INFO ][o.e.t.TransportService   ] [node-2] publish_address {127.0.0.1:9301}, bound_addresses {[fe80::1]:9301}, {[::1]:9301}, …
Run Code Online (Sandbox Code Playgroud)

elasticsearch

1
推荐指数
1
解决办法
3405
查看次数

Java:糟糕的错误处理,最后抛出

我有以下代码,我正在运行强化。为什么它被标记为糟糕的错误处理,最后扔进去?

private String getResourceContent(String fileName) throws IOException {

    try (InputStream resource = ErrorResource.classLoader.getResourceAsStream(fileName)) {
        return new String(resource.readAllBytes(), StandardCharsets.UTF_8);
    } catch (NullPointerException n) {
        throw new ErrorDescriptorException(
                String.format("Error loading Error description data from Resource file [%s].", fileName), n);
    }
}
Run Code Online (Sandbox Code Playgroud)

java fortify

1
推荐指数
1
解决办法
2900
查看次数

函数式接口与具有单一方法(如 Runnable)的接口

在浏览功能接口时,我无法理解它们与使用单一方法的其他接口有何不同,例如 Runnable。

我们可以在尝试使用其他 Functional 接口时使用 Runnable。在 Java 8 之前,我们已经可以为单个功能创建接口和匿名对象。

例如:

@FunctionalInterface
public interface ITrade {
  public boolean check(Trade t);
}
Run Code Online (Sandbox Code Playgroud)

这与以下有何不同:

public interface ITrade {
  public boolean check(Trade t);
}
Run Code Online (Sandbox Code Playgroud)

java java-8 functional-interface

-1
推荐指数
1
解决办法
1410
查看次数