小编cmr*_*rut的帖子

是否存在匿名,可变,安全投票的算法?

我想在我的应用程序中实现一个反馈机制 - 基本上是一个分数.要求是:

  1. 总存在,可以读取
  2. 用户可以将他的分数添加到总数中
  3. 用户无法添加第二个分数,但可以更改其原始分数,再次通过删除(减去)原始分数并添加新分数来更新总分.
  4. 无法确定给定用户的投票结果

似乎这与加密理论接近(甚至重叠),但我无法找到任何可以解决这个问题的方法.有没有人有任何特定的算法可以解决这个问题?或者甚至可以使用其他搜索向量来追求它?

algorithm voting

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

ConcurrentMessageListenerContainer不是并发的

我正在尝试创建一个多线程侦听器,但所有消息都在同一个线程中执行.运行时,线程ID总是相同的,即使KafkaListerContainerFactory(正确地)是我实例化的那个.如果我几乎同时发送7条消息,我希望前三个同时处理,然后是后三个同时处理,然后是最后一个.我看到的是第一个完成的过程,然后是第二个,然后是第三个,等等.我误解了什么,或者只是错误配置?

这是我的倾听者:

@Component
public class ExampleKafkaController {
    Log log = Log.getLog(ExampleKafkaController.class);

    @Autowired
    private KafkaListenerContainerFactory kafkaListenerContainerFactory;

    @KafkaListener(topics = "${kafka.example.topic}")
    public void listenForMessage(ConsumerRecord<?, ?> record) {
        log.info("Got record:\n" + record.value());
        System.out.println("Kafka Thread: " + Thread.currentThread());
        System.out.println(kafkaListenerContainerFactory);

        log.info("Waiting...");
        waitSleep(10000);

        log.info("Done!");
    }

    @Autowired
    private KafkaTemplate<String, String> kafkaTemplate;

    @Value("${kafka.example.topic}")
    public String topic;    

    public void send(String payload) {
        log.info("sending payload='" + payload + "' to topic='" + topic + "'");
        kafkaTemplate.send(topic, payload);
    }

    private void waitSleep(long ms) {
        try {
            Thread.sleep(ms);
        } catch (InterruptedException e) { …
Run Code Online (Sandbox Code Playgroud)

apache-kafka spring-boot spring-kafka

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