小编so-*_*ude的帖子

为什么hystrix或任何其他用于微服务的断路器?

我正在开发带有弹簧靴和弹簧云的微服务.我开始了解hystrix和断路器模式.我知道断路器用于响应备用响应,以防下游微服务器出错,我依赖它来获取数据.我的问题是,如果我没有提供任何有意义的替代响应,为什么我需要一个断路器呢?

java spring spring-boot hystrix microservices

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

在Docker中使用构建时参数的安全方法

我有一个构建时参数,我想用它来构建我的Docker文件; 由于该参数本质上是机密的(私人仓库的github密钥),我不希望它最终出现在码头图像中.这个引用来自关于构建时参数的官方docker文档.

警告:建议不要使用构建时变量来传递github密钥,用户凭据等秘密.使用docker history命令可以使映像的任何用户都可以看到构建时变量值.

有人知道推荐的方法是什么?

docker dockerfile

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

Oracle 变更数据捕获的开源工具 - GoldenGate 的替代品

寻找 GoldenGate 的开源替代方案,将源 Oracle 中的所有 DML 操作流式传输到压缩的 kafka 主题。我的雇主承认拉里可能不需要另一个岛。因此,许可 Oracle GoldenGate 不是一种选择。

到目前为止查看了https://gitter.im/linkedin/brooklinhttps://github.com/linkedin/databushttps://github.com/debezium/debezium 。我找不到任何说明如何使用这些进行 Oracle CDC 的文档。任何指针将不胜感激。我不是在询问任何意见或建议,我只是在寻找 GoldenGate 的可行替代方案。

编辑

我从 Debezium gitter /slack 频道https://debezium.io/docs/connectors/oracle/得到这个。但这仍然需要 GoldenGate 许可证。

oracle change-data-capture apache-kafka

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

Kafka 流 - KSQL - 拆分消息并发布到另一个主题

有没有办法使用 KSQL 将一条消息拆分为多条消息并发布到新主题。需要明确的是,我并不是在寻找基于 Java 的侦听器并将其迭代/流式传输到新主题;而是在寻找基于 Java 的侦听器并将其迭代/流式传输到新主题。相反,我正在寻找一个可以为我做到这一点的 KSQL。

例如:

比方说,我需要将invoice主题中的消息拆分为item_inventory_delta消息

发票主题

:销售支票号码

消息示例:

{
    "total": 12.33,
    "salecounter": 1,
    "items": [
        {
            "itemId": 123,
            "quantity": 1
        },
        {
            "itemId": 345,
            "quantity": 5
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

item_inventory_delta主题

key : saleschecknumber_itemID

消息示例

1.

{
    "itemId": 123,
    "quantity": 1
}
Run Code Online (Sandbox Code Playgroud)

2.

{
    "itemId": 345,
    "quantity": 5
}
Run Code Online (Sandbox Code Playgroud)

apache-kafka ksqldb

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

如何使用Spring Boot将JSON映射到对象

您好,我想知道在使用Spring Boot时如何将json消息映射到java中的对象。

假设我正在像

 {
    "customerId": 2,
    "firstName": "Jan",
    "lastName": "Nowak",
    "town": "Katowice"
  }
Run Code Online (Sandbox Code Playgroud)

并且我想在我的java程序中使其成为实体:出于任何原因,我都不 希望字段名匹配

public class Customer {


    //Something like @Map("customerId")
    private long OMG;
    //Something like @Map("firstName")
    private String WTF;
    //Something like @Map("lastName")
    private String LOL;
    //Something like @Map("town")
    private String YOLO;
Run Code Online (Sandbox Code Playgroud)

我找不到应该使用的注释,而不是仅使用spring boot转换器内置的jackson?

java spring json jackson spring-boot

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

Spring Boot Actuator:如何在自定义HealthIndicator中获取指标正常运行时间?

我想根据应用程序正常运行时间来自定义HealthIndicator。

@Component
public class HealthActuator implements HealthIndicator {

    private final MetricsEndpoint metricsEndpoint;

    @Autowired
    public HealthActuator(MetricsEndpoint metricsEndpoint) {
        this.metricsEndpoint = metricsEndpoint;
    }

    @Override
    public Health health() {
        long uptime = (Long) metricsEndpoint.invoke().get("uptime");
        // logic with uptime
        return Health.up().build();
    }

}
Run Code Online (Sandbox Code Playgroud)

但是有一个错误:a circular dependency between 2 beans in the application context

我可以通过对端点/ actuator / health进行休息呼叫来获得正常运行时间指标。

但是也许可以通过编程来实现吗?

PS日志堆栈跟踪:

11-01 14:34:09 WARN org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'healthActuator' defined in …
Run Code Online (Sandbox Code Playgroud)

java spring spring-boot spring-boot-actuator

3
推荐指数
2
解决办法
2819
查看次数

限制或限制 Kotlin 协程数量

我正在尝试从我的协程中访问 http 服务。我可能需要点击该服务一百万次。我更喜欢并行执行,因为它们是彼此独立的,同时我不想 DOS 该服务。我想限制我的协程(某种背压)

我知道我可以将请求批量处理到可接受的并发请求数。但是,我认为这太样板了。是否有任何 http 库以惯用的方式处理这个问题

rest http kotlin kotlinx.coroutines

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

Netty 或任何其他非阻塞 IO 服务器上的 Logback MDC

Logback MDC(映射诊断上下文)正在利用 threadLocal(据我所知),以便可以在同一线程执行的所有日志语句上访问它。

我的问题是,logback MDC 是否可以在非阻塞 IO 服务器端运行时(如 Netty 或 Undertow)中工作,因为它曾经在例如 tomcat 中工作?如果是,它是如何工作的,因为 Netty/Undertow 不像 tomcat 那样遵循每个请求一个线程。

我正在尝试在 MDC 中放置一个 traceID,以便我可以在 Splunk/ELK 等集中式日志记录系统中跨多个微服务/管道侦听器的一个事务跟踪中跟踪我的所有日​​志

logback mdc netty spring-boot distributed-tracing

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

REST API,何时使用@PathParam,@ QueryParam,@ RequestBody和/或@RequestHeader

如果在何时/何时不使用上述将信息传递给REST调用的方法,我一直试图找到答案.

我一直在寻找各地,但每个帖子只讨论两种列出的方法之间的差异,或3,而不是所有4.

java rest spring restful-architecture spring-boot

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

Rust warp+sqlx 服务:将 DBPool 从 main 传递到处理程序的惯用方式

一个 Rust 新手,尝试通过结合来编写一个 Web 服务

https://github.com/seanmonstar/warp/blob/master/examples/todos.rshttps://github.com/launchbadge/sqlx/blob/master/examples/postgres/todos/src/main.rs

以下代码处于运行状态。我的问题是,我是否需要为每个处理程序克隆 dbpool?Rust 中的惯用方式是什么(我来自 Java/Kotlin->Go 背景,FWIW)

#![deny(warnings)]

use sqlx::postgres::{PgPoolOptions};
use std::env;
use warp::Filter;

#[tokio::main]
async fn main() -> Result<(), sqlx::Error> {
    let pool = PgPoolOptions::new()
        .max_connections(5)
        .connect("postgres://:@localhost/todo_db").await?;
    if env::var_os("RUST_LOG").is_none() {
        env::set_var("RUST_LOG", "todos=info");
    }
    pretty_env_logger::init();


    let api = filters::todos(pool);

    let routes = api.with(warp::log("todos"));
    // Start up the server...
    warp::serve(routes).run(([127, 0, 0, 1], 3030)).await;
    Ok(())
}

mod filters {
    use sqlx::{Pool, Postgres};
    use super::handlers;
    use super::models::{ListOptions, Todo};
    use warp::Filter;

    pub fn todos(
        db: Pool<Postgres>,
    ) …
Run Code Online (Sandbox Code Playgroud)

rust rust-warp rust-sqlx

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