Skip to main content

Gnome桌面环境启用Wayland

· 5 min read
orange
programmer on jvm platform

默认情况下, Gnome桌面环境使用的协议是X11协议.
WaylandX11的替代品, 可以提供更好的性能和体验.(绘图在Client侧而不是像X11一样由XServer负责).
下面将介绍如何启用Wayland协议.

kopia接入火山云TOS报错Access Denied问题的排查及修复

· 2 min read
orange
programmer on jvm platform

kopia是一个备份工具, 支持多种存储后端, 包括对象存储, 文件系统等, 通过kopia可以将数据备份到不同的存储后端, 也可以从不同的存储后端恢复数据. 火山云TOS是火山云提供的对象存储服务, 支持通过S3协议访问. 最近在使用kopia接入火山云TOS时, 遇到了一个问题, 问题的现象是调用kopia提供的s3_storage接入火山云TOS时, 报错 Access Denied.

unable to determine if bucket "xxxxx" exists: Access Denied.

以下是该问题的原因及解决方案总结.

升级框架后发现Feign调用失败时间格式化问题的排查和解决

· 7 min read
orange
programmer on jvm platform

升级内部框架版本后,发现Feign调用失败,报错如下:

Failed to convert value of type 'java.lang.String' to required type 'java.time.ZonedDateTime'; 
nested exception is org.springframework.core.convert.ConversionFailedException:
Failed to convert from type [java.lang.String] to type [@org.springframework.web.bind.annotation.RequestParam @org.springframework.format.annotation.DateTimeFormat java.time.ZonedDateTime] for value '2023/12/18 02:57';
nested exception is java.lang.IllegalArgumentException: Parse attempt failed for value [2023/12/18 02:57]

客户端伪代码如下:

public interface FeignClient {

@GetMapping("/")
List<PlatformStandardOrderDto> test(
@RequestParam ZonedDateTime startTime,
@RequestParam ZonedDateTime endTime
);

}

这个问题的现象是Feign调用时参数中的ZonedDatetime类型的时间格式化的结果服务端无法解析

通过关闭OpenEntityManagerInViewInterceptor确保当下游服务响应缓慢时不会导致数据库连接被占用完

· 3 min read
orange
programmer on jvm platform

OpenEntityManagerInViewInterceptorspring中的一个拦截器,它的作用是在整个请求上下文复用同一个EntityManager ,从而避免在一个请求中多次创建一个EntityManager, 从而提高性能.
但是如果在一个请求的处理代码中请求了下游服务,而下游服务响应缓慢,那么在下游服务响应之前,EntityManager 会一直被占用,直到整个请求处理完成,这样会导致当服务并发请求量较大时,数据库连接被占用完.
为了避免这种情况,可以通过关闭OpenEntityManagerInViewInterceptor来确保当下游服务响应缓慢时不会导致数据库连接被占用完. 下面将介绍如何关闭OpenEntityManagerInViewInterceptor.

通过创建rsa格式的私钥以及服务端启用rsa认证解决jsch连接ssh失败的问题

· 3 min read
orange
programmer on jvm platform

服务建立ssh连接失败, 问题定位为jsch不支持openssh格式的私钥.
OpenSSH 7.8及之后的版本, ssh-keygen命令默认生成的私钥格式为openssh.
该格式的头部为-----BEGIN OPENSSH PRIVATE KEY-----.

在将私钥转换为rsa格式后, 发现服务端还需要启用rsa认证, 在启用rsa认证后问题解决.

下面将详细介绍如何生成rsa格式的私钥以及服务端启用rsa认证.

使用kind创建一个k8s集群

· 5 min read
orange
programmer on jvm platform

kind是一个用于创建k8s集群的工具, 它使用docker容器作为节点, 可以快速创建一个k8s集群, 用于测试或者开发.
官方提供了相应的文档Ingress, 在使用该文档的时候出现了一些问题.
本文基于官方文档并作出了一定的修改介绍如何使用kind创建一个k8s集群, 并在集群中部署kong-ingress.最后部署一个测试应用并通过 kong-ingress访问该应用.