小编Vir*_*raj的帖子

Gradle只构建一个模块

我有一个多模块gradle构建.我想使用root执行一个模块的目标.例如:

gradle build -Pmodule=ABC
gradle jar -Pmodule=ABC
gradle test -Pmodule=ABC
gradle compileJava -Pmodule=ABC
gradle customTask -Pmodule=ABC
etc.
Run Code Online (Sandbox Code Playgroud)

因此,每个目标都可以从root指定模块运行.有一个简单的方法吗?

谢谢 !

gradle

137
推荐指数
4
解决办法
8万
查看次数

将System.out.println重定向到日志

在我的项目测试套件中有很大的用途

System.out.println 
Run Code Online (Sandbox Code Playgroud)

我正在尝试将这些输出重定向到日志文件(通过配置或单点而不重构整个项目),以便在必要时可以禁用以提高性能.我正在使用log4j进行日志记录.有人知道这可能吗?如果是这样怎么办?提前致谢.

java logging

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

无法在 k8s 环境中使用 Fluentbit 多行解析器

我的项目部署在k8s环境中,我们使用Fluent Bit将日志发送到ES。我需要将 java stacktrace 作为一个文档发送。因此,我使用了流利的位多行解析器,但我无法让它工作。

方法一:

根据大量教程和文档,我按如下方式配置了 Fluent Bit。

[INPUT]
  Name              tail
  Tag               kube.test.*
  Path              /var/log/containers/*.log
  DB                /var/log/test.db
  Mem_Buf_Limit     50MB
  Refresh_Interval  10
  Multiline         On
  Parser_Firstline  multine_parser_first_line

[PARSER]
  Name        multine_parser_first_line
  Format      regex
  Regex       /^(?<time>(\d)+(-\d+)+(\S)+\W(\S)+)(?<message>.*)/
  Time_Key    time
  Time_Format %Y-%m-%d %H:%M:%S.%L
  Time_Keep On
Run Code Online (Sandbox Code Playgroud)

方法2:

根据Fluentbit with mycat multiline parsing中的回答使用了两个解析器

[INPUT]
  Name              tail
  Tag               kube.test.*
  Path              /var/log/containers/*.log
  DB                /var/log/test.db
  Mem_Buf_Limit     50MB
  Refresh_Interval  10
  Multiline         On
  Parser_Firstline  multine_parser_first_line
  Parser_1          error_log_parser

[PARSER]
  Name        multine_parser_first_line
  Format      regex
  Regex       (\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2}).(\d{3})
  Time_Key    time
  Time_Format %Y-%m-%d %H:%M:%S.%L …
Run Code Online (Sandbox Code Playgroud)

java elasticsearch spring-boot kubernetes fluent-bit

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

Postgresql列出外国数据包装器?

解释了如何创建外部数据包装器.

那么如何列出所有现有的外国数据包装器?

postgresql

7
推荐指数
2
解决办法
6734
查看次数

为什么这个Rust程序忽略了不变性

我有以下Rust程序,我希望它会导致编译错误,因为x稍后会重新分配.但它符合并提供输出.为什么?

fn main() {
   let (x, y) = (1, 3);
   println!("X is {} and Y is {}", x, y);

   let x: i32 = 565;
   println!("Now X is {}", x);
}
Run Code Online (Sandbox Code Playgroud)

rust

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

MongoDB Spring Data Criteria不是运算符

我有以下代码使用spring data mongodb(版本1.2.3.RELEASE)在mongo db中搜索

Criteria searchCriteria = Criteria.where("NAME").is("TestName")
        .and("ID").is("TestID").not().and("Age").is("23");
Run Code Online (Sandbox Code Playgroud)

我得到了以下查询(没有运算符)

Query: { "NAME" : "TestName" , "ID" : "TestID", "Age" : "23" }
Run Code Online (Sandbox Code Playgroud)

我期待以下查询

Query: { "NAME" : "TestName" , "$not" : { "ID" : "TestID"}, "Age" : "23" }
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么 ?任何帮助是极大的赞赏.谢谢

spring-data-mongodb

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

如何从 kafka 流获取窗口聚合?

我有一个事件流,我想根据时间窗口聚合这些事件。我的解决方案提供增量聚合,而不是在定时窗口上进行聚合。我已经读过这对于流来说是正常的,因为它会将结果作为更改日志。同样在研究期间,我遇到了 Kafka Streams DSL 的 2 步窗口聚合以及如何发送时间窗口 KTable 的最终 kafka-streams 聚合结果?. 但是第一篇文章中的解决方案有些过时(使用已弃用的 API)。我使用了那些已弃用的 API 中建议的新 API。这是我的解决方案

KStream<String, Event> eventKStream = summarizableData.mapValues(v -> v.getEvent());
    KGroupedStream<String, Event> kGroupedStream = eventKStream.groupBy((key, value) -> {
             String groupBy = getGroupBy(value, criteria);
             return groupBy;
    }, Serialized.with(Serdes.String(), eventSerde));


    long windowSizeMs = TimeUnit.SECONDS.toMillis(applicationProperties.getWindowSizeInSeconds());
    final TimeWindowedKStream<String, Event> groupedByKeyForWindow = kGroupedStream
            .windowedBy(TimeWindows.of(windowSizeMs)
                    .advanceBy(windowSizeMs));
Run Code Online (Sandbox Code Playgroud)

但是,正如我之前所解释的,我的结果不是在特定时间窗口中给出的,而是作为增量聚合给出的。我需要我的数据按照 windowSize 中给出的指定时间输出。我也读到CACHE_MAX_BYTES_BUFFERING_CONFIG可以控制输出,但我需要一些可靠的解决方案适用于每种情况。另请注意,https: //cwiki.apache.org/confluence/display/KAFKA/Windowed+aggregations+over+successively+increasing+timed+windows wiki 中给出的模式现在已经过时,因为它使用旧的 API。(我使用的是 kafka-streams 1.1.0 版本)

java apache-kafka apache-kafka-streams

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

在PostgreSQL中一致的哈希解决方案中重新平衡虚拟节点的算法?

我正在使用PostgreSQL 9.3,并且已经使用plproxy实现了与虚拟节点的一致性哈希。

在当前设置中,节点之间的添加和重新平衡正在起作用(服务器之间的数据移动使用PostgrelSQL外部数据包装器完成)。

但是有一个限制。在当前设置中,所有物理节点均假定为相等。即,添加节点时,无法提供每个服务器的虚拟节点数。我也想建立这种行为。

所以我在问什么是更好的算法来实现这一点。当前的算法只是在服务器之间平均分配服务器的虚拟节点容量。在新算法中,我希望看到虚拟节点移动的最小数量。

例如:

假设我们有4个服务器的集群,每个服务器有64个虚拟节点(总共256个虚拟节点)。我想添加具有200个虚拟节点(或虚拟节点的某个百分比)的服务器(服务器X),以便每个4台服务器均对该新服务器做出同等贡献,以在一定程度上满足其虚拟节点数。

但是,当添加新节点(即服务器X)时,我不想为该服务器分配全部200个。我需要一种算法来从现有服务器中分配一定比例,以便在一定程度上满足新服务器的200个节点的需求,并且以前的4个服务器不会在那里大量释放虚拟节点。

在物理服务器之间划分虚拟节点的更好策略是什么?

algorithm postgresql consistent-hashing

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

Mybatis ,将映射器 xml 文件添加到 Java 创建的配置中

我有一个我的 batis (3.2.7) 应用程序,我正在使用 java 代码(不是 xml )创建配置,如下所示。

public static Configuration getConfiguration(DataSet data) {
        if (configuration == null) {
            DataSource dataSource = getDataSource(DRIVER, URL, data.getUsername(), data.getPassword());
            TransactionFactory transactionFactory = new JdbcTransactionFactory();
            Environment environment =
                    new Environment("development", transactionFactory, dataSource);
            configuration = new Configuration(environment);
        }
        return configuration;
}
Run Code Online (Sandbox Code Playgroud)

使用上述配置创建 sql 会话工厂。

SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);
Run Code Online (Sandbox Code Playgroud)

我的映射器是 xml 格式的(我需要 xml 格式的这些),目前与映射器接口在同一个包中。我正在使用以下代码添加映射器。

configuration.addMapper(CrudMapper.class);
Run Code Online (Sandbox Code Playgroud)

这将自动添加与映射器接口 (CrudMapper) 位于同一文件夹中的 xml 映射器。但我需要将这些 xml 文件移动到资源文件夹。所以映射器接口将在一个位置,而 xml 映射器在不同的位置。我找不到任何方法将 xml 映射器添加到配置中。有没有办法做到这一点 ?

mybatis

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

Intellij Idea:在Java字符串中搜索?

有没有办法在Intellij IDEA中仅在Java字符串中搜索?

我已经搜索过,但找不到任何东西。我必须重构以Java字符串编写的休眠HQL查询。如果IDE支持字符串搜索,那么对我来说将更加容易。

intellij-idea

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