小编Boh*_*huk的帖子

Kafka Broker 找不到集群 ID 并在 docker 重启后创建新的集群 ID

我已经使用 kafka 代理和动物园管理员创建了 docker 以使用运行脚本启动它。如果我重新启动,它会正常启动并运行正常(Windows -> WSL -> 两个 tmux 窗口,一个会话)。如果我关闭 kafka 或 zookeeper 并重新启动它,它将正常连接。

当我停止 docker 容器(docker stop my_kafka_container)时出现问题。然后我从我的脚本 ./run_docker 开始。在开始之前的那个脚本中,我删除旧容器docker rm my_kafka_container,然后 docker run。

Zookeeper 正常启动,并且在文件 meta.properties 中,它具有上次启动时的旧集群 ID,但 kafka 代理由于某种原因无法通过 znode cluster/id 找到此 id 并创建新的,这不是存储在 meta.properties 中的。我得到

  ERROR Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer)
kafka.common.InconsistentClusterIdException: The Cluster ID m1Ze6AjGRwqarkcxJscgyQ doesn't match stored clusterId Some(1TGYcbFuRXa4Lqojs4B9Hw) in meta.properties. The broker is trying to join the wrong cluster. Configured zookeeper.connect may be wrong.
        at kafka.server.KafkaServer.startup(KafkaServer.scala:220) …
Run Code Online (Sandbox Code Playgroud)

apache-kafka docker apache-zookeeper

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

如何在Advanced REST API客户端中使用Chrome中的Cookie

我有这样的问题:以前高级REST API客户端与浏览器集成,如果我登录了我的应用程序,我可以向我的应用程序发送请求.现在它是分开的,它不使用浏览器的会话.

如何在不登录的情况下使用cookies/session向我的应用程序发送请求?

api rest

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

用于具有多个项目的单一存储库的 Azure Pipelines 仅构建更新的一个

我正在尝试使用 Azure 管道为一个存储库中包含的多个 Java 项目构建 CI/CD。

为此,需要创建一个管道,该管道将使用 Maven@3 任务构建每个项目。问题是,当我们添加新项目时,我希望只构建这个项目,而不是之前的每个项目。我的文件看起来像:

    resources:
- repo: self
  clean: true
  lfs: true

trigger:
  branches:
    include:
      - feature/*

variables:
  - group: vars

stages:
- stage: Build
  pool:
    vmImage: 'image' 
  jobs:
  - job: Build
    strategy:
      maxParallel: 4
    steps:
    - task: replacetokens@3
      inputs:
        targetFiles: 'settings.xml'
    - task: Maven@3
      inputs:
        jdkVersionOption: 1.8
        mavenPomFile: 'project1/pom.xml'
        options: '-s $(Build.SourcesDirectory)\settings.xml'
        goals: 'clean package'
    - task: Maven@3
      inputs:
        jdkVersionOption: 1.8
        mavenPomFile: 'project2/pom.xml'
        options: '-s $(Build.SourcesDirectory)\settings.xml'
        goals: 'clean package'
Run Code Online (Sandbox Code Playgroud)

例如project1在develop中已经alraedy了,所以我不想为它做mvn包,而只是为project2做mvn包,它没有合并并且有功能分支。

现在这个 yml 不起作用,因为 project1 …

java azure-devops azure-pipelines

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

复选框css样式看起来像禁用

我需要启用样式复选框看起来像禁用,但style="background: #e4e4ee4;"不起作用.有人能帮助我吗?如何使复选框看起来像已使用css禁用属性?(禁止使用属性禁用的情况).

html css checkbox

6
推荐指数
2
解决办法
3615
查看次数

使用 Micronautor 或 Quarkus 的多数据源

我想从 Spring Boot 迁移到 Micronaut 或 Quarkus,但在 Spring boot 中,有一项功能为 AbstractRoutingDataSource,它会在运行时更改数据源。micronaut 或 quarkus 中是否有任何类似或任何机制可以在运行时使用多个数据源?

Spring-boot 功能供参考https://medium.com/innomizetech/dynamic-multi-database-application-with-spring-boot-7c61a743e914

java micronaut quarkus micronaut-data quarkus-panache

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

如何使用 Spring Boot 编写集成/系统测试以使用存储库测试服务

我在 Spring Boot 应用程序中有 @Service,它正在解析文件,然后使用 Spring Data JPA 将其存储到数据库中。我想用更改此映射的所有逻辑来测试此解析。因此,为此我需要在测试中将映射存储在数据库中。

@Service  
public class ParsingService {
    @Autowired
    private StoringInDBRepository storingInDBRepository;
}

@Repository
public interface StoringInDBRepository extends JpaRepository<MyEntity, String> {
Run Code Online (Sandbox Code Playgroud)

问题是,在使用注释 @SpringBootTest 进行测试期间,我不想加载整个上下文,而只想加载我的 ParsingService。当我写作时:

@RunWith(SpringRunner.class)
@SpringBootTest(classes = {ParsingService.class})
public class ParsingServiceTest{

    @Test
    public void someTest(){
    }
}
Run Code Online (Sandbox Code Playgroud)

该测试无法初始化,因为我没有在 @SpringBootTest 注释中加载 StorageInDBRepository 。不过我可以做到,因为 StorageInDBRepository 是一个接口。仅当我测试存储库层时,根据 javadoc 使用 @DataJpaTest 才是正确的。不建议使用@DataJpaTest和@SpringBootTest。

我应该如何测试此类服务?提前致谢。

java spring integration-testing spring-boot

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

即使有失败,junit 5 也会运行所有断言

即使中间断言失败,JUnit 5 中是否有任何机制可以在测试中运行所有断言?例如:

@Test
public void unitForTest_SomeScenario_ShouldReturn() {

    //Act
    var myObj = myServ.getMyObj();
    //Arrange
    assertThat(myObj).isNotNull();
    assertThat(myObj.getName()).isEqualTo("Steve"); //failed assert
    assertThat(myObj.getLastName()).isEqualTo("Gates");
}
Run Code Online (Sandbox Code Playgroud)

我的目的是运行所有断言并跟踪失败的只是第二个,而不是第三个和第一个。

java junit junit5

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