万字长文详述ClickHouse在京喜达实时数据的探索与实践

在引入ClickHouse过程中经历各种困难,耗费大量精力去探索并一一解决,在这里记录一下希望能够给没有接触过ClickHouse的同学提供一些方向上的指引避免多走弯路,如果文中有错误也希望多包含给出指点,欢迎大家一起讨论ClickHouse相关的话题。本文偏长但全是干货,请预留40~60分钟进行阅读。

jvm中类和对象定义存储基础知识

在Java虚拟机中,类和对象是程序的基本组成单元。类定义了一组对象的共性特征和行为,是Java程序中最基本的代码单元。而对象则是具体的实例,有自己独特的状态和行为。在JVM中,类和对象都需要进行存储,因此了解类和对象的存储基础知识对于Java程序员来说是非常重要的。

万物云原生下的服务进化

在万物云原生下的环境下,Java的市场份额也因耗资源、启动慢等缺点,导致在云原生环境里被放大而降低,通过这篇文章,读者可以更好地了解如何在云原生环境下通过升级相关版本和使用GraalVM打出原生镜像到方式,优化Java应用的性能和资源利用率,使Java应用更好地适应云原生环境。

【RocketMQ】【源码】主从模式下的消费进度管理

在[【RocketMQ】消息的拉取](https://www.cnblogs.com/shanml/p/16513229.html)一文中可知,消费者在启动的时候,会创建消息拉取API对象`PullAPIWrapper`,调用pullKernelImpl方法向Broker发送拉取消息的请求,那么在主

【RocketMQ】消息的拉取总结

在上一讲中,介绍了消息的存储,生产者向Broker发送消息之后,数据会写入到CommitLog中,这一讲,就来看一下消费者是如何从Broker拉取消息的。 RocketMQ消息的消费以组为单位,有两种消费模式: 广播模式:同一个消息队列可以分配给组内的每个消费者,每条消息可以被组内的消费者进行消费。

Linux下rz命令上传文件失败处理

在Linux服务器上使用rz命令上传文件时,有时候会遇到文件上传失败,此时会在当前目录下生成一堆大小为0的乱码文件,如下图所示: 这些文件有时候rm命令也无法删除,下面提供两种通过find命令删除的方法。 方法一 find . -maxdapth 1 -size 0 | xargs rm -rf 方

微信公众号消息加解密

在微信公众号的使用过程中,为了提高信息传输的安全性,可以在服务器配置中将消息加解密模式指定为安全模式。 启用安全模式后,公众号主动调用API的情况并不会受影响,只有被动回复用户的消息时才需要对消息进行加解密。 官方提供了5种开发语言的示例代码,参照官方给的C++示例代码,本文给出go语言的解密实现:

go多版本管理

在日常开发工作过程中,很多时候我们都需要在自己的机器上安装多个go版本,像是go1.16引入的embed,go1.18引入了泛型;又或是自己本地使用的是最新版,但公司的项目中使用的go1.14、go1.13甚至是更早的版本。 那么有没有既不影响我们自己的本地环境,又能兼顾历史项目的办法呢?答案当然是

Hyperledger Fabric系统链码介绍

在Hyperledger Fabric中,LSCC(Lifecycle System Chaincode)、CSCC(Chaincode System Chaincode)、QSCC(Query System Chaincode)、ESCC(Endorsement System Chaincode)

如何优雅地退出程序

在Linux系统中执行操作时,进程可以通过发送和接收信号与其他进程进行通信。信号是用于通知进程发生特定事件或请求进程采取特定动作的软件中断。 以下是Linux系统中常见的一些信号及其含义: 1. **SIGINT (2)**:中断信号,通常由终端用户按下`Ctrl + C`发送给前台进程。该信号用于

在Protocol Buffers中导入当前目录中的.proto文件

在protobuf中导入当前目录中的`.proto`文件时,可以使用相对路径。相对路径是相对于当前`.proto`文件所在的目录来引用其他`.proto`文件。 假设有以下目录结构: ``` my_project/ |-- proto/ | |-- person.proto |-- main.pro

Protobuf中如何指定json tag

在 Protocol Buffers (protobuf) 中,可以使用特定的选项来指定生成的 JSON 标签。通过在消息定义中使用 `[(json_name)]` 选项,可以控制生成的 JSON 字段名称。这样可以确保 Protocol Buffers 和 JSON 之间的互操作性。 下面是一个示

如何通过gRPC传输文件

在gRPC中,可以通过将文件分割成多个小块,然后使用流式RPC将这些小块发送到服务器来传输文件。以下是一个简单的示例,展示了如何在gRPC中实现文件传输。 首先,我们需要定义一个服务来处理文件传输。在`.proto`文件中,我们可以定义一个`UploadFile`服务,它接收一个流式的`Chunk`

gRPC with JWT

在 gRPC 中使用 JWT(JSON Web Tokens)进行身份验证是一种常见的做法,它可以帮助你确保请求方的身份和权限。下面是一种使用 gRPC 和 JWT 进行身份验证的步骤: 1. **生成和签发 JWT:** 在用户登录成功后,你需要生成一个 JWT 并将其签发给用户。JWT 中可以包

每日一库:lumberjack -- 日志轮换和管理

在开发应用程序时,记录日志是一项关键的任务,以便在应用程序运行时追踪问题、监视性能和保留审计记录。Go 语言提供了灵活且强大的日志记录功能,可以通过多种方式配置和使用。其中一个常用的日志记录库是 github.com/natefinch/lumberjack,它提供了一个方便的方式来处理日志文件的轮

2023-04-26-微信安全模式下消息解析

在微信公众号的使用过程中,为了提高信息传输的安全性,可以在服务器配置中将消息加解密模式指定为安全模式。 启用安全模式后,公众号主动调用API的情况并不会受影响,只有被动回复用户的消息时才需要对消息进行加解密。 官方提供了5种开发语言的示例代码,参照官方给的C++示例代码,本文给出go语言的解密实现:

MySQL 列操作记录

在 MySQL 中,你可以使用多种命令和语句来执行列操作,包括添加、修改、删除列等。以下是一些与列操作相关的常用 MySQL 命令和语句: 1. 添加列: 添加新列到表格中:ALTER TABLE table_name ADD COLUMN column_name datatype; 2. 修改列:

Spring Boot 3.1中如何整合Spring Security和Keycloak

在今年2月14日的时候,Keycloak 团队宣布他们正在弃用大多数 Keycloak 适配器。其中包括Spring Security和Spring Boot的适配器,这意味着今后Keycloak团队将不再提供针对Spring Security和Spring Boot的集成方案。但是,如此强大的Ke

再见RestTemplate,Spring 6.1新特性:RestClient 了解一下!

在最近发布的Spring 6.1 M2版本中,推出了一个全新的同步HTTP客户端:`RestClient`。用一句话来让Spring开发者认识`RestClient`的话:像`WebClient`一样具备流畅API的`RestTemplate`。所以,`RestClient`的使命就是淘汰已经有14

前瞻|Java 21 新特性 String Templates(字符串模版)

在日常写Java的时候,对于字符串的操作是非常普遍的,其中最常见的就是对字符串的组织。也因为这个操作非常普遍,所以诞生了很多方案,总下来大概有这么几种: - 使用`+`拼接 - 使用`StringBuffer`和`SpringBuilder` - `String::format` and `Stri