小编ish*_*han的帖子

在我的 Spring Boot 应用程序中实现 Kafka 健康检查的更简洁有效的方法是什么?

我有一个 spring boot (2.1.6) 应用程序,它既消费又向(组织范围内的)公共 kafka 实例生成消息。我正在尝试使用 spring 执行器在我的应用程序中为这个 kafka 代理实施健康检查,但我面临着一系列与性能和日志记录相关的问题。spring boot 2.0 中内置了一个健康指示器,但由于一些明显的问题,他们将其删除。

这是我实现的健康检查类:

@Component
public class KafkaHealthCheck implements HealthIndicator {

  private static final Logger logger = LoggerFactory.getLogger(KafkaHealthCheck.class);

  private KafkaAdmin kafkaAdmin;

  private Map<String, Object> kafkaConfig;

  @Value("${application.topic}")
  private String topicName;

  @Value(value = "${kafka.bootstrapAddress}")
  private String bootstrapAddress;

  public KafkaHealthCheck(KafkaAdmin kafkaAdmin) {
    this.kafkaAdmin = kafkaAdmin;

  }

  @PostConstruct
  public void setUpAdminClient() {
    kafkaConfig = new HashMap<>();
    kafkaConfig.putAll(kafkaAdmin.getConfig());
    kafkaConfig.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapAddress);
  }

  @Override
  public Health health() {
    Long start = System.currentTimeMillis();
    try (AdminClient adminClient = …
Run Code Online (Sandbox Code Playgroud)

java apache-kafka spring-boot spring-kafka

9
推荐指数
0
解决办法
3314
查看次数

如何在Jinja2模板中检查2个日期之间的差异是>或<1个月?

我正在使用jinja2模板(使用Ansible),其中我需要检查两个日期之间的差异.我没有日期的时代,但我确实有它们的yyy-mm-dd HH:MM:ss格式(没有毫秒).所以我的问题:

1)jinja2有没有办法比较两个日期?我不想安装任何库,它必须是内置功能.

2)如果不能通过jinja2完成,是否有一个快速逻辑我可以实现比较它们?喜欢转换为时代?(记住,没有毫秒)

date jinja2 ansible

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

捕获JBoss AS 7中hibernate JPA生成的最终SQL查询

我一直在努力在我的项目中捕获一个非常复杂的JPA查询的确切SQL以进行优化,但到目前为止我无法这样做.我尝试了以下方法:

1)通过在logback.xml中添加以下内容并启用show_SQL,尝试通过logback启用hibernate日志

    <logger name="org.hibernate.type" level="ALL" />
 <logger name="org.hibernate" level="TRACE">
    <appender-ref ref="fdpAdminAppender" />
 </logger>
Run Code Online (Sandbox Code Playgroud)

2)尝试使用P6spy-2驱动程序与Jboss AS7和postgres,但只是无法使其工作.它给出了以下例外.

com.p6spy.engine.spy.P6SpyDriver cannot be cast to javax.sql.XADataSource
Run Code Online (Sandbox Code Playgroud)

3)在JBoss AS 7中启用了内置数据源间谍,它确实有效.但是日志显示的数据太多,所有这些对我来说都是无用的,因为它们再次将值附加为"?".即使我可以在这里获得完整的SQL语句,我的问题也将得到解决.

到目前为止,我已经成功完成了第3步,但要么我错过了某些东西,要么就是这样,无论是哪种情况,我的实际目的都没有得到解决.所以请有人帮我从JPA获取实际的SQL查询.我并不关心如何得到它,我只需要得到它.我经历过需要在开发过程中多次验证JPA生成的实际SQL.很奇怪为什么没有标准的方法来做到这一点.

hibernate p6spy jpa-2.0 jboss7.x postgresql-9.2

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

在Spring Security中为不同选项卡强制执行单独的会话

我在Web应用程序中使用Spring Security v 3.1.3。该应用程序具有在Spring Security中使用custom-filter自定义的单项登录表单。现在,我的配置允许用户在同一浏览器中从其他选项卡打开URL时自动登录该应用程序,这是Spring安全会话管理的默认行为。

我想确保每当用户登录应用程序时,会话都不应在不同选项卡之间共享。在打开新选项卡时,他应该获得登录页面,并且登录后将在同一浏览器中创建一个新会话。目前,我找不到任何使用Spring安全框架来做到这一点的方法。我不介意将JsessionID集成到URL中,但是如果有另一种方法会更好。

session spring spring-mvc spring-security

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

如何在不同页面上实现“检查所有”功能,仅检查jquery数据表中的当前页面数据?

我有一个表,其中包含大量记录,借助数据表进行分页。第一个标题列是全选复选框,每行都有自己的复选框。

我希望在我的表中具有以下功能:

1) 用户可以浏览表格并随机选择/取消选择复选框。

2) 单击标题中的“全选”复选框应仅选中/取消选中所有当前可见的记录。

3)“全选”按钮应为数据表的不同页面保持状态(选中/未选中)。例如,如果用户单击第 1 页上的“全选”并导航到下一页,则应取消选择“全选”复选框,再次单击该复选框将仅检查此页面中的所有行,而之前选择的复选框不受影响。

到目前为止,我有以下代码来处理检查选择:

$('#selectAllCheck').click(function(e) {

    var chk = $(this).prop('checked');
    var currentRows = $('#myTable tbody tr');

    $.each(currentRows, function(){
        $(this).find(':checkbox[name=statusCheckbox]').each(function(){
            $(this).prop('checked', chk);
        });
    });
  });
Run Code Online (Sandbox Code Playgroud)

我知道这个_('tr', {"filter":"applied"});函数,但它只是将所有行返回给我。我不知道为什么。

我已经使用上面的代码实现了(1)和(2),并且工作正常。唯一的问题是“全选”功能在不同页面上的行为。我查看了 datatables.net 但找不到与此相关的任何内容。

jquery datatables

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

当文档中某处存在异常大的值时,SAX解析器读取XML元素的一部分

我使用SAX解析器从大型XML文件中读取一些元素.下面是我为此目的使用的示例XML和SAX解析器代码.

<someOtherElement>231</someOtherElement>
<someMoreOtherElement>1233.00213</someMoreOtherElement>
...
<elementToRead1>31.0.1</elementToRead1>
<elementToRead2>ABCD-XYZ-1.0</elementToRead2>
Run Code Online (Sandbox Code Playgroud)

解析器代码:

public class MyHandler extends DefaultHandler {

    private String elementToRead1

    private Boolean flag1 = false;

    private String elementToRead2

    private Boolean flag2 = false;

    public void readValues(final String xmlString) throws XMLParseException {
        SAXXMLParser.parseString(xmlString, this);
    }

    @Override
    public void startElement(final String uri, final String localName, final String qName, final Attributes attributes) {

        if (""elementToRead1"".equals(qName)) {
            flag1 = true;
        }

        if (""elementToRead2"".equals(qName)) {
            flag2 = true;
        }
    }

    @Override
    public void characters(final char ch[], final int start, …
Run Code Online (Sandbox Code Playgroud)

java sax saxparser

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

检查是否存在给定的服务名称及其在NSSM API中的状态

我正在尝试构建一种自包含系统,我将应用程序可执行文件复制到一个位置,并将服务作为独立应用程序运行,无需安装.我使用NSSM可执行文件在Windows Server 2012 R2和一台机器上创建服务,将会有很多可部署的.我的问题是,虽然自动化与Ansible部署,我被困在那里我需要知道,如果给定的服务名已经存在,如果是,什么是它的状态呢?在NSSM中似乎没有任何API来检查它.如果服务存在,如何通过命令行询问NSSM?我可以通过命令行检查服务的存在和状态(没有powershell)吗?

windows-services windows-server-2012-r2 nssm

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

从属性文件加载属性并使它们在整个作业/管道中可用-Jenkins声明性语法

我的要求很简单,我只想外部化一些“值”以使我的Jenkinsfile更可重用,为此,我需要从一个文件中加载属性,该文件将紧挨Jenkinsfile,并确保这些属性是在管道中的任何地方都可用。我仍然对groovy和Jenkins代码不熟悉,但是从未想到过如此简单的事情会如此困难。我在脚本安全性插件中启用了一些方法,但是以下代码(以及我尝试过的几种变体)始终会引起错误或显示null或给我NPE。我尝试了多种组合,下面的代码只是其中之一。

properties = null

@NonCPS
def loadProperties() {
    checkout scm
    File propertiesFile = new File('${workspace}/pipeline.properties')
    propertiesFile.withInputStream {
            properties.load(propertiesFile)
    }
}

pipeline {
    agent none

    stages {

        stage ('prepare') {
            agent any

            steps {
                script {
                loadProperties()
                echo "${properties['repo']}"
                }
            }
        }
        stage('Build') {

            agent any

            steps {
                sh 'echo ${properties.repo}'
            }

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

groovy jenkins jenkins-groovy jenkins-pipeline

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