我们有一个集成测试,我们使用 EmbeddedKafka 并向某个主题生成一条消息,我们的应用程序处理该消息,然后将结果发送到我们使用并断言输出的第二个主题。在 CI 中,这可能在 2/3 的时间内有效,但我们会遇到KafkaTestUtils.getSingleRecord抛出异常的情况java.lang.IllegalStateException: No records found for topic(参见下面的 [1])。
为了尝试解决此问题,我ContainerTestUtils.waitForAssignment为注册表中的每个侦听器容器添加了(请参阅下面的 [2])。在 CI 中成功运行几次后,我看到了一个新的异常:java.lang.IllegalStateException: Expected 1 but got 0 partitions。现在我想知道这是否真的是原始异常“未找到记录”的根本原因。
有什么想法可以帮助解决这里的随机故障吗?我将不胜感激任何有关如何排除故障的建议。
spring-kafka 和 spring-kafka-test v2.6.4。
编辑:添加newConsumer以供参考。
我们的设置示例:
@SpringBootTest
@RunWith(SpringRunner.class)
@DirtiesContext
@EmbeddedKafka(
topics = { "topic1","topic2" },
partitions = 1,
brokerProperties = {"listeners=PLAINTEXT://localhost:9099", "port=9099"})
public class IntegrationTest {
@Autowired
private EmbeddedKafkaBroker embeddedKafkaBroker;
@Autowired
private KafkaListenerEndpointRegistry kafkaListenerEndpointRegistry;
@Test
public void testExample() {
try (Consumer<String, String> consumer = newConsumer()) { …Run Code Online (Sandbox Code Playgroud) 在查找对象的查询时,我得到的是“空”对象(非null,但未填充)。但是,在调试器中,我可以在对象描述中看到该对象的数据(请参见下文)。我还使用Realm Browser验证了数据是否存在。我尝试了不同的查找查询,使用过滤条件进行查询,对插入/查询使用相同的Realm对象,对插入/查询使用不同的Realm对象,刷新了Realm等。
如果我在RealmObject中记录字段,则会看到正确的数据打印出来。但是,我正在尝试根据https://realm.io/news/using-realm-with-rxjava/将这些模型转换为RxJava中使用的其他模型。
这是重现问题的一些示例代码。下面是在verifyRealm.close()处断开时的屏幕截图。
RealmTester realmTester1 = new RealmTester();
realmTester1.setFirstName("Tester1");
realmTester1.setLastName("ABC");
RealmTester realmTester2 = new RealmTester();
realmTester2.setFirstName("Tester2");
realmTester2.setLastName("XYZ");
Realm insertRealm = Realm.getDefaultInstance();
insertRealm.refresh();
insertRealm.beginTransaction();
insertRealm.copyToRealm(realmTester1);
insertRealm.copyToRealm(realmTester2);
insertRealm.commitTransaction();
insertRealm.close();
Realm verifyRealm = Realm.getDefaultInstance();
RealmResults<RealmTester> verifyTesters = verifyRealm.where(RealmTester.class).findAll();
verifyRealm.close();
Run Code Online (Sandbox Code Playgroud)
我在以下位置有调试器的屏幕截图:http : //i.stack.imgur.com/1UdRr.png
我正在使用v0.82.1。关于为什么这里的模型没有填充的任何想法?
我们最近在Android w/v10.0.1上实施了Firebase远程配置.一切都很棒,直到我们把它交给测试,2/5设备没有拉出云配置值.我们发现这两台设备都在运行Google Play Services v9.6.83.将我们的应用程序移回Firebase v9.6.0后,远程配置在5/5设备上正确同步.
我知道我们可以查询Google Play服务更新是否可用并指示用户更新,但这显然不太理想.我们是否在使用较旧版本的Firebase SDK与较新版本的Firebase SDK之间做出选择,以最大限度地减少Google Play服务的更新摩擦,以及获取最新的修补程序和功能?我可能错过了一些配置来支持向后兼容性吗?
android firebase google-play-services firebase-remote-config