自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (7)
  • 收藏
  • 关注

原创 Loki分布式存储及过期策略实现

在项目启动初期,考虑到 ELK 的资源消耗较重,我们选用了更为轻量的 Loki 作为分布式日志存储方案。Loki 支持使用 filesystem 本地文件系统进行存储,也可对接第三方对象存储服务,如亚马逊 S3、谷歌 GCS 以及阿里云 OSS 等。Loki Memberlist - Ring 采用类似 Gossip 协议的去中心化集群状态管理机制,用以替代 Consul 或 etcd 这类传统的 KV 存储,实现服务发现与组件状态同步。现在配置任意一个节点,另外一个节点都可以访问到数据。

2025-03-18 20:48:21 169

原创 使用Spring AI调用AI模型

Spring AI是Spring推出的用于快速集成AI功能。该项目从著名的Python项目(如LangChain和LlamaIndex)中汲取灵感,经过多个版本迭代,逐渐集成了OpenAI、Google、Amazon、Baidu等大语言模型平台。

2025-03-05 20:46:51 621

原创 Go语言扩展包x/sync使用指南

singleflight 是一个用于防止重复函数调用的机制,确保对于同一个键(key),在同一时间内只有一个函数执行,其他请求会等待该函数执行完成并共享结果。这可以大量减少对比如访问数据库操作次数,减轻数据库压力提高性能。

2025-02-14 21:00:48 843

原创 Go语言sync包使用指南

本文围绕 Go 语言中 sync 包展开,对其各类同步原语的使用方法进行介绍。 sync.Mutex Mutex用于实现互斥锁,用于保护多个 goroutine 并发访问的共享资源。它可以防止数据竞争

2025-02-11 20:38:53 890

原创 Kubernetes 使用自定义资源(CRD)扩展API

K8s CRD 即 Kubernetes CustomResourceDefinition,是 Kubernetes 提供的一种扩展机制,允许用户在 Kubernetes 集群中定义和使用自定义的资源类型。通过定义 CRD,用户可以在 Kubernetes 集群中创建、读取、更新和删除自定义资源对象,就像使用原生的 Pod、Service 等资源一样。本文主要介绍如何使用kubebuilder快速创建自定义资源类型。

2025-01-09 20:59:17 455

原创 K8S Ingress 服务配置步骤说明

K8s Ingress 服务配置步骤说明

2024-12-23 20:46:02 726

原创 基于 kubeadm 安装 Kubernetes 集群的完整步骤

执行完kubeadmin init后,配置kubectl执行环境,根据提示执行命令,将/etc/kubernetes/admin.conf复制到$HOME/.kube/config下。要使k8s 容器间能够相互通信,还需要安装网络插件,Flannel 是 Kubernetes(K8s)中常用的网络插件之一,主要用于提供容器间的网络连接。使用以下内容在指定的config_path路径下创建docker.io/hosts.toml文件,创建后的文件路径为。如果不存在,您可以在默认配置文件中添加以下配置。

2024-12-23 10:11:21 821

原创 MQTT知识要点

MQTT (Message Queuing Telemetry Transport) 是一种轻量级的发布/订阅消息协议,专为低带宽环境M2M而设计。是物联网(IoT)最常用的消息传递协议。

2024-12-09 20:14:20 1188 1

原创 Java部分新特性

Java部分新特性介绍

2024-11-27 20:37:36 1041

原创 Java 垃圾回收机制(GC)概览

Java垃圾收集、堆和运行时编译器默认选择jdk1.9开始,默认使用G1收集器,GC Threads的最大数量受堆大小和可用CPU资源限制初始堆大小为物理内存的1/64最大堆大小为物理内存的1/4分层编译器,同时使用C1和C2JVM 垃圾收集器可以为配置优先满足两个目标之一:最大暂停时间(maximum pause-time) 和应用程序吞吐量(application throughput)

2024-11-15 20:02:50 1112

原创 探究Nacos:实例权重变更为何延迟生效

最近在通过Jekins实现无中断发布时,发现调整Nacos注册中心服务实例的权重1 -> 0时,客户端需要等待30s以上才不会调到权重为0的服务。

2024-11-05 16:21:18 753

原创 Go基础知识:切片

切片类型是基于Go数组类型之上的抽象,提供了更强大的功能和便利性。

2024-10-12 20:47:38 1092 2

原创 MYSQL优化知识点

索引合并访问方法检索多个range扫描的行并将其结果合并为一个。索引合并只合并单个表的索引扫描,而不合并跨多个表的扫描。可以使用索引合并的示例。

2024-10-04 09:10:04 1042

原创 go channel的使用

channel是goroutine之间通信的管道,可以将值从一个goroutine发送到channel,另一个goroutine从channel接收到这些值。

2024-09-29 20:56:50 792

原创 Redis常见知识点

Redis字符串存储字节序列,包括文本、序列化对象和二进制数组。默认情况下 单个Redis字符串最大值不能超过512m大多数字符串操作都是 O(1),这意味着它们非常高效。但是,请谨慎使用SUBSTR、GETRANGE和SETRANGE命令,因为它们的复杂度可能为 O(n)。这些随机访问字符串命令在处理大型字符串时可能会导致性能问题。

2024-09-24 20:39:49 1710

原创 etcd入门指南:分布式事务、分布式锁及核心API详解

etcd client v3使用gRPC进行远程过程调用,定义了交互过程中protobuf数据结构。

2024-09-14 20:59:36 1448

原创 Spring WebFlux实践与源码解析

如下来自官网Spring MVC和Spring WebFlux技术栈的区别。可以看到Spring MVC主要是基于Servlet API使用同步阻塞IO架构,每来一个请求都需要启动一个线程进行处理。这种架构对于大量I/O密集型的请求,需要同时启动大量的线程来处理请求,消耗更多的资源。而Spring WebFlux使用的是全流程的异步非阻塞的架构,处理I/O任务不需要阻塞等待,只需少量的线程,就能处理大量的请求,能够极大提升系统吞吐量。

2024-09-11 18:23:32 944

原创 RabbitMQ常用知识点梳理

如上图所示,同一个回调队列,服务器将响应消息发送到回调队列,通过correlation id关联请求和响应。

2024-09-06 20:53:00 1269 1

原创 Go Context使用及源码解析

context包提供了一种在Go程序中不同组件之间传递请求范围的值、取消信号和截止时间的方式。context包的设计目的是为了解决在Go的并发模型中,尤其是在goroutines之间,如何安全、高效地传递控制信息的问题。当 Context 被取消时,从其派生的所有 Context 也将被取消。

2024-08-30 19:04:55 1209

原创 Kafka常用知识点梳理

kafka支持两种启动方式Kafka with ZooKeeper(4.0后将会被废弃)

2024-08-28 20:19:02 1399

原创 TCP协议详解

Socket,通常称为"套接字",Socket(套接字)是一个抽象层,它提供了网络通信的接口,使得应用程序可以通过Socket来发送和接收数据。TCP 协议的实现细节被封装在操作系统的网络栈中,而 Socket 是操作系统提供给应用程序的接口,用于访问这些协议。Socket API 通常是协议无关的,这意味着它们可以用于不同的网络协议,如 TCP、UDP、IP 等。Java提供了 java.net.Socket 类来实现 TCP 通信。

2024-08-24 22:00:51 1391

原创 HTTP/2协议详解

HTTP/1.0 只允许在给定的 TCP连接上,一次发出一个未完成的请求。HTTP/1.1添加了请求流水线,但这只能部分解决请求并发问题,并且仍然受到应用程序层队首阻塞(application-layer head-of-line blocking)的影响。因此,HTTP/1.0 和 HTTP/1.1 客户端与服务器使用多个连接来处理并发请求。此外,HTTP 字段通常重复且冗长,不仅会造成不必要的网络流量,还会导致初始 TCP 拥塞窗口快速填满。

2024-08-22 20:49:20 1266

原创 gRPC协议详解及其在Go语言中的使用指南

gRPC Channels提供了与指定主机和端口上的 gRPC 服务器的连接。它在创建客户端存根时使用。客户端可以指定通道参数来修改 gRPC 的默认行为,例如开启或关闭消息压缩。通道具有状态,包括连接状态和空闲状态。对于简单的客户端和服务端架构,通常一个 Channel 对应一个 TCP 连接,并通过该连接处理所有请求。在复杂的场景下,一个 Channel 可能会管理多个 TCP 连接。

2024-08-19 21:44:00 1989

原创 Protocol Buffers协议说明及在Go中使用

在某些场景中,你可能需要处理未知的 Protobuf 消息类型,比如构建一个通用的消息处理系统。当需要在不同版本的 Protobuf 消息之间进行转换,或从一种消息格式转换为另一种消息格式时,protoreflect 可以用来动态读取和设置字段值,从而实现消息的转换。它也可以用于记录复杂的 Protobuf 消息,以便更好地理解和分析消息内容。如果你需要自定义 Protobuf 消息的序列化逻辑(比如实现自定义的序列化格式),protoreflect 提供了对消息内部结构的访问,可以帮助你实现这一功能。

2024-08-13 22:16:30 1215

原创 WebSocket协议详解及使用Go实现WebSocket服务端

WebSocket支持消息的分段传输,分片的主要目的是允许在消息开始时发送大小未知的消息,而无需缓冲该消息。示例:对于作为一个文本消息分成三个片段发送的情况,第一个片段的Opcode将是0x1,FIN位被清除;%x9 denotes a ping Ping帧 用于心跳检测 收到一个ping帧,必须发送一个Pong帧作为响应,除非已经接收了一个Close帧。掩码标志,如果设置为1,表示需要对数据做掩码处理,出于安全考虑,WebSocket协议规定所有从client到server的数据都要进行掩码处理。

2024-08-09 20:43:09 1334

原创 MySQL几种锁类型和作用总结

本文描述InnoDB引擎下的锁类型。

2024-08-05 19:47:42 701 1

struts2.0.11.rar

常用的struts架包,里面有40个框架。有struts2-core-2.0.11.jar xwork-2.0.4.jar…………等等

2011-03-08

struts2-core-2.0.11.jar

struts2-core-2.0.11.jarstruts2-core-2.0.11.jarstruts2-core-2.0.11.jarstruts2-core-2.0.11.jarstruts2-core-2.0.11.jarstruts2-core-2.0.11.jar

2011-03-08

FastReport3.0 设计手册

FastReport3.0设计手册pdf格式。

2011-03-01

QuickReport3开发指南(英文版)

QuickReport3开发指南(英文版),英文好的可以看看

2011-03-01

fastreport安装软件

内含fastreport安装软件,fastreport中文操作指南

2011-02-28

fastreport中文操作手册

fastreport中文操作手册,各种控件的使用,操作方法

2011-02-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除