小编Thi*_*iru的帖子

会话事务消费者或生产者中的消息代理异常处理

我想在我的Spring Boot微服务中使用SAGA模式.例如,按客户的顺序,当订单创建时,生成的事件OrderCreatedEvent,然后在客户微服务中,监听器上OrderCreatedEvent更新客户信用并生成CreditUpdateEvent和....

我使用会话事务JmsTemplate来生成事件.在javadoc中JmsTemplate 说JMS事务在主事务之后提交:

这具有本地JMS事务与主事务(可能是本机JDBC事务)一起管理的效果,JMS事务在主事务之后立即提交.

现在我的问题是如何处理以下场景:

提交的主事务(例如,订单已提交已提交)和系统无法提交JMS事务(出于任何原因).

我想使用SAGA而不是两阶段提交,但我认为只是SAGA将问题从订单和客户服务转移到订单服务和JMS提供商.

java jms saga spring-boot microservices

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

Jenkins Git fetch 引用旧提交

我正在为 Angular 6 应用程序创建 Jenkins CI 流程。我创建了一个多配置项目。并在配置中选择以下值:

源代码管理:
Git:Repo_URL
要构建的分支:*/master
存储库浏览器:自动

构建触发器:
Gerrit 事件:已选中

Gerrit 触发器:
选择服务器:gerrit.*.com
触发器:已创建补丁集
添加的命令包含正则表达式:[Rr][Ee][Vv][Ee][Rr][Ii][Ff][Yy]

动态触发器配置:
Gerrit 项目:
类型:Plair 模式:projName
分支:
类型:Plair 模式:master

构建环境:
将 Node 和 npm bin/ 文件夹提供到 PATH:NodeJS 路径
npmrc 文件:系统默认值

构建:
命令:
echo $PATH
node --version
npm --version
npm install -g @angular/cli
ng build

当我提交代码或重新验证时,构建会被触发,但它会获取先前的提交,而不是触发构建的最新提交。

以下是构建日志:

10:55:56 Cloning the remote Git repository      
10:55:56 Cloning repository ssh://rmp-bot@***       
10:55:56  > git init /var/lib/jenkins/workspace/application_name/Patchset-Sonar-CI-master # timeout=10          
10:55:56 Fetching upstream changes from ssh://rmp-bot@***             
10:55:56  > git …
Run Code Online (Sandbox Code Playgroud)

git jenkins jenkins-plugins jenkins-pipeline

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

用spring来管理Kafka主题

我们计划在我们的应用程序中使用Kafka排队.我在RabbitMQ和Spring方面有一些经验.

使用RabbitMQ和Spring,我们曾经在启动spring服务时管理队列创建.

有了Kafka,我不确定什么是创建主题的最佳方式?有没有办法用Spring管理主题.

或者,我们应该编写一个单独的脚本来帮助创建主题吗?维护一个单独的脚本来创建主题对我来说似乎有点奇怪.

任何建议将不胜感激.

java rabbitmq apache-kafka spring-boot spring-kafka

4
推荐指数
2
解决办法
2921
查看次数

在Kafka流中处理异常

曾经经历过多个帖子,但是其中大多数都是相关的处理错误消息,与处理它们时的异常处理无关。

我想知道如何处理流应用程序收到的消息,并且在处理消息时出现异常?该异常可能是由于多种原因造成的,例如网络故障,RuntimeException等,

  • 有人可以建议正确的做法吗?我应该使用 setUncaughtExceptionHandler吗?或者,还有更好的方法?
  • 如何处理重试?

提前致谢!!

java apache-kafka-streams spring-kafka

4
推荐指数
2
解决办法
4243
查看次数

在 IntelliJ 中在 AB 的包 A 内创建类

我在 IntelliJ IDE 中有一个 Maven 项目。我创建了一个名为 name 的包event.handlers。之后我在这个包中创建了多个类。里面没有类,event一切都在里面event.handlers。现在我想在 package 中创建一个 java 类event

IDE有什么办法可以做到吗?目前,我正在event我的代码存储库中的文件夹中手动创建 java 文件。

packages intellij-idea

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

Kafka-在Consumer中反序列化对象

我们正在考虑在我们的消息传递中使用Kafka,并且我们的应用程序是使用Spring开发的。因此,我们计划使用spring-kafka。

生产者将消息作为HashMap对象放入队列。我们有JSON序列化程序,并且我们假设地图将被序列化并放入队列中。这是生产者配置。

spring:
  kafka:
    bootstrap-servers: localhost:9092
    producer:
        key-serializer: org.springframework.kafka.support.serializer.JsonSerializer
        value-serializer: org.springframework.kafka.support.serializer.JsonSerializer
Run Code Online (Sandbox Code Playgroud)

另一方面,我们有一个侦听器,用于侦听生产者发布消息的相同主题。这是使用者配置:

spring:
   kafka:
       consumer:
            group-id: xyz
            key-deserializer: org.springframework.kafka.support.serializer.JsonDeserializer
            value-deserializer: org.springframework.kafka.support.serializer.JsonDeserializer
Run Code Online (Sandbox Code Playgroud)

我们的监听器方法:

  public void listener(SomeClass abx)
Run Code Online (Sandbox Code Playgroud)

我们预期json将被反序列化,并且将生成“ SomeClass”类型的对象。但是显然,它引发了反序列化异常。

我们看到的文章很少,建议这样做是:

 @Bean
  public ConsumerFactory<String, Car> consumerFactory() {
    return new DefaultKafkaConsumerFactory<>(consumerConfigs(), new StringDeserializer(),
        new JsonDeserializer<>(Car.class));
  }
Run Code Online (Sandbox Code Playgroud)

我们不想编写一些代码来创建反序列化器。有没有我们所缺少的样板东西?任何帮助将不胜感激!!

java apache-kafka spring-kafka

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

在junit中声明UUID

我有一个建立对象并返回它的方法。

该对象作为UUID作为其字段之一。在构建对象时,会生成随机UUID。这是代码:

public MetaData getMetaData(String id) {
  return MetaData.newBuilder().setId(id)
    .setCorrelationId(UUID.randomUUID().toString())
    .setCreatedAt(now(UTC).format(ISO_ZONED_DATE_TIME))
    .build();
}
Run Code Online (Sandbox Code Playgroud)

这是我的测试:

@Test
public void shouldVerifyIfTheMetaDataIsBuild() {

  MetaData metaData = handler.getMetaData("1234");

  assertThat(metaData.getId(), is("1234"));
  assertThat(metaData.getCorrelationId(), isNotNull());
}
Run Code Online (Sandbox Code Playgroud)

我只是在验证是否correlationId不为null。有没有更好的方法来验证UUID

java uuid junit

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