小编use*_*603的帖子

消息在什么时间点从主题中删除?

我有一个话题。我有 10 个消费者订阅了它。根据我的理解,当所有消费者都收到一条消息时,该消息将从主题中删除。正确的?一旦删除,任何其他订阅者将不会收到该特定消息的通知。我无法在任何地方的 JMS 规范中确认这一点。

java activemq-classic jms jms-topic

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

消费者连接到zookeeper而不是消息消费的经纪人?

根据Kafka 教程中的此文档

Zookeper 启动于 2181 端口 Broker/Kafka 启动于 9092

启动生产者发送消息

    bin/kafka-console-producer.sh --broker-list localhost:9092 --topic Hello-Kafka // producer is producing directly to broker not zookeeper which is correct
Run Code Online (Sandbox Code Playgroud)

启动消费者接收消息

    bin/kafka-console-consumer.sh --zookeeper localhost:2181 —topic Hello-Kafka --from-beginning
Run Code Online (Sandbox Code Playgroud)

根据我的理解,消费者直接从代理消费消息,但在上面的消费者命令中,我们没有提到代理,而只提到了动物园管理员。消费者会连接到zookeeper(而不是broker)来消费消息吗?

java apache-kafka

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

弹性搜索还是Trie搜索/自动完成?

我的理解是,自动完成/搜索文本/项目在任何可扩展产品(例如Amazon eCommerce / Google)中都可以在高水平上实现的高水平是:-

基于弹性搜索(ES)的方法

  1. 文档存储在DB中。一旦持久化给弹性搜索,它就会创建索引并将索引/文档(基于令牌生成器)存储在基于内存或磁盘的配置中。

  2. 用户键入3个字符后,它将搜索ES下的所有索引(可以配置为甚至对ngram进行索引),根据权重对它们进行排名并返回给用户

但是在阅读了谷歌的一些资源后,例如基于特里的搜索

看起来有些可伸缩产品还使用Trie数据结构来进行基于前缀的搜索。

我的问题是,基于特里的方法是否可以很好地替代ES或ES在内部使用,Trie还是我在这里完全错过了?

algorithm autocomplete trie elasticsearch

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

Eclipse Checkstyle vs Formatter vs Cleanup?

我在 eclipse 下看到了这 3 个功能。我对它们有一个想法,但我不知道它们之间的确切区别。

它们都定义了某种类型的规则并应用了更改。例如:- 如果您有任何未使用的导入,您可以根据清理、格式化程序或检查样式的设置删除未使用的导入。checkstyle、格式化程序和清理之间有什么区别?

java eclipse formatter checkstyle

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

将数组划分为两个子数组,以便数组总和之间的差异最小?

输入是[4,13,14,15,16].输出应该是[16,15][14,13,4].

我可以想到以下算法在哪里

  1. 我按降序排序数组
  2. 将前两个元素放在两个列表中
  3. 现在添加列表中元素最小的元素

public class TestMinDiff {

    public static void main(String[] args) {
        Integer[] array = {4,13,14,15,16};

        Arrays.sort(array, Collections.reverseOrder());

        List<Integer> list1 = new ArrayList<Integer>();
        List<Integer> list2 = new ArrayList<Integer>();

        int list1Sum = 0;
        int list2Sum = 0;

        for(int i: array) {
            if(list1Sum<=list2Sum) {
                list1Sum = list1Sum + i;
                list1.add(i);
            } else {
                list2Sum = list2Sum + i;
                list2.add(i);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

输出是

  1. 清单1是[16,13,4].
  2. 清单2是[15,14].

看起来我的算法需要进一步改进.对我而言,这似乎是一个NP问题.但我无法想到这里给出输出[16,15]和算法的算法 …

java arrays algorithm

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

使用POST在Rest中删除/更新?

我理解(从接受的答案HTTP和REST之间有什么区别?)REST只是一组关于如何使用HTTP的规则

接受的答案说

不,REST是应该使用HTTP的方式.

今天我们只使用一小部分HTTP协议的方法 - 即GET和POST.REST的方法是使用所有协议的方法.

例如,REST规定使用DELETE擦除URI后面的文档(无论是文件,状态等),而使用HTTP,您会滥用GET或POST查询,如... product /?delete_id = 22

我的问题是什么是缺点/缺点(技术或设计)如果我继续使用POST方法而不是DELETE/PUT来删除/更新Rest中的资源?

java rest web-services http

2
推荐指数
3
解决办法
5450
查看次数