
软件架构/技术选型
文章平均质量分 90
技术选型、软件架构等文章
西京刀客
AI,Crypto/Web3.
A bug bounty hunting and a lot of coding is my passion!
展开
-
Python的ASGI Web 服务器之uvicorn
Uvicorn 是由 Starlette 框架的作者编写的 ASGI 服务器,旨在提供高性能的异步请求处理能力。它使用 asyncio 库实现异步 I/O 操作,支持 HTTP 和 WebSocket 协议,可与各种 ASGI 应用程序框架(如 FastAPI、Django、Starlette 等)配合使用。原创 2025-03-29 13:20:02 · 516 阅读 · 0 评论 -
使用yaml管理api接口之OpenAPI规范
OpenAPI(之前称为Swagger)是一种规范,用于描述、消费和可视化 RESTful web 服务。它提供了一种可读性强且易于理解的格式,可以让人和机器都能读懂。OpenAPI 规范允许开发人员设计、构建、记录和使用 RESTful 服务,同时还提供了可视化界面,方便测试和交互。原创 2025-03-26 23:34:09 · 1190 阅读 · 0 评论 -
什么是强哈希算法pbkdf2(Password-Based Key Derivation Function)
PBKDF2(Password-Based Key Derivation Function 2)是一种基于密码的密钥派生函数。它的主要作用是从密码和盐(salt)**派生出固定长度的密钥**。PBKDF2 的设计目标是增加密码猜测攻击的成本,即使攻击者能够获得哈希函数的输出,也很难从中推导出原始密码。原创 2025-03-16 00:08:13 · 447 阅读 · 0 评论 -
轻量级日志管理平台Grafana Loki
Loki是由Grafana Labs开源的一个水平可扩展、高可用性,多租户的日志聚合系统的日志聚合系统。Loki采用了分布式的架构,并且与Prometheus、Grafana密切集成,可以快速地处理大规模的日志数据。原创 2025-02-23 19:48:27 · 1497 阅读 · 0 评论 -
分词器(Tokenizer) | 有了分词器,为什么还需要嵌入模型
Tokenizer 的主要任务是将原始文本数据分割成更小的单元(如单词、子词或字符),并将这些单元转换为计算机可以处理的数值形式(通常是整数索引)。原创 2025-02-19 23:52:34 · 1125 阅读 · 0 评论 -
常用安全哈希算法bcrypt
Bcrypt算法是一种非常安全的密码加密算法,已经被广泛应用于各种编程语言和操作系统中。原创 2025-02-19 22:49:55 · 531 阅读 · 0 评论 -
开源身份和访问管理方案之keycloak(一)快速入门
Keycloak 是一种开源**身份和访问管理**。它为应用程序添加了身份验证,并以最少的工作量保护服务。此外,它还提供用户联合、强身份验证、用户管理、精细授权等。原创 2025-02-09 23:20:32 · 1503 阅读 · 0 评论 -
Apache APISIX 快速入门
Apache APISIX 是 Apache 软件基金会下的顶级项目,它是一个具有动态、实时、高性能等特点的云原生 API 网关。原创 2025-02-09 10:31:09 · 1003 阅读 · 0 评论 -
OAuth2 快速入门
OAuth 就是一种授权机制。数据的所有者告诉系统,同意授权第三方应用进入系统,获取这些数据。系统从而产生一个短期的进入令牌(token),用来代替密码,供第三方应用使用。原创 2025-01-15 18:53:58 · 700 阅读 · 0 评论 -
tsx 和 ts-node区别(node运行ts文件)
tsx 是一个更现代、更快速的选择,特别适合新项目和需要 ESM 支持的场景原创 2024-11-26 13:14:17 · 611 阅读 · 0 评论 -
BIO、NIO、AIO的区别?
Java 中的 BIO、NIO和 AIO 理解为是 Java 语言对操作系统的各种 IO 模型的封装。程序员在使用这些 API 的时候,不需要关心操作系统层面的知识,也不需要根据不同操作系统编写不同的代码。只需要使用Java的API就可以了。原创 2024-11-16 05:47:41 · 895 阅读 · 0 评论 -
CI/CD 流水线系统-开源框架Tekton
CI/CD 流水线系统-开源框架Tekton原创 2024-10-24 10:57:56 · 1081 阅读 · 0 评论 -
比特币生态常用库之bitcoinjs-lib
BitcoinJ是一个流行的Java库,它提供了比特币网络通信、地址生成、交易处理等功能。BitcoinJS和Bitcore是JavaScript库,提供了类似的功能。原创 2024-08-22 23:15:00 · 1769 阅读 · 0 评论 -
使用pm2管理你的 nodejs 后台项目
PM2 是一款非常优秀的 Node 进程管理工具,它有着丰富的特性:能够充分利用多核 CPU且能够负载均衡、能够帮助应用在崩溃后、指定时间(cluster model)和超出最大内存限制等情况下实现自动重启。原创 2024-08-15 21:52:26 · 614 阅读 · 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 · 5318 阅读 · 0 评论 -
drand- 随机数获取和验证
类似于ETH2.0实行的信标链(Beacon Chain),FIL目前采用Drand作为其Beacon源。原创 2024-06-03 21:50:48 · 1164 阅读 · 0 评论 -
gRPC超时重传机制
gRPC 是在 HTTP/2 之上实现的 RPC 框架,HTTP/2 是第 7 层(应用层)协议,它运行在 TCP(第 4 层 - 传输层)协议之上,相比于传统的 REST/JSON 机制有诸多的优点。原创 2024-04-08 13:06:53 · 1335 阅读 · 0 评论 -
fastdfs-通信协议-自定义指令码拓展
FastDFS采用二进制TCP通信协议。一个数据包由 包头(header)和包体(body)组成。包头只有10个字节。原创 2024-03-30 21:12:04 · 1414 阅读 · 1 评论 -
什么是哈希算法sha2?和sha1什么区别?SHA2代码签名?sha3又是什么?
SHA是一系列的加密算法,有SHA-1、SHA-2、SHA-3三大类,而SHA-1已经被破解,SHA-3应用较少,目前应用广泛相对安全的是SHA-2算法。原创 2024-03-28 13:02:36 · 2176 阅读 · 0 评论 -
spring boot-操作excel(EasyExcel 快速开始)/ spring boot接受文件参数 File
java本身并不支持读取excel,所有读取excel需要借助一些框架。原创 2024-03-13 09:35:49 · 2900 阅读 · 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 · 2593 阅读 · 0 评论 -
JSON-RPC 快速开始
JSON是一种轻量级的数据交换格式,它可以表示数值、字符串、序列及名/值对集合。JSON-RPC是一种无状态的,轻量级的远程程序调用协议。叫 JSON 的原因是因为返回值是 JSON。原创 2024-03-01 09:20:03 · 1652 阅读 · 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 · 1654 阅读 · 0 评论 -
分布式定时任务调度中心技术选型
分布式定时任务调度中心技术选型原创 2024-02-22 23:45:00 · 1884 阅读 · 0 评论 -
表单中,上传文件(图片)和表单是分开还是一起上传?
上传文件和表单数据可以选择分开上传或一起上传。原创 2024-01-20 21:46:36 · 2927 阅读 · 4 评论 -
libp2p服务发现之 Multicast DNS(mDNS)
在libp2p中,mDNS和Kademlia DHT都是用于节点发现和连接管理的技术。当一个节点需要加入libp2p网络时,它可以通过mDNS和Kademlia DHT查找和连接其他节点,以建立对等网络。具体来说,mDNS通常用于在局域网中查找其他节点,而Kademlia DHT则是在广域网中查找其他节点。原创 2023-12-21 22:46:51 · 2281 阅读 · 0 评论 -
华为云云耀云服务器L实例评测|华为云上安装etcd
etcd 是一个分布式键值对存储系统,由coreos 开发,内部采用raft 协议作为一致性算法,用于可靠、快速地保存关键数据,并提供访问。原创 2023-09-25 22:03:18 · 1132 阅读 · 0 评论 -
etcd概念及原理以及应用场景选型
etcd是CoreOS团队于2013年6月发起的开源项目,授权协议为Apache。etcd是用于共享配置和服务发现的分布式,一致性的KV存储系统。原创 2023-09-23 23:27:51 · 273 阅读 · 0 评论 -
华为云云耀云服务器L实例评测|华为云上安装kafka
Kafka是由LinkedIn公司开发的一款开源分布式消息流平台,由Scala和Java编写。主要作用是为处理实时数据提供一个统一、高吞吐、低延迟的平台,其本质是基于发布订阅模式的消息引擎系统。原创 2023-09-21 21:06:37 · 1696 阅读 · 0 评论 -
华为云云耀云服务器L实例评测|华为云上安装监控服务Prometheus三件套安装
Prometheus监控系统常见的组合方式是Prometheus + Alertmanager + Grafana,也就是所谓的Prometheus三件套。原创 2023-09-15 20:36:59 · 755 阅读 · 2 评论 -
代码质量管理平台之SonarQube
SonarQube 帮助开发团队有效地管理和提高代码质量,通过自动化分析和设置规范来改进开发流程,因此在持续集成和持续交付流程中被广泛使用。原创 2023-09-13 17:39:10 · 462 阅读 · 0 评论 -
django后台启动CORS跨越配置
如果前后端可以部署在同一个域名下,那么可以避免跨域,这是最简单的方案。如果前后端实在无法部署在同域名,那么最常见和推荐的就是后端启用 CORS。这是官方推荐的标准跨域方案。原创 2023-09-03 13:51:48 · 1110 阅读 · 0 评论 -
gRPC之数据压缩Snappy、zstd
gRPC支持数据压缩,可以有效减少网络传输的数据大小,提高传输效率。原创 2023-09-02 11:37:08 · 2395 阅读 · 0 评论 -
shell脚本之如使用return和exit
return和exit各有用途,合理使用可以使shell编程更规范可控。原创 2023-08-20 18:43:35 · 2017 阅读 · 0 评论 -
linux 系统进程管理工具systemd(systemctl命令、创建自己的systemd服务、单位类型Type=notify和Type=forking的区别)
systemd是目前Linux系统上主要的系统守护进程管理工具,由于init一方面对于进程的管理是串行化的,容易出现阻塞情况,另一方面init也仅仅是执行启动脚本,并不能对服务本身进行更多的管理。所以从CentOS 7开始也由systemd取代了init作为默认的系统进程管理工具。原创 2022-12-11 15:41:42 · 3677 阅读 · 0 评论 -
python常用库之分布式任务调度框架Celery
Celery是一个功能完备即插即用的任务队列。它使得我们不需要考虑复杂的问题,使用非常简单。celery非常易于集成到一些web开发框架中。原创 2023-06-04 22:40:17 · 3716 阅读 · 1 评论 -
Diffie-Hellman密钥交换协议(Diffie-Hellman Key Exchange,简称DHKE)
Deffie-Hellman(简称 DH) 密钥交换是最早的密钥交换算法之一,它使得通信的双方能在非安全的信道中安全的交换密钥,用于加密后续的通信消息。 Whitfield Diffie 和 Martin Hellman 于 **1976** 提出该算法,之后被应用于安全领域,比如 Https 协议的 TSL(Transport Layer Security)以 DH 算法作为密钥交换算法。原创 2023-05-28 20:02:39 · 2520 阅读 · 0 评论 -
什么是web3 | 区块链web3.0人才
Web 3.0之于Web 2.0,目前并不是非此即彼、逐步替代的关系,二者更加像并存的平行世界,同时也需要连接。原创 2023-05-08 21:05:43 · 3952 阅读 · 5 评论 -
Noise协议和Disco协议选型
Noise协议和DISCO协议都是基于Diffie-Hellman密钥交换的加密协议,但是它们之间仍存在一些区别。原创 2023-05-07 11:28:26 · 1133 阅读 · 0 评论 -
Django连接Redis、数据库、mongodb密码明文存储问题以及方案
在Django连接Redis、数据库、mongodb等时,密码明文存储是一个安全隐患。原创 2023-04-24 16:47:28 · 1616 阅读 · 0 评论