当我们连接到 Kafka 集群/kafka 时,在 java 客户端中我们定义某些属性 -
示例Producer 属性
Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("acks", "all");
props.put("retries", 0);
props.put("batch.size", 16384);
props.put("linger.ms", 1);
props.put("buffer.memory", 33554432);
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
Run Code Online (Sandbox Code Playgroud)
消费者属性示例-
Properties props = new Properties();
props.setProperty("bootstrap.servers", "localhost:9092");
props.setProperty("group.id", "test");
props.setProperty("enable.auto.commit", "true");
props.setProperty("auto.commit.interval.ms", "1000");
props.setProperty("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
props.setProperty("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
Run Code Online (Sandbox Code Playgroud)
同样,当连接到使用 SSL-Auth 保护的 Kafka 集群时,是否应在此处提及与 SSL-Auth 相关的任何属性(如密钥库和信任库路径等)。
有人可以详细说明并解释 Java 客户端如何连接到安全的 Kafka 集群吗?
ssl-certificate apache-kafka kafka-consumer-api kafka-producer-api apache-kafka-security
当redis通过spring boot()作为缓存技术时<artifactId>spring-boot-starter-data-redis</artifactId>
,我看到文件中很少有像TTL这样的属性可以设置application.properties
。前任:
spring.cache.cache-names=cache1,cache2
spring.cache.redis.time-to-live=600000
Run Code Online (Sandbox Code Playgroud)
以及附录 A 中的更多片段。常见应用程序属性
spring.redis.database=0 # Database index used by the connection factory.
spring.redis.url= # Connection URL. Overrides host, port, and password. User is ignored. Example: redis://user:password@example.com:6379
spring.redis.host=localhost # Redis server host.
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚如何设置缓存逐出策略,例如 - 最不常用或最近最后使用等。
我必须如何以及在哪里提供此配置详细信息?
场景:一个 K8S Pod 具有多个容器,并且为每个容器配置活性/就绪探针。现在,如果活性探测在某些容器上成功,但在少数容器上失败,k8s 会做什么。
Spring Data JPA 或 Hibernate 默认情况下自动提交设置为 false。这听起来很合理,因为这些框架与实体一起工作,并且对实体的更新可能涉及通过多个 SQL 查询对多个表进行更新。因此,通过将自动提交设置为 false 并显式控制事务,这些框架可确保对实体的更改是原子的且一致的。
但现在 Hikari 是 spring data jpa 的默认连接池提供程序,在查看应用程序日志时,我看到 hikari 将连接池的自动提交设置为 true。
2021-10-24 11:30:07.815 DEBUG [restartedMain] com.zaxxer.hikari.HikariConfig||HikariConfig.logConfiguration:1135: autoCommit................................true
Run Code Online (Sandbox Code Playgroud)
关于为什么这样设置以及这是否会影响事务的任何解释(我不认为它会影响事务,因为每个事务可能会再次将自动提交设置为 false,从而接管何时提交事务。)
编辑 - 遵循 @ken-chan 的回答和讨论。
对于使用 spring data jpa 和 @Transactional(100% Hiberante)的项目,将 hikaris 连接池设置更改为auto-commit=false
应该会带来性能优势。请参阅答案和后续讨论以了解更多详细信息。
正在使用的 liquibase 版本 - org.liquibase:liquibase-core:3.8.2。(不是专业版)
Liquibase 文档(1和2)如下所述splitStatements
(默认为 true)
设置为 false 时,不会在 ; 和 GO 上使用 Liquibase split 语句。如果未设置则默认为 true
和
当设置为 false 时,删除 ; 和 GO 上的 Liquibase split 语句。默认值为:true。
我发现的另一个有用的软件帖子 - In Liquibase is it OK to have an empty line on splitstatements?
;
我理解 - 当 splitStatements 为 true 时,liquibase 会拆分和上的语句GO
splitStatements
增加了什么好处 - 即,如果 SQL 语句是否在(结束分隔符)上分割;
,会有什么区别 - 即,如果语句在单个查询或多个查询中执行 - 数据库不会处理“ ;” 无论如何基于的东西。这似乎是必须理解的。——有人可以举个例子吗?splitStatements:false
. 禁用 splitStatements …我听说 AOP 可用于分离安全、事务和日志记录等跨领域方面。
所以,我想了解 Spring Security 是否在内部使用 AOP?
该方法org.hamcrest.CoreMatchers.is()
已弃用。
该文档说,使用-org.hamcrest.CoreMatchers.isA()
代替。
但isA()
似乎一起服务于不同的情况。
好的。什么,来到我的问题。早些时候我使用is()
如下
// might be i should not be using it like this, but it works.
assertThat(actualRes, is(true));
Run Code Online (Sandbox Code Playgroud)
现在我不能使用相同的isA()
. 它引发编译错误不适用于参数(布尔值)
我明白是isA()
做什么的。我想知道的是,鉴于is()
已弃用,我应该使用什么来替代assertThat(actualRes, is(true))
?
在多容器 Kubernetes pod 中,容器是同一个 cgroup(连同 pod)的一部分还是为每个容器创建一个单独的 cgroup。
我知道 k8s 资源的层次结构顺序。简单来说,
在这个问题中我想强调的是,为什么我们有replicaset
. 为什么不deployment
直接处理或负责保持所需数量的 Pod 运行。但deployment
反过来又依赖replicset
于此。
如果 k8s 是这样设计的,那么肯定会有一些好处replicaset
。这就是我想要深入探索/理解的。
我看到 postgres 提供了一些可以从 psql (shell?)使用的方便的元命令。我尝试过使用 DBeaver GUI 控制台,但它们不起作用。
有没有办法在 DBeaver 中使用这些元命令,例如\d
(显示所有数据库)、\dt
(显示所有表)等。
我使用的是 postgres db 13.5。
kubernetes ×3
spring ×2
spring-boot ×2
aop ×1
apache-kafka ×1
cgroups ×1
dbeaver ×1
docker ×1
hamcrest ×1
hibernate ×1
hikaricp ×1
java ×1
junit ×1
junit4 ×1
liquibase ×1
postgresql ×1
redis ×1
spring-aop ×1