
软件架构/技术选型
文章平均质量分 91
技术选型、软件架构等文章
西京刀客
AI,Crypto/Web3.
A bug bounty hunting and a lot of coding is my passion!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
apisix-使用hmac-auth插件进行接口签名身份验证\apisix consumer
HMAC 是一种基于哈希函数的消息认证码,常用于验证消息的完整性和真实性。它需要一个密钥(secret key)和一个哈希算法(如 SHA-256)来生成签名。原创 2025-06-19 23:13:40 · 1013 阅读 · 0 评论 -
golang常用库之-go-feature-flag库(特性开关(Feature Flags))
GO Feature Flag 是一个简单、完整且轻量级的自托管特性开关解决方案,并且是 100% 开源的。**GO Feature Flag** 被设计为专门为 `GO` 语言提供的解决方案。 随着 [Openfeature](https://openfeature.dev/) 项目对 Feature Flag 的新标准化,该解决方案现在可以通过一个名为 relay proxy 的简单 API 服务器,用于多种语言。原创 2025-06-04 19:33:58 · 1269 阅读 · 0 评论 -
数据库只更新特定字段的两种方式(先读后写 vs. 动态组织 SQL)-golang SQLx 实现代码(动态组织 SQL)
数据库只更新特定字段的两种方式(先读后写 vs. 动态组织 SQL)-golang SQLx 实现代码(动态组织 SQL)原创 2025-05-31 10:26:13 · 1031 阅读 · 0 评论 -
python常用库-pandas、Hugging Face的datasets库(大模型之JSONL(JSON Lines))
如果你的项目更多地涉及到深度学习和模型训练,建议优先使用datasets库;如果涉及到多样化的数据处理和分析任务,则Pandas更为合适。原创 2025-05-30 10:41:29 · 1155 阅读 · 0 评论 -
开源 OIDC(OpenID Connect)身份提供方(IdP)、iam选型
Keycloak功能全面但较重,ORY Hydra轻量但需要自行构建UI,Dex适合Kubernetes环境,Gluu适合企业级需求等。原创 2025-05-25 08:14:33 · 344 阅读 · 0 评论 -
什么是Monorepo(单体仓库)(monolithic repository)
monorepo 是一种将多个项目代码存储在一个仓库里的软件开发策略(mono 意为单一,repo 意为 仓库)。与之相对的是另一种流行的代码管理方式 MultiRepo,即每个项目对应一个单独的仓库来分散管理。原创 2025-05-19 21:59:30 · 987 阅读 · 0 评论 -
apisix透传客户端真实IP(real-ip插件)
**k8s 集群入口一般都需要过负载均衡,然后再到 apisix。**这时如果后台业务需要获取客户端 ip,可能拿到的是 lb 或者相关的内网 ip。这里一般要获取真实 ip 需要做几个处理。1. 负载均衡上,一般支持配置获取真实 ip 参数,需要配置上。然后 lb 会把客户真实 ip 写入 x-forwarded-for 参数。2. apisix 上配置 real-ip 插件。作用和 nginx 的 realip 插件相同。原创 2025-05-16 22:57:11 · 1085 阅读 · 0 评论 -
Go多服务项目结构优化:为何每个服务单独设置internal目录?
在实际开发生产型Go项目时,尤其是当项目采用微服务架构,往往会遇到以下挑战:如何合理划分每个服务的内部实现,防止跨服务依赖带来的混乱?如何做到服务内代码的“私有化”与责任边界清晰?原创 2025-05-10 23:34:27 · 1019 阅读 · 0 评论 -
Python的ASGI Web 服务器之uvicorn
Uvicorn 是由 Starlette 框架的作者编写的 ASGI 服务器,旨在提供高性能的异步请求处理能力。它使用 asyncio 库实现异步 I/O 操作,支持 HTTP 和 WebSocket 协议,可与各种 ASGI 应用程序框架(如 FastAPI、Django、Starlette 等)配合使用。原创 2025-03-29 13:20:02 · 607 阅读 · 0 评论 -
使用yaml管理api接口之OpenAPI规范
OpenAPI(之前称为Swagger)是一种规范,用于描述、消费和可视化 RESTful web 服务。它提供了一种可读性强且易于理解的格式,可以让人和机器都能读懂。OpenAPI 规范允许开发人员设计、构建、记录和使用 RESTful 服务,同时还提供了可视化界面,方便测试和交互。原创 2025-03-26 23:34:09 · 1630 阅读 · 0 评论 -
什么是强哈希算法pbkdf2(Password-Based Key Derivation Function)
PBKDF2(Password-Based Key Derivation Function 2)是一种基于密码的密钥派生函数。它的主要作用是从密码和盐(salt)**派生出固定长度的密钥**。PBKDF2 的设计目标是增加密码猜测攻击的成本,即使攻击者能够获得哈希函数的输出,也很难从中推导出原始密码。原创 2025-03-16 00:08:13 · 572 阅读 · 0 评论 -
轻量级日志管理平台Grafana Loki
Loki是由Grafana Labs开源的一个水平可扩展、高可用性,多租户的日志聚合系统的日志聚合系统。Loki采用了分布式的架构,并且与Prometheus、Grafana密切集成,可以快速地处理大规模的日志数据。原创 2025-02-23 19:48:27 · 2100 阅读 · 0 评论 -
分词器(Tokenizer) | 有了分词器,为什么还需要嵌入模型
Tokenizer 的主要任务是将原始文本数据分割成更小的单元(如单词、子词或字符),并将这些单元转换为计算机可以处理的数值形式(通常是整数索引)。原创 2025-02-19 23:52:34 · 1417 阅读 · 0 评论 -
常用安全哈希算法bcrypt
Bcrypt算法是一种非常安全的密码加密算法,已经被广泛应用于各种编程语言和操作系统中。原创 2025-02-19 22:49:55 · 675 阅读 · 0 评论 -
Apache APISIX 快速入门
Apache APISIX 是 Apache 软件基金会下的顶级项目,它是一个具有动态、实时、高性能等特点的云原生 API 网关。原创 2025-02-09 10:31:09 · 1343 阅读 · 0 评论 -
OAuth2 快速入门
OAuth 就是一种授权机制。数据的所有者告诉系统,同意授权第三方应用进入系统,获取这些数据。系统从而产生一个短期的进入令牌(token),用来代替密码,供第三方应用使用。原创 2025-01-15 18:53:58 · 826 阅读 · 0 评论 -
tsx 和 ts-node区别(node运行ts文件)
tsx 是一个更现代、更快速的选择,特别适合新项目和需要 ESM 支持的场景原创 2024-11-26 13:14:17 · 811 阅读 · 0 评论 -
BIO、NIO、AIO的区别?
Java 中的 BIO、NIO和 AIO 理解为是 Java 语言对操作系统的各种 IO 模型的封装。程序员在使用这些 API 的时候,不需要关心操作系统层面的知识,也不需要根据不同操作系统编写不同的代码。只需要使用Java的API就可以了。原创 2024-11-16 05:47:41 · 922 阅读 · 0 评论 -
CI/CD 流水线系统-开源框架Tekton
CI/CD 流水线系统-开源框架Tekton原创 2024-10-24 10:57:56 · 1160 阅读 · 0 评论 -
比特币生态常用库之bitcoinjs-lib
BitcoinJ是一个流行的Java库,它提供了比特币网络通信、地址生成、交易处理等功能。BitcoinJS和Bitcore是JavaScript库,提供了类似的功能。原创 2024-08-22 23:15:00 · 1946 阅读 · 0 评论 -
使用pm2管理你的 nodejs 后台项目
PM2 是一款非常优秀的 Node 进程管理工具,它有着丰富的特性:能够充分利用多核 CPU且能够负载均衡、能够帮助应用在崩溃后、指定时间(cluster model)和超出最大内存限制等情况下实现自动重启。原创 2024-08-15 21:52:26 · 663 阅读 · 0 评论 -
DAG(有向无环图)-入门基础
Merkle DAG的全称是 Merkle directed acyclic graph(默克有向无环图)。它是在Merkle tree基础上构建的,Merkle tree是由美国计算机学家merkle于1979年申请的专利。Merkle DAG跟Merkle tree很相似,但不完全一样,比如:Merkle DAG不需要进行树的平衡操作,非叶子节点允许包含数据等。原创 2024-06-16 23:28:11 · 6157 阅读 · 0 评论 -
drand- 随机数获取和验证
类似于ETH2.0实行的信标链(Beacon Chain),FIL目前采用Drand作为其Beacon源。原创 2024-06-03 21:50:48 · 1246 阅读 · 0 评论 -
gRPC超时重传机制
gRPC 是在 HTTP/2 之上实现的 RPC 框架,HTTP/2 是第 7 层(应用层)协议,它运行在 TCP(第 4 层 - 传输层)协议之上,相比于传统的 REST/JSON 机制有诸多的优点。原创 2024-04-08 13:06:53 · 1452 阅读 · 0 评论 -
fastdfs-通信协议-自定义指令码拓展
FastDFS采用二进制TCP通信协议。一个数据包由 包头(header)和包体(body)组成。包头只有10个字节。原创 2024-03-30 21:12:04 · 1445 阅读 · 1 评论 -
什么是哈希算法sha2?和sha1什么区别?SHA2代码签名?sha3又是什么?
SHA是一系列的加密算法,有SHA-1、SHA-2、SHA-3三大类,而SHA-1已经被破解,SHA-3应用较少,目前应用广泛相对安全的是SHA-2算法。原创 2024-03-28 13:02:36 · 2284 阅读 · 0 评论 -
spring boot-操作excel(EasyExcel 快速开始)/ spring boot接受文件参数 File
java本身并不支持读取excel,所有读取excel需要借助一些框架。原创 2024-03-13 09:35:49 · 3063 阅读 · 0 评论 -
Java开源samba client项目之jcifs/jcifs-ng库
jcifs默认启用了smb2支持,并包含一些实验性的smb3.0支持。 协议级别协商现在可以使用jcifs.smb.client.minversion和jcifs.smb.client.maxversion进行控制(取消jcifs.smb.client.enablesmb2/jcifs.smb.client.disablesmb1属性)。默认的最小/最大版本是smb1到smb210。原创 2024-03-12 09:07:00 · 2882 阅读 · 0 评论 -
JSON-RPC 快速开始
JSON是一种轻量级的数据交换格式,它可以表示数值、字符串、序列及名/值对集合。JSON-RPC是一种无状态的,轻量级的远程程序调用协议。叫 JSON 的原因是因为返回值是 JSON。原创 2024-03-01 09:20:03 · 1741 阅读 · 1 评论 -
使用maven-assembly-plugin插件自定义项目打包
在Maven中,主要有3个插件可以用来打包:maven-jar-plugin,默认的打包插件,用来打普通的project JAR包;maven-shade-plugin,用来打可执行JAR包,也就是所谓的fat JAR包;maven-assembly-plugin,支持自定义的打包结构,也可以定制依赖项等。**我们日常使用的以maven-assembly-plugin为最多**原创 2024-02-27 13:08:38 · 1758 阅读 · 0 评论 -
分布式定时任务调度中心技术选型
分布式定时任务调度中心技术选型原创 2024-02-22 23:45:00 · 1922 阅读 · 0 评论 -
表单中,上传文件(图片)和表单是分开还是一起上传?
上传文件和表单数据可以选择分开上传或一起上传。原创 2024-01-20 21:46:36 · 3086 阅读 · 4 评论 -
libp2p服务发现之 Multicast DNS(mDNS)
在libp2p中,mDNS和Kademlia DHT都是用于节点发现和连接管理的技术。当一个节点需要加入libp2p网络时,它可以通过mDNS和Kademlia DHT查找和连接其他节点,以建立对等网络。具体来说,mDNS通常用于在局域网中查找其他节点,而Kademlia DHT则是在广域网中查找其他节点。原创 2023-12-21 22:46:51 · 2449 阅读 · 0 评论 -
华为云云耀云服务器L实例评测|华为云上安装etcd
etcd 是一个分布式键值对存储系统,由coreos 开发,内部采用raft 协议作为一致性算法,用于可靠、快速地保存关键数据,并提供访问。原创 2023-09-25 22:03:18 · 1155 阅读 · 0 评论 -
etcd概念及原理以及应用场景选型
etcd是CoreOS团队于2013年6月发起的开源项目,授权协议为Apache。etcd是用于共享配置和服务发现的分布式,一致性的KV存储系统。原创 2023-09-23 23:27:51 · 305 阅读 · 0 评论 -
华为云云耀云服务器L实例评测|华为云上安装kafka
Kafka是由LinkedIn公司开发的一款开源分布式消息流平台,由Scala和Java编写。主要作用是为处理实时数据提供一个统一、高吞吐、低延迟的平台,其本质是基于发布订阅模式的消息引擎系统。原创 2023-09-21 21:06:37 · 1775 阅读 · 0 评论 -
华为云云耀云服务器L实例评测|华为云上安装监控服务Prometheus三件套安装
Prometheus监控系统常见的组合方式是Prometheus + Alertmanager + Grafana,也就是所谓的Prometheus三件套。原创 2023-09-15 20:36:59 · 805 阅读 · 2 评论 -
代码质量管理平台之SonarQube
SonarQube 帮助开发团队有效地管理和提高代码质量,通过自动化分析和设置规范来改进开发流程,因此在持续集成和持续交付流程中被广泛使用。原创 2023-09-13 17:39:10 · 531 阅读 · 0 评论 -
django后台启动CORS跨越配置
如果前后端可以部署在同一个域名下,那么可以避免跨域,这是最简单的方案。如果前后端实在无法部署在同域名,那么最常见和推荐的就是后端启用 CORS。这是官方推荐的标准跨域方案。原创 2023-09-03 13:51:48 · 1140 阅读 · 0 评论 -
gRPC之数据压缩Snappy、zstd
gRPC支持数据压缩,可以有效减少网络传输的数据大小,提高传输效率。原创 2023-09-02 11:37:08 · 2553 阅读 · 0 评论