gpt4 book ai didi

java - 使用 testcontainer 模拟数据库的网络中断

转载 作者:行者123 更新时间:2023-11-30 01:56:56 25 4
gpt4 key购买 nike

我正在尝试使用测试容器模拟网络中断。我想使用 Socat 容器来暴露端口,然后将其击落,然后再次击落。我无法做到这一点,因为没有停止。

我该如何处理这个问题?

最佳答案

这很简单!

您需要 2 个容器,SocatContainer(由 Testcontainers 提供)和您的目标容器。通过网络将它们(Socat 和目标)连接起来,请参阅此处的示例:
https://github.com/testcontainers/testcontainers-java/blob/bcecd5cd9f9325517fd45db585312df2624315bb/core/src/test/java/org/testcontainers/containers/NetworkTest.java

当您需要模拟中断时,只需断开目标与网络的连接(通过使用 DockerClientFactory.instance().client()disconnectFromNetworkCmd 获得的 Docker 客户端)。

验证中断处理是否正确后,使用 connectToNetworkCmd 将您的目标连接到网络)。

另一种解决方案是使用 Shopify 的 Toxiproxy:
https://github.com/shopify/toxiproxy 。在容器中启动它(当然是 Testcontainers ;))并使用它们的 Java 客户端来应用混沌操作。

关于java - 使用 testcontainer 模拟数据库的网络中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54119826/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com