小编Swo*_*ish的帖子

迁移到 Kubernetes,还需要 Spring Cloud Eureka/Zuul?

我们正在工业化我们的第一个微服务应用程序,该应用程序主要使用 Spring Boot 2 构建。我们目前使用 Spring Cloud Zuul 进行路由,使用 Eureka 进行服务发现。

我们希望在 AWS 上使用 Kubernetes(使用 EKS)。我的问题是运行 Eureka 和 Zuul 进行服务发现/路由仍然有价值,或者它们可以被 Kubernetes 取代吗?

spring-boot spring-cloud

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

将 Instant、LocalDateTime 和 ZonedDateTime 与 Spring Boot 和 ElasticSearch 结合使用

我正在使用 Spring Boot 2.1.4 和Spring Data Jest以及 ElasticSearch。我最初使用 Java Date 来获取一些带有以下注释的属性:

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern ="yyyy-MM-dd'T'HH:mm:ss.SSSZZ")
Run Code Online (Sandbox Code Playgroud)

这将保存到 ElasticSearch 中,如下所示:

"creationDate": "2019-04-10T14:49:05.672+0000"
Run Code Online (Sandbox Code Playgroud)

现在,我正在从 Date 迁移到 LocalDateTime 和 ZonedDateTime。当数据现在保存到 ElasticSearch 时,我会保存以下属性:

"creationDate": {
    "dayOfYear": 123,
    "dayOfWeek": "FRIDAY",
    "month": "MAY",
    "dayOfMonth": 3,
    "year": 2019,
    "monthValue": 5,
    "hour": 11,
    "minute": 54,
    "second": 12,
    "nano": 238000000,
    "chronology": {
        "id": "ISO",
        "calendarType": "iso8601"
    }
},
Run Code Online (Sandbox Code Playgroud)

我需要做什么来更改它,以便获得与之前的 LocalDateTime 和 ZonedDateTime 相同的 ElasticSearch 数据格式?

我已经尝试过以下方法:

  1. 自定义对象映射器如下:

    public class CustomEntityMapper implements EntityMapper {
        private final ObjectMapper objectMapper; …
    Run Code Online (Sandbox Code Playgroud)

java jackson elasticsearch spring-data spring-boot

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

配置 Spring Kafka 以使用 DeadLetterPublishingRecoverer

我正在使用 Spring Boot 2.1.3 并尝试配置 SpringSeekToCurrentErrorHandlerDeadLetterPublishingRecoverer错误记录发送到不同的主题。创建新的 DLT 队列并插入一条记录,但消息正文为空。我期望消息正文中填充原始 JSON 正文以供将来分析。

这是我到目前为止的配置。知道我哪里出错了吗?不确定它是否与使用kafkaTemplate<Object, Object>消息生产者使用的位置有关kafkaTemplate<String, Message>

@Configuration
@EnableKafka

public class ListenerConfig {

    @Value("${kafka.bootstrap-servers}")
    private String bootstrapServers;  

    @Autowired
    private KafkaTemplate<Object, Object> kafkaTemplate;

    @Bean
    public Map<String, Object> consumerConfigs() {
        Map<String, Object> props = new HashMap<>();
        props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers);
        props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, ErrorHandlingDeserializer2.class);
        props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, ErrorHandlingDeserializer2.class);
        props.put(ErrorHandlingDeserializer2.KEY_DESERIALIZER_CLASS, JsonDeserializer.class);
        props.put(ErrorHandlingDeserializer2.VALUE_DESERIALIZER_CLASS, JsonDeserializer.class.getName());
        props.put(JsonDeserializer.KEY_DEFAULT_TYPE, "java.lang.String");
        props.put(JsonDeserializer.VALUE_DEFAULT_TYPE, "com.test.kafka.Message");
        props.put(JsonDeserializer.TRUSTED_PACKAGES, "com.test.kafka");
        props.put(ConsumerConfig.GROUP_ID_CONFIG, "json");
        props.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest");
        return props;
    }

    @Bean
    public ConsumerFactory<String, Message> consumerFactory() {
        return new DefaultKafkaConsumerFactory<>( …
Run Code Online (Sandbox Code Playgroud)

spring-kafka

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

Spring集成或Spring Cloud数据流

我正在将我的一些应用程序移至微服务。一个示例服务是RSS搜寻器,它使用Spring Integration将项目发送到Kafka。我还看到有Spring Cloud Data Flow,它在后台使用了Spring Integration和Spring Batch。

如果我使用Spring Cloud Data Flow,我会在每个微服务中使用它还是将其用作微服务之间的编排?

我正在尝试了解引入Spring Cloud Data Flow的好处,而不是使用Spring Integration保持微服务尽可能轻便。

任何意见,将不胜感激。

spring-integration microservices spring-cloud-dataflow

5
推荐指数
2
解决办法
2491
查看次数

通知微服务API或队列

我是微服务架构的新手,想要创建一个集中式通知微服务来向用户发送电子邮件/短信。

我的第一个选择是创建一个通知 Kafka 队列,所有其他微服务都可以向其中发送通知。然后,通知微服务将侦听该队列并相应地发送消息。如果通知服务重新启动或关闭,我们不会丢失任何消息,因为消息将存储在队列中。

我的第二个选择是在通知微服务上添加通知消息 API。这将使所有其他微服务变得更容易,因为它们只需调用 API,而不需要与队列集成。然后,API 会在内部将消息发送到通知 Kafka 队列并发送消息。这里唯一的问题是,如果 API 不可用或出现错误,我们将丢失消息。

关于处理这个问题的最佳方法有什么建议吗?

microservices

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

使用 Google Cloud Functions 的 REST API

我有一个关于在 Python 中使用 Google Cloud Functions 创建简单 REST API 的一般查询。最佳实践是为每个端点创建一个 HTTP 函数还是创建一个处理所有端点的函数?

还可以为该函数使用自定义 URL,例如 /api/v1/pets/

google-cloud-functions

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

Spring授权服务器和用户注册

我正在考虑使用新的 Spring 授权服务器。我已经让示例正常工作,并了解了如何验证测试用户,但对应该在哪里添加用户注册功能有疑问。

是否应该将其添加到授权服务器或其他单独的服务(例如用户配置文件)中?如果是后者,我想我必须将身份验证服务器连接到用户数据库。

理想情况下,我希望用户单击登录按钮,他们将被带到身份验证服务器上的登录页面。如果他们没有帐户,他们会创建一个帐户,然后使用令牌将他们带回应用程序。

我正在查看openid connect 发起用户注册规范,但认为它尚未实现。

spring-security

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