CATEGORY
技术
Linux浏览目录目录 · 2026/07/18java浏览目录目录 · 2026/07/05算法浏览目录目录 · 2026/07/18前端浏览目录目录 · 2026/07/18DataBase浏览目录目录 · 2026/07/18goang浏览目录目录 · 2026/07/18其他浏览目录目录 · 2026/07/18旧文章-189旧文章 189文章 · 2026/07/03apache-软件基金会-apache-software-foundation-asfApache 软件基金会(Apache Software Foundation,ASF) Apache 软件基金会(Apache Software Foundation,ASF) Apache 顶级项目(Top Level Project,TLP)。 ASF毕业成为 TLP 评论 评论 1 · 20230130T02:文章 · 2026/07/03hashicorp-design-system-helios-design-systemhashicorp/designsystem: Helios Design System 原文地址 github.com HashiCorp 开源了两个新项目,一个是内部各个产品使用的设计系统,另一个是文档管理系统,主要支持 Go文章 · 2026/07/03appimageAppImage 这是一种独特的格式,用于分发 Linux 应用程序,无需安装,无需管理员权限即可运行。换句话说,您下载应用程序的 AppImage 并运行它。就是这样。 内置了相关依赖,不污染env环境,不需要装各种依赖 添加可执行权限 chmod a+x .AppImage 执行它! ./.AppImage文章 · 2026/07/03https-huggingface-coHugging face 起初是一家总部位于纽约的聊天机器人初创服务商,他们本来打算创业做聊天机器人,然后在github上开源了一个Transformers库,虽然聊天机器人业务没搞起来,但是他们的这个库在机器学习社区迅速大火起来。目前已经共享了超100,000个预训练模文章 · 2026/07/03arweave-vs-filecoinArweave Vs Filecoin With so many new technologies and applications coming out eve文章 · 2026/07/03阿里云-表格存储阿里云 表格存储 阿里云原文 表格存储(Tablestore)面向海量结构化数据提供Serverless表存储服务,同时针对物联网场景深度文章 · 2026/07/03转-与一伙爬虫团队的斗智斗勇(转)与一伙爬虫团队的斗智斗勇 近期发生了公司系统遭受大规模爬虫攻击的事件。在国庆节后出现了注册但未下单的用户进行多次请求,初步定位为爬虫用户并采取了集团IP封锁的方法,但是爬虫团队逐渐增强,并且攻击手法更加隐蔽。由于防护策略不断升级,导致爬虫团队进化速度快于技术人员的掌控能力,最终导致技术人员全面告败的局面。 爬虫逐文章 · 2026/07/03discard-是如何存储数十亿条信息的-by-bo-ingram-cointimeDiscard 是如何存储数十亿条信息的? | by Bo Ingram | Cointime 我们想要一个与我们一起增长的数据库,但希望它的维护需求不会与我们的存储需求一起增长。 discard 数据从mongodb 迁移到 Cassandra(GC导致某些问题) 又到 ScyllaDB (c++)的故事 [原文](文章 · 2026/07/03海量长链接消息推送系统设计实践海量长链接消息推送系统设计实践 原文: 分布式推送系统 相关ppt 分享 [ ](htt文章 · 2026/07/03https-github-com-rfyiamcool-share-ppt高性能架构, 中间件原理实践,云原生,Golang 等 分享的PPT文章 · 2026/07/03最大连接数最大连接数 linux系统要修改 以及相关参数 ... sysctl w fs.filemax=2000500 sysctl w fs.nropen=2000500 sysctl w net.nfconntrackmax=2000500 ulimit n 2000500 sysctl w net.ipv4.tcpmem文章 · 2026/07/03linux-内部的链接处理逻辑是这样-首先接到-syn-后-创立一个-sock-放入半连接队列-然后回复-syn-ack-三次握手完毕后-放入全链接队列-acLinux 内部的链接处理逻辑是这样。首先接到 syn 后,创立一个 sock,放入半连接队列,然后回复 syn+ack ,三次握手完毕后,放入全链接队列,ac Linux 内部的链接处理逻辑是这样。首先接到 syn 后,创立一个 sock,放入半连接队列,然后回复 syn+ack ,三次握手完毕后,放入全链接队列,a文章 · 2026/07/03linux-tcp-socket-请求队列大小参数-backloglinux tcp socket 请求队列大小参数 backlog 底层 backlog 参数主要用于底层方法int listen(int sockfd, int backlog), 在解释 backlog 参数之前,我们先了解下 tcp 在内核的请求过程,其实就是 tcp 的[三次握手](文章 · 2026/07/03connection-reset-by-peer-tcp三次握手后服务端发送rstconnection reset by peer,TCP三次握手后服务端发送RST 问题描述 这两天用Go做一个比较简单的task:后端有HTTPServer和TCPServer。客户端通过http接入到HTTPServer,HTTPServer通过RPC将请求发送到TCPServer,所有的业务逻辑都由TCPServ文章 · 2026/07/03backlog-grpc中netty配置backlog , grpc中netty配置 net.core.somaxconn 是Linux中的一个kernel参数,表示socket监听(listen)的backlog上限。 什么是backlog呢?backlog就是socket的监听队列,当一个请求(request)尚未被处理或建立时,他会进入backlog。文章 · 2026/07/03ubuntu-18-vs-node-16-依赖问题ubuntu 18 vs node 16 依赖问题 node: /lib/x8664linuxgnu/libc.so.6: version GLIBC2.28&39; not found (required by node) 高版本node 依赖 glibc版本问题 Using this command to check G文章 · 2026/07/03es6-export-default-和-export-区别ES6:export default 和 export 区别 export default 和 export 区别: 1.export 与 export default 均可用于导出常量、函数、文件、模块等 2. 你可以在其它文件或模块中通过 import+(常量 | 函数 | 文件 | 模块) 名的方式,将其导入,以文章 · 2026/07/03google验证器是如何实现的-原理-离线使用Google验证器是如何实现的?原理,离线使用 我们往往会在不同的网站上使用相同的密码,这样一旦一个网站账户的密码泄露,就会危及到其他使用相同密码的账户的安全,这也是最近的密码泄露事件造成如此大影响的原因。 为了解决这个问题,一些网站在登录时要求除了输入账户密码之外,还需要输入另一个一次性密码。银行常用的动态口令卡就是文章 · 2026/07/03go-sync-poolGo sync.Pool Go 语言 / golang 高性能编程,Go 语言进阶教程,Go 语言高性能编程 (high performance go)。 源代码 / 数据集已上传到 [Github highperformancego](文章 · 2026/07/03神马搜索-获取authkey神马搜索 获取authkey 打开调试F12 或者 cmd+shift + c (文章 · 2026/07/03一致性哈希算法原理一致性哈希算法原理 看了几篇,就这篇带着图,解释清晰 一致性Hash算法背景 一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得DHT可以在文章 · 2026/07/03java-的强引用-弱引用-软引用-虚引用Java 的强引用、弱引用、软引用、虚引用 1. 强引用 StrongReference 强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它 Object o=new Object(); // 强引用 当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,文章 · 2026/07/03jvm进程启动会启动哪些进程JVM进程启动会启动哪些进程? 首先要明白一点:JVM本身是一个多线程的程序,和我们编写的java应用程序一样,当JVM启动执行时就是在操作系统中启动了一个JVM进程。我们编写的java单线程或多线程应用程 序都是在JVM这个程序中作为一个或多个线程运行。 每当使用java命令执行一个带main方法的类时,就会启动JV文章 · 2026/07/03进程与线程关系-jvm进程与线程关系(JVM) 网上有一副很经典的图可以让我们来理解进程和线程的关系: 下面这副图是一个双向多车道的道路图,假如我们把整条道路看成是一个“进程”的话,那么图中由白色虚线分隔开来的各个车道就是进程中的各个“线程”了。 [](文章 · 2026/07/03linux与jvm的内存关系分析Linux与JVM的内存关系分析 引言 在一些物理内存为8g的server上,主要执行一个Java服务,系统内存分配例如以下:Java服务的JVM堆大小设置为6g,一个监控进程占用大约600m,Linux自身使用大约800m。 从表面上,物理内存应该是足够使用的;但实际执行的情况是,会发生大量使用SWAP(说明物理内存文章 · 2026/07/03java并发编程-并发新特性-executor框架与线程池Java并发编程 并发新特性—Executor框架与线程池 Executor框架简介 在Java 5之后,并发编程引入了一堆新的启动、调度和管理线程的API。Executor框架便是Java 5中引入的,其内部使用了线程池机制,它在java.util.cocurrent 包下,通过该框架来控制线程的启动、执行和关闭,可文章 · 2026/07/03java集合框架java集合框架 Java集合工具包位于Java.util包下,包含了很多常用的数据结构,如数组、链表、栈、队列、集合、哈希表等。学习Java集合框架下大致可以分为如下五个部分:List列表、Set集合、Map映射、迭代器(Iterator、Enumeration)、工具类(Arrays、Collections)。 [文章 · 2026/07/03java并发编程-并发容器之concurrenthashmapjava并发编程:并发容器之ConcurrentHashMap JDK5中添加了新的concurrent包,相对同步容器而言,并发容器通过一些机制改进了并发性能。因为同步容器将所有对容器状态的访问都 串行化了,这样保证了线程的安全性,所以这种方法的代价就是严重降低了并发性,当多个线程竞争容器时,吞吐量严重降低。因此Ja文章 · 2026/07/03gin框架loadhtmlglob-有缓存Gin框架LoadHTMLGlob 有缓存 在用vueelementadmin时候, 发现把elementui迁移cdn后, 打包后index.html依旧 还是依赖/static/js/chunkelementUI.js. 打开一直提示找不到. 才发现 后台 go gin框架 引用的html 有缓存. 重启后搞定 h文章 · 2026/07/03gorm-零值坑gorm 零值坑 1. sql ret 是查询的结果. 先查询是否有值,if ret.Id 0 ,则进行更新, 此时如果updates传入 model ,会忽略0 nil false字段 mysql.Get().WithContext(ctx).Model(new(models.ProxyState)).Where("文章 · 2026/07/03go-for-range-坑go for range 坑 golang package main import "fmt" / 在for循环中,声明了一个i变量,每次循环将i的地址追加到out切片中, 但是每次追加的其实都是i变量,因此我们追加的是一个相同的地址,而该地址最终的值是3。 range坑, 每次 / func main() { var文章 · 2026/07/03java-类静态变量加载java 类静态变量加载 [原文](文章 · 2026/07/03开源许可证开源许可证 阮一峰 [ ](文章 · 2026/07/03日志等级log-level日志等级log Level文章 · 2026/07/03mvn-跳过testmvn 跳过test 在使用mvn package进行编译、打包时,Maven会执行src/test/java中的JUnit测试用例, 有时为了跳过测试,会使用参数DskipTests和Dmaven.test.skip=true,这两个参数的主要区别是: DskipTests 不执行测试用例,但编译测试用例类生成相应的文章 · 2026/07/03redis-zinterstore-zunionstore-排行交集并集redis zinterstore zunionstore 排行交集并集 zinterstore/zunionstore destination numkeys key [key ...] [weights weight [weight ...]] [aggregate sum|min|max] 获取交集/并集 这个文章 · 2026/07/03动作类网络游戏同步的实现方案动作类网络游戏同步的实现方案 原文 前面一篇谈了放置类游戏的网络同步,我想把其方法推广到其它类型的游戏,比如 MMORPG ,比如动作游戏。尤其是动作类游戏,非常需要客户端可以即时处理玩家的操作,文章 · 2026/07/03java-动态线程池的文章-用的美团动态线程池java 动态线程池的文章. 用的美团动态线程池 原文文章 · 2026/07/03netty-参数设置说明Netty 参数设置说明 option主要是针对boss线程组ServerSocketChannel,childOption主要是针对worker线程组,SocketChannel 链接 1. 系统参数 1.Netty中的op文章 · 2026/07/03nginx-例子nginx 例子 有时我们会使用一些java或node应用,但又不想让他们直接监听80端口,这时就需要用到端口转发 本文中,我们介绍Nginx如何做端口转发,还有各种转发规则 将域名转发到本地端口 首先介绍最常用的,将域名转发到本地另一个端口上 server{ listen 80; servername tomcat.文章 · 2026/07/03java7-java8-compareandswaplong-longadderjava7 java8 compareAndSwapLong LongAdder 我们可以窥见 JDK 8 在 x86 平台上对 compareAndSwapLong 方法做了一些操作,使用了 xadd 汇编指令代替 CAS 操作。 xadd 指令是 fetch and add。 cmpxchg 指令是 compare文章 · 2026/07/03golang-traceid-spanidgolang traceid spanid trace 是请求在分布式系统中的整个链路视图 span 则代表整个链文章 · 2026/07/03ls-1什么意思ls 1什么意思 1 (The numeric digit one&39;&39;.) Force output to be one entry per line. This is the default when output is not to a terminal. [ ](文章 · 2026/07/03golang-sort-intgolang sort int func reverse3(s []int) { s = append(s, 999) fmt.Println("middle: ", s) for i, j := 0, len(s)1; i < j; i++ { j = len(s) (i + 1) s[i], s[j] = s[j]文章 · 2026/07/03java-卖票-多线程超卖java 卖票 多线程超卖 java package thread; / @author miller @date 2022/10/28 3:24 PM / public class TicketWindow2 implements Runnable { private int ticket = 300; @Overr文章 · 2026/07/03java-thread-join-wait-notifyjava thread join() wait() notify() 可以给定一个共同对象 obj thread1 wait() thread2 notify() 也可以多个thread wait() . thead notifyall() wait()会出让CPU; synchronized (objectOne)文章 · 2026/07/03mybatis-缓存mybatis 缓存 –不同SqlSession缓存不能共享 MyBatis 默认开启了一级缓存,一级缓存是在SqlSession 层面进行缓存的。即,同一个SqlSession ,多次调用同一个Mapper和同一个方法的同一个参数,只会进行一次数据库查询,然后把数据缓存到缓冲中,以后直接先从缓存中取出数据,不会直文章 · 2026/07/03mybatis分页mybatis分页 Mybatis是如何进行分页的?分页插件的原理是什么? Mybatis使用RowBounds对象进行分页,它是针对ResultSet结果集执行的内存分页,而非物理分页,可以在sql内直接书写带有物理分页的参数来完成物理分页功能,也可以使用分页插件来完成物理分页。 分页插件的基本原理是使用Mybati文章 · 2026/07/03curl-命令curl 命令 有的网址是自动跳转的。使用 L 参数,curl 就会跳转到新的网址。 curl L L, location option or do multiple URL transfers on the same invoke. If the file name is exactly a文章 · 2026/07/03go-context-withcancelgo context.WithCancel func func3() { gen := func(ctx context.Context) <chan int { dst := make(chan int) go func() { defer func() { fmt.Println("exit inside") }(文章 · 2026/07/03completablefuture-默认启用的线程池CompletableFuture 默认启用的线程池 java中很多异步, 如果在不指定线程池的情况下,都是在ForkJoinPool.common线程池中执行, 而这个线程池中的所有线程都是Daemon(守护)线程, 所以,当主线程结束时,这些线程无论执行完毕都会退出系统。 核心代码: CompletableFutu文章 · 2026/07/03类gin-前缀树路由router-匹配类Gin 前缀树路由Router 匹配 /:lang/doc /:lang/tutorial /:lang/intro /about /p/blog /p/related [ ](文章 · 2026/07/03shell-set-eshell set e shell中脚本运行中可能出现命令执行失败的情况,如果执行失败对后续有影响那么就应该退出脚本,不继续往下执行。set e 命令就可以避免操作失败还继续往下执行的问题。 set命令的e参数: linux系统自带的说明是:“Exit immediately if a simple command e文章 · 2026/07/03shell-trap命令shell trap命令 /bin/bash trap "rm server;kill 0" EXIT trap 命令用于在 shell 脚本退出时,删掉临时文件,结束子进程。 可以捕捉信号文章 · 2026/07/03find-命令过滤时间find 命令过滤时间 需求:删除 /home/file/ 目录下10天之前生成的txt类型的文件 find /home/file/ ctime +10 name ".txt" print | xargs rm f 或者 find /home/file/ ctime +10 name ".txt" delete 经过测文章 · 2026/07/03java编译成可执行文件java编译成可执行文件 <build <pluginManagement< lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) <plugins <plugin <groupIdorg.apache文章 · 2026/07/03golang-validator-校验参数golang validator 校验参数 type User struct { Name string json:"name" validate:"min=0,max=35" Age unit8 json:"age" va文章 · 2026/07/0310-张图打开-cpu-缓存一致性的大门10 张图打开 CPU 缓存一致性的大门 正文 CPU Cache 的数据写入 随着时间的推移,CPU 和内存的访问性能相差越来越大,于是就在 CP文章 · 2026/07/03linux-curl-command-指令與基本操作入門教學Linux Curl Command 指令與基本操作入門教學 本文由 简悦 SimpRead 转码, 原文地址 [blog.techbridge.cc](文章 · 2026/07/03超全总结-go-读文件的-10-种方法超全总结:Go 读文件的 10 种方法 本文由 简悦 SimpRead 转码, 原文地址 Go 中对文件内容读写的方法,非常地多,其中大多数是基于文章 · 2026/07/03python-格式化字符串-f-用法python: 格式化字符串 f() 用法 原文地址 blog.csdn.net 版权声明:本文文章 · 2026/07/03go-每日一库之-testifyGo 每日一库之 testify 原文地址 darjun.github.io 简介 testify 可以说是最流行的(从 GitHub star 数来看)Go 语言测试库了。testify 提供了很多方文章 · 2026/07/03nodejs-操作-mysql-html转markdownnodejs 操作 mysql html转markdown npm init install package "dependencies": { "mysql": "^2.18.1", "nodehtmlmarkdown": "^1.3.0" } code import { createConnection } fro文章 · 2026/07/03go语言-cspGo语言 CSP CSP(communicating sequential processes)并发模型 Go实现了两种并发形式,第一种是大家普遍认知的多线程共享内存,其实就是 Java 或 C++ 等语言中的多线程开发;另外一种是Go语言特有的,也是Go语言推荐的 CSP(communicating sequenti文章 · 2026/07/03es-match-phase-调整内容搜索-全包含es matchphase 调整内容搜索, 全包含 优化了下,每次想搜索 全包含时候,带上prefix 引号 &39; | " 即可 if strings.HasPrefix(keyword, """) || strings.HasPrefix(keyword, "&39;") { keyword = keyword[1:] /文章 · 2026/07/03redis-工作掌握技能redis 工作掌握技能 Redis 是一种基于键值对(keyvalue)的 NoSQL 数据库。 比一般键值对数据库强大的地方,Redi文章 · 2026/07/03create-database-prisma-dbcreate database prismadb; create database prismadb; create user &39;prisma&39;@&39;%&39; identified by &39;xxxxfxxxx&39;; grant all privileges on prisma. to &39;prisma&39;@&39;%&39; with gra文章 · 2026/07/03在-go语言程序运行时-runtime-实现了一个小型的任务调度器-这套调度器的工作原理类似于操作系统调度线程-go-程序调度器可以高效地将-cpu-资源分配给在 Go语言程序运行时(runtime)实现了一个小型的任务调度器。这套调度器的工作原理类似于操作系统调度线程,Go 程序调度器可以高效地将 CPU 资源分配给 在 Go语言程序运行时(runtime)实现了一个小型的任务调度器。这套调度器的工作原理类似于操作系统调度线程,Go 程序调度器可以高效地将 CPU 资源分配文章 · 2026/07/03gomaxprocs-与容器的相处之道GOMAXPROCS 与容器的相处之道 引言 众所周知,GOMAXPROCS 是 Golang 提供的非常重要的一个环境变量设定。通过设定 GOMAXPROCS,用户可以调整 Runtime Scheduler 中 Processor(简称P)的数量。由于每个系统线程,必须要绑定 P 才能真正地进行执行。所以 P 的数文章 · 2026/07/03静态pod静态pod 静态Pod有什么作用?有哪些内置静态Pod? 静态 Pod 通常绑定到某个节点上的 kubelet。 其主要用途是运行自托管的控制面。 因为使用静态Pod可以有效预防通过kubectl、或管理工具操作的误删除,可以利用它来部署一些核心组件应用,保障应用服务总是运行稳定数量和提供稳定服务。 在自托管场景中,使文章 · 2026/07/03quit-make-chan-os-signalquit := make(chan os.Signal) quit := make(chan os.Signal) signal.Notify(quit, syscall.SIGKILL, syscall.SIGQUIT, syscall.SIGINT, syscall.SIGTERM) <quit go启动 hang文章 · 2026/07/03json文件增加注释支持json文件增加注释支持 json 当配置文件时,描述清晰,规范,通用,各种好处 尾后逗号 (有时叫做“终止逗号”)在向 JavaScript 代码添加元素、参数、属性时十分有用。如果你想要添加新的属性,并且上一行已经使用了尾后逗号,你可以仅仅添加新的一行,而不需要修改上一行。这使得版本控制的代码比较(diff)更加清文章 · 2026/07/03golang-值传递golang 值传递 背景 先说结论,Go 里面没有引用传递,Go 语言是值传递。很多技术博客说 Go 语言有引用传递,都是没真的理解 Go 语言。 值传递 指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。 引用传递 指在调用函数时将实际参数的地址直接传递到函数中,那文章 · 2026/07/03context-context-cancelfunc-donecontext.Context CancelFunc done 我们可以通过一个代码片段了解 context.Context 是如何对信号进行同步的。在这段代码中,我们创建了一个过期时间为 1s 的上下文,并向上下文传入 handle 函数,该方法会使用 500ms 的时间处理传入的请求: func main() {文章 · 2026/07/03go-build-ldflagsgo build ldflags /bin/bash Exit the script if an error happens set e APPNAME=$1 APPVERSION=v$(cat version) BUILDVERSION=$(git log 1 oneline) BUILDTIME=$(date "+文章 · 2026/07/03go-gctrace-调试gc日志go gctrace 调试GC日志 gctrace 用途主要是用于跟踪 GC 的不同阶段的耗时与 GC 前后的内存量对比。 信息比较简洁,可以用于对 runtime 本身进行调试之外,还可以观察线上应用的 GC 情况。 Dave Cheney 就写了一个工具 [gcvis](文章 · 2026/07/03golang-实现单机百万长连接服务-美图的三年优化经验-转Golang 实现单机百万长连接服务 美图的三年优化经验(转) 美图长连接服务简介 随着科技的飞速发展,技术的日新月异,长连接的运用场景日益增多。不仅在后端服务中被广泛运用,比较常见的有数据库的访问、服务内部状态的协调等,而且在 App 端的消息推送、聊天信息、直播弹字幕等场景长连接服务也是优选方案。长连接服务的重要性文章 · 2026/07/03go-性能runtime-readmemstats-pprofgo 性能runtime.ReadMemStats + pprof runtime.MemStats var ms runtime.MemStats runtime.ReadMemStats(&ms) pprof工具 import( "net/htt文章 · 2026/07/03golang-defer-小知识golang defer 小知识 defer return 先执行return 再执行defer func DeferFunc1(i int) (t int) { // t = i // 这里直接用变量t defer func() { t += 3 }() return t } 1. 将返回值t赋值为传入的i,此时t为文章 · 2026/07/03mmu-内存管理MMU 内存管理 [ ](文章 · 2026/07/03const-cl-10const cl = 10 const cl = 10 cl是字面量10的对等符号。 所以在golang中,常量是无法取出地址的,因为字面量符号并没有地址而言。 println(&cl,cl) // error文章 · 2026/07/03golang-map-值拷贝-value赋值golang map 值拷贝,value赋值 package main import "fmt" type Student struct { Name string } var list map[string]Student func main() { list = make(map[string]Student) s文章 · 2026/07/03golang-interface-小题-接口初始化问题golang interface 小题 接口初始化问题 package main import ( "fmt" ) type People interface { Show() } type Student struct{} func (stu Student) Show() { } func live() Peopl文章 · 2026/07/03golang-channel-特性golang channel 特性 golang channel 特性 ● 给一个 nil channel 发送数据,造成永远阻塞 ● 从一个 nil channel 接收数据,造成永远阻塞 ● 给一个已经关闭的 channel 发送数据,引起 panic ● 从一个已经关闭的 channel 接收数据,如果缓冲区中为文章 · 2026/07/03可用性-容错性可用性,容错性 可用性,容错性文章 · 2026/07/03分布式base理论分布式BASE理论 BASE是Basically Available(基本可用)、Soft state(软状态)和Eventually consistent(最终一致性)三个短语的简写。 BASE是对CAP中一致性和可用性权衡的结果,其来源于对大规模互联网系统分布式实践的总结,是基于CAP定理逐步演化而来的,其核心思想文章 · 2026/07/03goroutine-通过chan控制new速率goroutine 通过chan控制new速率 package main import ( "fmt" "math" "runtime" ) func busi(ch chan bool, i int) { fmt.Println("go func ", i, " goroutine count = ", runtim文章 · 2026/07/03golang-初始化structgolang 初始化struct //第一种,在Go语言中,可以直接以 var 的方式声明结构体即可完成实例化 var t T t.a = 1 t.b = 2 //第二种,使用 new() 实例化 t := new(T) //第三种,使用字面量初始化 t := T{a, b} t := &T{} //等效于 new(T文章 · 2026/07/03go并发调用协程goroutine并通过管道chan收集返回值Go并发调用协程goroutine并通过管道chan收集返回值 这里整理一下go开发当中用到了并发协程多任务,同时收集返回多任务结果,go 协程没有直接返回,只能通过chan返回收集,其中用到几个特性 缓存管道是当满的时候是阻塞的,这个特性可以用到并发控制 需要用到&sync.WaitGroup{} 也就是说并发请求中文章 · 2026/07/03completablefuture-并发获取-方法结果CompletableFuture 并发获取 方法结果 package thread; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.concurrent.CompletableFut文章 · 2026/07/03sed-n-4p-users-miller-wrapdrive-echarts-delta-data1675753747-txt-awk-forsed n 4p /Users/miller/wrapdrive/echarts/delta/data1675753747.txt | awk &39;{ for( sed n 4p /Users/miller/wrapdrive/echarts/delta/data1675753747.txt | awk &39;{ for(i文章 · 2026/07/03springboot-常规controller-exception-result-注解-参数校验springboot 常规controller exception Result 注解 参数校验 好久没写springboot了。看到了 回顾下。 一个优秀的 Controller 层逻辑 说到 Controller,相信大家都不陌生,它可以很方便地对外提供数据接口。它的定位,我认为是「不可或缺的配角」。 说它不可或缺文章 · 2026/07/03cas-会先把-entry-现在的-value-跟线程当初读出的值相比较-若相同-则赋值-若不相同-则赋值执行失败-一般会通过-while-for-循环来重新执CAS 会先把 Entry 现在的 value 跟线程当初读出的值相比较,若相同,则赋值;若不相同,则赋值执行失败。一般会通过 while/for 循环来重新执 CAS 会先把 Entry 现在的 value 跟线程当初读出的值相比较,若相同,则赋值;若不相同,则赋值执行失败。一般会通过 while/for 循环来重新文章 · 2026/07/03go-chan-判断是否closedgo chan 判断是否closed golang 中channel 即使已经关闭了, 仍然可以将channel中的数据读出来, 并不会报错。 一般的写法: data, ok := < chan, 只有当channel无数据,且channel被close了,才会返回ok=false。 func isChanClosed文章 · 2026/07/03makefileMakefile 原文地址 seisman.github.io 伪目标 最早先的一个例子中,我们提到过一个 “clean” 的目标,这是一个“伪目标”, clean: rm .o temp 正像我文章 · 2026/07/03golang-gmp调度golang GMP调度 对于Go中的阻塞需要了解一下有哪些场景会发生,可以参考上面提到的GPM文章。 常见的阻塞一般发生在像网络请求、系统调用进行磁盘IO操作、执行Sleep函数等,而针对每一种阻塞的处理方式也不一样。 如果是网络导致的阻塞的话,则直接将G切换到网络轮询器NetPoller继续执行, 为PM重新调度过文章 · 2026/07/03java-使用-disruptor-并发框架Java 使用 Disruptor 并发框架 一、什么是 Disruptor Disruptor 是一个高性能的异步处理框架,或者可以认为是最快的消息框架(轻量的 JMS),也可以认为是一个[观察者模式](文章 · 2026/07/03性能监控之-golang-应用接入-prometheus-监控性能监控之 Golang 应用接入 Prometheus 监控 Prometheus 提供了 官方版 Golang 库 用于采集并暴露监控数据,本文快速为你介绍如何使用官方版 Golang 库来暴露 Golang runtime 相关的数据,以及其它一些基本简单的示例,并使用 Prometheus 监控服务来采集指标展文章 · 2026/07/03golang-方法泛型golang 方法泛型 函数泛型是ok的。 func sumArr[T int | float64](arr []T) T { var sum T for , val := range arr { //累计求和 sum += val } return sum } func average[T int | float64文章 · 2026/07/03golang-crypto-randgolang "crypto/rand" import cr "crypto/rand" func baseRandomArray(cnt int) []int { b := make([]byte, cnt) m, := cr.Read(b) arr := b[:m] ret := make([]int, 0) fo文章 · 2026/07/03go-logrusgo logrus main.go package main import ( "fmt" "demolog/logs" "github.com/sirupsen/logrus" ) func main() { log := logs.New(logs.Config{ Module: "testMain", Level文章 · 2026/07/03go-zap日志go zap日志 如果是json格式的log。 有个更优秀的 zerolog 基础文章 · 2026/07/03go-传参-传值-传引用go 传参 传值 传引用 引用传递是指在调用函数时将实际参数的地址传递到函数中,那么在函数中对参数所进行的修改,将影响到原内容数据。 严格来说Go语言只有值传递这一种传参方式,Go语言是没有引用传递的。Go语言中可以借助传指针来实现引用传递的效果。 函数参数使用指针参数,传参的时候其实拷贝一份指针参数,也就是拷贝了一份文章 · 2026/07/03go-sync-pool-类似netty-recyclergo sync.Pool [类似netty Recycler] 1. 简介 ===== 本文将介绍 Go 语言中的 sync.Pool并发原语,包括sync.Pool的基本使用方法、使用注意事项等的内容。能够更好得使用sync.Pool来减少对象的重复创建,最大限度实现对象的重复使用,减少程序 GC 的压力,以及提升程文章 · 2026/07/03go-源码里的这些-go-指令Go 源码里的这些 //go: 指令 如果你平时有翻看源码的习惯,你肯定会发现。咦,怎么有的方法上面总是写着 //go: 这类指令呢。他们到底是干嘛用的? go:linkname //go:linkname localname importpath.name 该指令指示编译器使用 importpath.name 作为源文章 · 2026/07/03sync-pool-不需要加锁却能保证线程安全Sync.pool 不需要加锁却能保证线程安全 原文地址 juejin.cn 1. 简介 ===== 我们在 [Sync.Pool: 提高 go 语言程序性能的关键一步](文章 · 2026/07/03golang-数组-切片golang 数组 切片 golang 数组 切片 数组 定义h时指定大小,就是属于数组 数组: s := [6]int{1, 2, 3, 4, 5, 6} 切片: arr := make([]int, 6) 切片: s := []int{1, 2, 3, 4, 5, 6}文章 · 2026/07/03jvm成神路之gc分区篇-g1-gc-zgcJVM成神路之GC分区篇 G1 GC ZGC 原文 JVM系列专栏 作者其他专栏文章 · 2026/07/03局部性原理-各类优化的基石局部性原理——各类优化的基石 学过计算机底层原理、了解过很多架构设计或者是做过优化的同学,应该很熟悉局部性原理。即便是非计算机行业的人,在做各种调优、提效时也不得不考虑到局部性,只不过他们不常用局部性一词。如果抽象程度再高一些,甚至可以说地球、生命、万事万物都是局部性的产物,因为这些都是宇宙中熵分布布局、局部的熵低导致文章 · 2026/07/03在-go-中恰到好处的内存对齐-fieldalignment在 Go 中恰到好处的内存对齐 fieldalignment 重排序、指令对齐 type Part1 struct { a bool b int32 c int8 d int64 e byte } 占用内存: func main() { fmt.Printf("bool size: %d\n", unsafe.Size文章 · 2026/07/03微信扫码-关注公众号后网站自动登录微信扫码 关注公众号后网站自动登录 申请服务号 扫码登录的具体过程是这样的:用户打开登录页面时,前端在页面加载完成后随即请求后台生成带参公众号二维码文章 · 2026/07/03linux-go-installlinux go install 记录下,原先一直mac各种环境, 找个linux测试点东西,结果各种代理 环境问题 go代理 配置 配置 GOPROXY 环境变量,以下三选一 1. 七牛 CDN go env w GOPROXY= 2. 阿里云 go env w GO文章 · 2026/07/03go-dlv-debug-进程go dlv debug 进程 类似gdb LLDB 只有 Delve 是专门为 Go 语言设计开发的调试工具. 线上debug break断点. 1. 定位到函数某行,还可以。一直输入goroutines 能能看到哪里hang住。 2. 看哪些goroutine运行什么,bt也可以。 3. 看汇编... go ins文章 · 2026/07/03go-工具链-未完待续go 工具链 (未完待续) 1. package go mod init maocaoying.com/learn go mod tidy go install // install cmd into GOPTAH go get // 感觉废弃了,直接go mod tidy 2. go help cmd // help文章 · 2026/07/03java-代码审计-ssrf-漏洞Java 代码审计 SSRF 漏洞 本文由 简悦 SimpRead 转码, 原文地址 [mp.weixin.qq.com](文章 · 2026/07/03a-million-websockets-and-goA Million WebSockets and Go 原文地址 by Sergey Kamardin A Million WebSo文章 · 2026/07/03转-使用底层的-syscall-socket-实现网络编程(转)使用底层的 syscall.Socket 实现网络编程 原文地址 mp.weixin.qq.com 感受下 golang 调用原生socket的魅力 socket 函数是一个系统调用,用于在操作系统内核中创建一文章 · 2026/07/03向量数据库-未来十年最重要的新兴技术之一-墨天轮向量数据库,未来十年最重要的新兴技术之一 墨天轮 原文地址 向量数据库不是依靠不同的类别和列表来组织我们的记录,而是将它们放在地图上。 今年,生成式人工智能已经在科技界及其他领域受到了广泛关注。无论是 ChatGPT 的散文还文章 · 2026/07/03mini-rpc-demominirpc demo 《Netty 核心原理剖析与 RPC 实践》 配套实战代码 rpc demo + springboot 学习下 spring 加载类 bean . provider + consumer ♈♉♊♋♌♍♎♏♐♑♒♓⛎ spr文章 · 2026/07/03netty技巧-避免内存拷贝Netty技巧 避免内存拷贝: Netty 还提供了一些技巧来避免内存拷贝: CompositeByteBuf 是 Netty 中实现零拷贝机制非常重要的一个数据结构,它可以组合多个 Buffer 对象合并成一个逻辑上的对象,避免通过传统内存拷贝的方式将几个 Buffer 合并成一个大的 Buffer,我们经常使用 C文章 · 2026/07/03spring-相关笔记spring 相关笔记 初始化顺序 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactoryinitializeBean 0. invokeAwareMethods 处理BeanNameAware,BeanClassLoad文章 · 2026/07/03https-mp-weixin-qq-com-s-bfdn4vvcbsc3xcxaydqynaDDD 是毒瘤还是香饽饽? 还是 那帮KPI的人拿出来的东西? 当一些概念被吹嘘起来的时候,你不去拥抱它,反而会产生问题文章 · 2026/07/03fastclass-代理-cglib-asmFastclass 代理 cglib ASM 代理类型: 对象实现接口,使用 JDK动态代理 对象没有实现接口,使用 Cglib动态代理 。jdk8文章 · 2026/07/03从-0-到-1-nio-selector-转从 0 到 1:NIOSelector (转) 本文由 简悦 SimpRead 转码, 原文地址 juejin.cn 前言 == 本篇博文是《从 0 到 1 学习 Ne文章 · 2026/07/03缓存-lru-lfu-w-tinylfu算法缓存 LRU LFU WTinyLFU算法 LFU和LRU算法的不同之处,LRU的淘汰规则是基于访问时间,而LFU是基于访问次数的。 Caffine 采用WTinyLFU [ ](文章 · 2026/07/03socket是并发安全的吗socket是并发安全的吗? 1. 多线程并发读/写同一个TCP socket是线程安全的,因为TCP socket的读/写操作都上锁了。虽然线程安文章 · 2026/07/03使用-arthas-热更新-java-代码使用 Arthas 热更新 Java 代码 编译好后,提取class文件, 上传到server java jar arthasboot.jar attach连接响应进程号后 🔺 热更 redefine /root/xx.class 🔺🔺🔺 推荐使用 retransform。 .文章 · 2026/07/03hbase-lsm-树存储引擎概要HBase LSM 树存储引擎概要 1. 前提 ===== 讲 LSM 树之前,需要提下三种基本的存储引擎,这样才能清楚 LSM 树的由来: 哈希存储引擎。 B 树存储引擎。 LSM 树(LogStructured Merge Tree)存储引擎。 2. 哈希存储引擎 ========= 哈希存储引擎哈希表的持久化实现文章 · 2026/07/03redis-淘汰策略redis 淘汰策略 noeviction:不淘汰任何数据,当内存不足时,执行缓存新增操作会报错,它是 Redis 默认内存淘汰策略。⭐️⭐️ allkeyslru:淘汰整个键值中最久未使用的键值。 allkeysrandom:随机淘汰任意键值。 volatilelru:淘汰所有设置了过期时间的键值中最久未使用的键值。文章 · 2026/07/03a-寻路算法A 寻路算法 1. 2. 3.文章 · 2026/07/03golang-netpoller-原生网络模型之源码全面揭秘-转golang netpoller 原生网络模型之源码全面揭秘(转) 作者(Author):潘少 链接(URL) 来源(Source):Strike Freedom文章 · 2026/07/03惊群效应惊群效应 原文地址 blog.csdn.net 什么是惊群效应 ======= 这个话题来自一个面试,当问到 Socket 编程中的 accept() 是否有惊群问题,引深又问到 epoll文章 · 2026/07/03fuzzing-模糊测试-是一种自动化测试技术-它随机生成测试数据-来验证代码的功能是否可用-比如先定义一个可通过任何输入的-fuzz-测试-接着尝试不同的Fuzzing (模糊测试),是一种自动化测试技术。它随机生成测试数据,来验证代码的功能是否可用。比如先定义一个可通过任何输入的 fuzz 测试,接着尝试不同的 Fuzzing (模糊测试),是一种自动化测试技术。它随机生成测试数据,来验证代码的功能是否可用。比如先定义一个可通过任何输入的 fuzz 测试,接着尝试不同文章 · 2026/07/03go-编译时候嵌入-变量或者文件-embedgo 编译时候嵌入 变量或者文件 embed 2种方案 ldflags | //go:embed hello.txt 1. ldflags // go build ldflags "X &39;main.Version=1.1.1&39;" // 设置变量. 只适合设置变量 长文件用base64转成字符串,也支持小的二进制。600文章 · 2026/07/03一个-metrics-研发案例一个 metrics 研发案例 一个 metrics 研发案例文章 · 2026/07/03golang-runtime-调度函数golang runtime 调度函数 runtime.Gosched() 用于让出CPU时间片,让出当前goroutine的执行权限,调度器安排其它等待的任务运行,并在下次某个时候从该位置恢复执行。这就像跑接力赛,A跑了一会碰到代码runtime.Gosched()就把接力棒交给B了,A歇着了,B继续跑。 runti文章 · 2026/07/03locksupport-wait-park-sleep-范例LockSupport wait park sleep 范例 实际项目用的少,架不住面试用啊,concurrenthashmap 里有。 全文讲解 : 摘要: wait notify 先后顺文章 · 2026/07/03xargs-mv迁移子文件夹内容-到某个目录xargs mv迁移子文件夹内容 到某个目录 下载的文件夹中,很多子目录下的html find . name ".html" | xargs I file mv file all find . mindepth 2 name “.txt” | xargs I file mv file ./ 原理: find命令便令当前文章 · 2026/07/03mysql-为什么-varchar-字段用数字查无法命中索引-而-int-字段用字符串查却能命中MySQL 为什么 varchar 字段用数字查无法命中索引,而 int 字段用字符串查却能命中 字符串字段误使用数字进行查询,会导致隐式类型转换,无法命中索引的坑我相信大多数小伙伴都踩过。特别是当字段中存的大多数数据都是数字时,很容易先入为主... 字符串字段误使用数字进行查询,会导致隐式类型转换,无法命中索引的坑我文章 · 2026/07/03mysql-int-index-vs-varchar-indexmysql int index vs varchar index 虽然有的测试看起来, int varchar 都是索引(uniq index)查询速度没区别 但考虑 插入时候,int 可以保证递增,不会移动page 。而varchar每次存储还得移动 varchar 会单独存储一个字节,保存长度。 [ ](https文章 · 2026/07/03go-1-19-atomic-内存对齐go 1.19 atomic 内存对齐 此外,atomic包新增的Int64和Uint64类型还有一个特质,那就是Go保证其地址可以自动对齐到8字节上(即地址可以被64整除),即便在32位平台上亦是如此,这可是连原生int64和uint64也尚无法做到的[14]。 go101[15]在推特上分享了一个基于atomic文章 · 2026/07/03kafka-rebalance-问题kafka rebalance 问题 Kafka 是我们最常用的消息队列,它那几万、甚至几十万的处理速度让我们为之欣喜若狂。但是随着使用场景的增加,我们遇到的问题也越来越多,其中一个经常遇到的问题就是:rebalance(重平衡)问题。 但是要想了解 rebalance,那就得先了解消费组(consumer group文章 · 2026/07/03kafka-分区分配策略-partition-strategykafka 分区分配策略 partition strategy RangeAssignor 假设n = 分区数 / 消费者数量,m = 分区数 % 消费者线程数量,那么前m个消费者每个分配n+1个分区,后面的(消费者线程数量 m)个消费者每个分配n个分区。如果多个topic, RoundRobin RoundRobin文章 · 2026/07/03如何设计一个高并发如何设计一个高并发文章 · 2026/07/03you-can-use-hardhat-to-compile-and-deploy-your-contracts-and-then-use-truffle-tyou can use Hardhat to compile and deploy your contracts, and then use Truffle t you can use Hardhat to compile and deploy your contracts, and then use Truffle文章 · 2026/07/03golang-xml-parsegolang xml parse 主要是用到了这个库 "github.com/beevik/etree" package main import ( "fmt" "os" "path/filepath" "strings" "github.com文章 · 2026/07/03所有api接口都用post-还是只有get-post-or-restful所有API接口都用POST? 还是只有GET/POST or Restful 看到一篇讲的不错的,记录下 ps: 我们目前只用了GET / POST 一定要纠结下 POST/GET,以及 Restful。好吧,Restful 能明确列出来的好处,就那么几点(如果有疏漏的请在评论区里补充)。 Restful优点如下: 表文章 · 2026/07/03too-many-open-files-错误深度分析Too many open files 错误深度分析 原文 0x03 它的产生原因是什么? 本质上来讲,产生这个错误的原因,就是内核为进程分配的fd不够用了。 在linux的世界里,一些皆文件,当我们做打开文件、创建so文章 · 2026/07/03influxdb-vs-prometheusInfluxDB vs Prometheus info InfluxDB : 仅仅是时序数据库 Prometheus : 是一个监控系统,它不仅仅包含了时间序列数据库,还有的抓取、检索、绘图、报警的功能 获取方式 InfluxDB : push Prometheus : pull [ ](文章 · 2026/07/03云计算-未完云计算(未完) 云计算的运营模式: 公有云:由云服务提供商自己搭建,我们作为使用者去使用他们所提供的资源; 私有云:通常是企业或单位内部自己搭建的一个数据中心 混合云:核心数据放在私有云上, 其他业务放在公有云上; 行业云:根据不同行业的特点来划分:政务云、医疗云、运输云; 云计算的服务模式: 基础设施即服务 IAAS文章 · 2026/07/03使用golang-全文搜索引擎-zincsearch使用golang 全文搜索引擎 zincsearch 全文搜索引擎有许多,其中最出名的是elasticsearch, 无论是性能还是体验都是最顶尖的,但是对小应用来不友好,因为小应用的硬件资源比较少,所以能够通过库/模块的方式内置在应用中会是比较好的选择,就像sqlite3一样。 golang版本轻量级的 [zincs文章 · 2026/07/03cmd-tcpdump-未完待续CMD tcpdump (未完待续) tcpdump i en0 指定网卡 A 已ASCII 形式打印. 如,向mysql服务端传输的sql语句就是以ASCII码形式进行传输。我们就可以使用A参数查看传输的具体sql语句。 w /tmp/tp.log 数据写入指定文件后,方便使用其他数据包分析软件进行分析。如 wire文章 · 2026/07/03如何保证api接口防重-幂等如何保证API接口防重,幂等 看了几篇,就是redis 简单实用, 拿token + route api + md5(请求参数)(如果有验签,直接用文章 · 2026/07/03completablefuture-常用示例CompletableFuture 常用示例 CompletableFuture<String completableFuture = new CompletableFuture<String(); String result = completableFuture.get() // get() 方法会一直阻塞直到 F文章 · 2026/07/03快速发起100w-http请求-apache-httpasyncclient快速发起100w http请求 Apache HttpAsyncClient httpasyncclient 是 Apache 提供的一个 HTTP 的工具包,主要提供了 reactor 的 io 非阻塞模型,实现了异步发送 http 请求的功能。 用pool概念的话,每个线程是阻塞等待结果的 。 类比: jedis文章 · 2026/07/03httpasyncclient-引起的内存泄漏问题httpasyncclient 引起的内存泄漏问题 List<HttpUriRequest cache = new ArrayList<HttpUriRequest(n); for (int i = 0; i < n; i++) { HttpGet request = new HttpGet("文章 · 2026/07/03如何高效优雅的使用java枚举enum如何高效优雅的使用java枚举ENUM 阿里开发者 枚举在系统中的地位不言而喻,状态、类型、场景、标识等等,少则十几个多则上百个,相信以下这段代码很常见,而且类似的代码到处都是,目标:消除这类冗余代码。 / 根据枚举代码获取枚举 / public static OrderStatus getByCode(String文章 · 2026/07/03go-websocket几个库go websocket几个库 fasthttp/websocket ⭐⭐⭐⭐⭐接过了gorilla/websocket,继续维护 gorilla/websocket❎ nhooyr/websocket ❎ lxzan/gws gobwas/ws 测试讨论:文章 · 2026/07/03protostuff-序列化java对象ProtoStuff 序列化java对象 序列化后存json 问题 速度慢,cpu占用高 存储空间大,浪费资源 决定使用 ProtoStuff 代替 Jackson 框架 ProtoStuff 是一种基于 Google Protocol Buffers(protobuf)协议的序列化和反序列化库,它可以将 Java 对文章 · 2026/07/03mysql事务隔离-事务4个特性acidmysql事务隔离 + 事务4个特性ACID MySQL 的事务隔离级别一共有四个,分别是读未提交、读已提交、可重复读以及可串行化。 读未提交 xxx 读已提交(READ COMMITTED) [ ](文章 · 2026/07/03mysql-index-merge-一个死锁案例mysql index merge 一个死锁案例 看过程是因为 交叉索引 接着查看了 SQL 执行计划,发现使用了 indexmerge。indexmerge 是 MySQL 5.1 后引入的一项索引合并优化技文章 · 2026/07/03go-校验实现了全部接口go 校验实现了全部接口 go 校验实现了全部接口 type EventHandler interface { OnOpen(c Conn) context.Context OnRead(ctx context.Context, c Conn) OnClose(ctx context.Context, c Conn)文章 · 2026/07/03springboot-自定义参数注解springboot 自定义参数注解 pom import < 根据 JSR 380 规范,validationapi依赖项包含标准验证 API <dependency <groupIdjavax.validation</groupId <artifactIdvalidationapi</artifactId <ver文章 · 2026/07/03springboot-过滤器filter-vs-拦截器interceptor-vs-切片aspect-详解springboot 过滤器Filter vs 拦截器Interceptor vs 切片Aspect 详解 csdn 总结的,挺好的 更详细内容: 拦截机制有三种: 1. 过滤器(Filter)能拿到htt文章 · 2026/07/03redis接口限流-注解方式-aopRedis接口限流 注解方式 AOP Redis 除了做缓存,还能干很多很多事情:分布式锁、限流、处理请求接口幂等性。。。太多太多了~ 今天想和小伙伴们聊聊用 Redis 处理接口限流,这也是最近的 TienChin 项目涉及到这个知识点了,我就拎出来和大家聊聊这个话题,后面视频也会讲。 1. 准备工作 首先我们创建一文章 · 2026/07/03aop-方式增加log注解-记录项目日志AOP 方式增加log注解,记录项目日志 非普通请求返回日志,普通日志可以直接在filter 或者interceptor aftercomplete中记录 eg: 审计日志,admin等,入库 定义log注解 @Target({ElementType.PARAMETER, ElementType.METHOD}) @R文章 · 2026/07/03可重复读-request-repeatedlyrequestwrapper可重复读 Request RepeatedlyRequestWrapper [开源项目](文章 · 2026/07/03spring-aop在项目中的典型应用场景Spring AOP在项目中的典型应用场景 在日常的开发中,有很多重复的代码,我们总是希望将之简化,AOP 就是一个非常常用的简化手段。简化的思路一般是这样: [ ](文章 · 2026/07/03springboot常用注解之-retryable-重试策略SpringBoot常用注解之@Retryable 重试策略 在实际工作中, 重处理是一个非常常见的场景, 比如: 1. 发送消息失败。 2. 调用远程服务失败。 3. 争抢锁失败。 这些错误可能是因为网络波动造成的, 等待过后重处理就能成功. 通常来说, 会用 try/catch,while 循环之类的语法来进行重处文章 · 2026/07/03game-状态同步-帧同步game 状态同步 帧同步 介绍过网游三种常见的网络架构:C/S架构,P2P架构,还有一种C/M架构,分别如下图所示。 网络游戏中通过同步机制来保证文章 · 2026/07/03谈谈分布式系统中的补偿机制如何设计谈谈分布式系统中的补偿机制如何设计 一、关于业务补偿机制 1、什么是业务补偿 2、业务补偿设计的实现方式 二、关于回滚 1、显示回滚 2、回滚的实现方式 三、关于重试 1、重试的使用场景 2、重试策略 3、重试时的注意事项 四、业务补偿机制的注意事项 1、ACID 还是 BASE 2、业务补偿设计的注意事项 我们知道,文章 · 2026/07/03网站全变灰色-css网站全变灰色 css [原文](文章 · 2026/07/03新一代分布式任务调度框架-powerjob新一代分布式任务调度框架 PowerJob xxljob可以视为第二代任务调度框架,在一定程度上解决了Quartz的不足,在过去几年中是个非常优秀的文章 · 2026/07/03java-juc-队列汇总java JUC 队列汇总 一、阻塞队列介绍 二、3 种类型的 BlockingQueue 三、阻塞队列成员介绍 四、BlockingQueue 的方法 五、Queue 中 remove/poll, add/offer, element/peek 区别 java6增加了文章 · 2026/07/03rabbitmqrabbitmq 首先什么是 MQ MQ 全称是 Message Queue, 即消息对列!消息队列是典型的:生产者、消费者模型文章 · 2026/07/03最新mj最新MJ 最新MJ Midjourney 5.2文章 · 2026/07/03得物社区亿级-es-数据搜索性能调优实践-转得物社区亿级 ES 数据搜索性能调优实践(转) ES 搜索优化, 一般按产品需求,需要 order by createtime desc limit 10 再进行翻页 方案: 开启索引排序 代价 就是写入会慢点 { "settings": { "index": { "sort.field": "publishtime"文章 · 2026/07/03java-线程池拒绝策略java 线程池拒绝策略 前言 谈到 java 的线程池最熟悉的莫过于 ExecutorService 接口了,jdk1.5 新增的 java.util.concurrent 包下的这个 api,大大的简化了多线程代码的开发。而不论你用 FixedThreadPool 还是 CachedThreadPool 其背后实现文章 · 2026/07/03golang-redis事务golang redis事务 redis事务可以一次执行多个命令, 并且带有以下两个重要的保证: 事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。 事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。 下面介绍golang r文章 · 2026/07/03dependencies-devdependencies-package-json区别dependencies devdependencies package.json区别文章 · 2026/07/03etcETC ETC文章 · 2026/07/03spring-boot引起的-堆外内存泄漏-排查及经验总结Spring Boot引起的“堆外内存泄漏”排查及经验总结 背景 为了更好地实现对项目的管理,我们将组内一个项目迁移到MDP框架(基于Spring Boot),随后我们就发现系统会频繁报出Swap区域使用量过高的异常。笔者被叫去帮忙查看原因,发现配置了4G堆内内存,但是实际使用的物理内存竟然高达7G,确实不正常。JVM文章 · 2026/07/03产研产研 产研流程文章 · 2026/07/03旧文章-1087旧文章 1087文章 · 2026/07/03git-config-authorgit config author modify file cd .git vim config // add this [user] name = xxxx email = xxccc.oo@nihao.com cmd 模式 配置 git config global user.name "username" git文章 · 2026/07/03shell-循环请求shell 循环请求 for i in {1..1000};do curl 127.0.0.1:9002/num$i; sleep 1 ;done shell循环测试 python3 m http.server 30001 python3 m http.server 30002 启动2个http server ngin文章 · 2026/07/03goland-test-run-成功-但debug一直转圈goland test run 成功,但debug一直转圈 ➜ /Applications/GoLand.app/Contents/plugins/go/lib/dlv/mac 找到dlv 命令,复制保存。 官方debug 工具 : go insta文章 · 2026/07/03http-sql2struct-atotoa-com数据库 DDL转golang struct [](文章 · 2026/07/03js发送跨域post请求出现两次请求的解决办法JS发送跨域Post请求出现两次请求的解决办法 所有跨域的 js 在提交 post 请求的时候,如果服务端设置了可跨域访问 [] 1 public static文章 · 2026/07/03千万im系统-架构设计思路千万IM系统 架构设计思路 可看看里面 包含哪些,有个大概思路 实际没人上来就这么整,谁保证你项目上来就千万用户。市场钱多另论 业务背景: 创业公司打造安全IM工具,主打私密聊天和严格控制好友数量 技术团队使用Java,并具备MySQL文章 · 2026/07/03concurrenthashmap-为何不能插入-null-hashmap-为何可以ConcurrentHashMap 为何不能插入 null?HashMap 为何可以? 整个提问看着非常复杂,其实归纳来说就是两个问题: 1. Co文章 · 2026/07/03oauth-2-0-授权系统设计-以微信登录为例OAuth 2.0 授权系统设计(以微信登录为例) 4A系统是统一安全管理平台解决方案,指 认证Authentication、账号Account、授权Authorization、审计Audit,中文名称为 统一安全管理平台解决方案。 怎么才算是安全?两部分: 1. 怎么证明你是你? Authentication 即 身文章 · 2026/07/03