小编Dav*_*vid的帖子

如何编写单元测试用例来为 ListenableFuture 添加回调

我正在尝试为 ListenableFuture 添加回调编写单元测试用例,但我不知道该怎么做。在互联网上没有得到任何有用的东西。

 @Test
    public void can_publish_data_to_kafka() {
        String topic = someString(10);
        String key = someAlphanumericString(5);
        String data = someString(50);
        SendResult sendResult = mock(SendResult.class);
        ListenableFuture<SendResult<String, Object>> future = mock(ListenableFuture.class);

        given(kafkaTemplate.send(topic, key, data)).willReturn(future);

        doAnswer(new Answer() {
            @Override
            public Object answer(InvocationOnMock invocationOnMock) throws Throwable {
                return invocationOnMock.getArguments()[1];
            }
        });

        service.method(key, topic, data);

    }
Run Code Online (Sandbox Code Playgroud)

我想为其编写测试用例的代码

ListenableFuture<SendResult<String, Object>> future = kafkaTemplate.send(topicName, key, data);

        future.addCallback(new ListenableFutureCallback<SendResult<String, Object>>() {
            @Override
            public void onSuccess(SendResult<String, Object> stringKafkaBeanSendResult) {
                RecordMetadata recordMetadata = stringKafkaBeanSendResult.getRecordMetadata();
                LOGGER.info(String.format("sent message %s to topic %s …
Run Code Online (Sandbox Code Playgroud)

concurrency junit unit-testing mockito spring-kafka

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

将数据从 Oracle 数据库迁移到 MongoDB 的策略

我有一个包含生产数据的现有 Oracle 数据库。我打算迁移到MongoDB,所以我想将Oracle数据库中现有的数据迁移到MongoDB。Oracle数据库和MongoDB中存储的数据的数据模型会有所不同。

我计划使用https://blogs.oracle.com/jsondb/generate-json-data从 Oracle 数据库获取所有 json 数据。一旦我获得包含所有数据的 json 文件,我会将其导入到 MongoDB 中。如果从 Oracle 数据库提取的数据不符合我的要求,我将创建一个实用程序来将每个集合的数据转换为多个 json 文件。

如果有更好的方法,我需要一些建议,我的解决方案是否是解决问题的正确方法?

database oracle data-modeling database-migration mongodb

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

在java中解析大型CSV文件的最快且有效的方法

我想尽可能快速高效地解析大型 CSV 文件。

目前,我正在使用 openCSV 库来解析我的 CSV 文件,但解析一个包含 10776 条记录和 24 个标题的 CSV 文件大约需要 10 秒,我想解析一个包含数百万条记录的 CSV 文件。

<dependency>
  <groupId>com.opencsv</groupId>
  <artifactId>opencsv</artifactId>
  <version>4.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我正在使用 openCSV 库使用下面的代码片段进行解析。

public List<?> convertStreamtoObject(InputStream inputStream, Class clazz) throws IOException {
        HeaderColumnNameMappingStrategy ms = new HeaderColumnNameMappingStrategy();
        ms.setType(clazz);
        Reader reader = new InputStreamReader(inputStream);

        CsvToBean cb = new CsvToBeanBuilder(reader)
                .withType(clazz)
                .withMappingStrategy(ms)
                .withSkipLines(0)
                .withSeparator('|')
                .withFieldAsNull(CSVReaderNullFieldIndicator.EMPTY_SEPARATORS)
                .withThrowExceptions(true)
                .build();
        List<?> parsedData = cb.parse();
        inputStream.close();
        reader.close();
        return parsedData;
    }
Run Code Online (Sandbox Code Playgroud)

我正在寻找另一种方法的建议,以在更短的时间内解析包含数百万条记录的 CSV 文件。

---更新了答案----

 Reader reader = new InputStreamReader(in);
        CSVParser csvParser = new …
Run Code Online (Sandbox Code Playgroud)

csv parsing opencsv java-8

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

apache kafka 的硬件要求

我正在构建一个生产环境,我将在其中安装 Apache Kafka。我想知道最好的硬件组合以获得更好的性能。我将有 5000 个事务/秒。

infrastructure apache-kafka

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