Windows切换Node版本教程
Windows 下 fnm 安装使用教程1. 安装 fnm方式一:使用 winget(推荐) 1winget install Schniz.fnm 方式二:使用 Scoop 1scoop install fnm 方式三:使用 Chocolatey 1choco install fnm 方式四:手动下载从 GitHub Releases 下载:https://github.com/Schniz/fnm/releases 2. 配置环境变量(重要!)安装后必须配置 shell 集成,否则 fnm use 切换版本后不会生效。 PowerShell 配置12# 编辑配置文件notepad $PROFILE 添加以下内容: 1fnm env --use-on-cd --shell power-shell | Out-String | Invoke-Expression 如果没有配置文件,先创建: 1New-Item -Path $PROFILE -Type File -Force CMD 配置CMD 不支持自动加载,需要手动设置环境变量。安装时选择”Add to PATH”选...
Brave浏览器使用教程
禁用Brave浏览器的加密货币功能和臃肿功能1 - 建个记事本文件,复制这段内容: 123456Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\Software\Policies\BraveSoftware\Brave]"BraveRewardsDisabled"=dword:00000001"BraveWalletDisabled"=dword:00000001"BraveVPNDisabled"=dword:00000001"BraveAIChatEnabled"=dword:00000000 2 - 保存成 .reg 文件 3 - 运行你刚创建的文件 Brave 更新失败(Error code 3: 0x80040154)解决方法问题打开 关于 Brave 页面提示: 12检查更新时出错:无法启动更新检查(错误代码为 3: 0X80040154 -- system level) 解决方法 无需卸载 Brave 浏览器,仅重建 U...
Docker配置指南
配置文件位置: /etc/docker/daemon.json 日志12"log-driver": "json-file","log-opts": {"max-size":"100m", "max-file":"3"} 参数说明: log-driver: 指定了 Docker 容器将使用的日志驱动程序。Docker 提供了多种内置的日志驱动,如 json-file, syslog, journald, gelf, fluentd 等等。json-file 是默认的日志驱动,它会以 JSON 格式保存日志到文件中。 log-opts: 用来设置日志驱动的具体选项。不同的日志驱动有不同的选项,下面是你提供的配置及其解释 max-size: 这个选项限制单个日志文件的最大大小。一旦达到这个大小,Docker 将创建一个新的日志文件,并继续记录新的日志条目 max-file: 这个选项指定了可以保留的日志文件的最大数量。当超过...
Debian安装Docker教程
如果你过去安装过 docker,先删掉1for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do apt-get remove $pkg; done 安装必要软件包123apt updateapt upgrade -yapt install curl vim wget gnupg dpkg apt-transport-https lsb-release ca-certificates 加入Docker 的 GPG 公钥和 apt 源Docker官方的源 12curl -sSL https://download.docker.com/linux/debian/gpg | gpg --dearmor > /usr/share/keyrings/docker-ce.gpgecho "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] https://d...
Docker问题汇总
1. Docker容器和宿主机时间同步问题 原因:宿主机时区和Docker容器的不一致,导致两者相差8小时 解决方法一: 启动容器的时候指定启动参数,自动挂载localtime文件到容器内 1docker run --name <name> -v /etc/localtime:/etc/localtime:ro .... 解决方法二: 把时区设置加入到Dockerfile中 1234# CentOSRUN echo "Asia/shanghai" > /etc/timezone;# UbuntuRUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 特殊镜像的时区,如alpine 在解决方法一或二中加入一下命令 1apk add -U tzdata 7. volume权限问题 执行命令的时候加入-u [当前linux用户名] 1docke -run -u root .... 8. docker容器无法通过IP访问宿主机:No route to hostcentos ...
Docker远程访问加入Tsl安全验证
Tsl脚本123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101#reated by L.STONE <web.developer.network@gmail.com># -------------------------------------------------------------# 自动创建 Docker TLS 证书# -------------------------------------------------------------# 以下是配置信息# --[BEGIN]------------------------------CODE="docker"IP="服务器ip"...
Go错误处理最佳实践
Go异常类型panic 在程序启动的时候,如果有强依赖的服务出现故障时 panic 退出 在程序启动的时候,如果发现有配置明显不符合要求, 可以 panic 退出(防御编程) 其他情况下只要不是不可恢复的程序错误,都不应该直接 panic 应该返回 error 在程序入口处,例如 gin 中间件需要使用 recover 预防 panic 程序退出 在程序中我们应该避免使用野生的goroutine 如果是在请求中需要执行异步任务,应该使用异步 worker ,消息通知的方式进行处理,避免请求量大时大量 goroutine 创建 如果需要使用 goroutine 时,应该使用同一的 Go 函数进行创建,这个函数中会进行 recover ,避免因为野生 goroutine panic 导致主进程退出 1234567891011func Go(f func()){ go func(){ defer func(){ if err := recover(); err != nil { log.Printf("panic: %...
Java使用singleflight防止缓存击穿
缓存击穿 在使用缓存时,我们往往是先根据key从缓存中取数据,如果拿不到就去数据源加载数据,写入缓存。但是在某些高并发的情况下,可能会出现缓存击穿的问题,比如一个存在的key,在缓存过期的一刻,同时有大量的请求,这些请求都会击穿到DB,造成瞬时DB请求量大、压力骤增。 一般解决方案首先我们想到的解决方案就是加锁,一种办法是:拿到锁的请求,去加载数据,没有拿到锁的请求,就先等待。这种方法虽然避免了并发加载数据,但实际上是将并发的操作串行化,会增加系统延时。 singleflight singleflight是groupcache这个项目的一部分,groupcache是memcache作者使用golang编写的分布式缓存。singleflight能够使多个并发请求的回源操作中,只有第一个请求会进行回源操作,其他的请求会阻塞等待第一个请求完成操作,直接取其结果,这样可以保证同一时刻只有一个请求在进行回源操作,从而达到防止缓存击穿的效果。下面是参考groupcache源码,使用Java实现的singleflight代码: 1234567891011121314151617181920...
Java GC总结
GC日志启动配置123456789101112131415161718192021# 打印gc详情-XX:+PrintGCDetails # 输出GC的时间戳(以日期的形式,如 2017-09-04T21:53:59.234+0800)-XX:+PrintGCDateStamps # 打印对象分布,分析 GC 时的晋升情况和晋升导致的高暂停-XX:+PrintTenuringDistribution # 每次发生 GC 时,对比一下 GC 前后的堆内存情况-XX:+PrintHeapAtGC # 打印Reference处理信息,强引用/弱引用/软引用/虚引用/finalize 方法检测-XX:+PrintReferenceGC # 打印STW时间,暂停时间是 GC 最重要的指标-XX:+PrintGCApplicationStoppedTime # GC日志输出的文件路径-Xloggc:/path/to/gc.log# 开启日志文件分割-XX:+UseGCLogFileRotation # 最多分割几个文件,超过之后从头开始写-XX:NumberOfGCLogFiles=7# 每...
Jenkins安装教程
1.创建目录12mkdir -p /opt/jenkins/jenkins_homemkdir -p /opt/jenkins/maven_repository 2.启动容器 启动脚本 12345678910111213docker run --name jenkins -u root \-d -p 8080:8080 -p 50000:50000 \--restart always \-v ${PWD}/jenkins_home:/var/jenkins_home \-v /var/run/docker.sock:/var/run/docker.sock \-v $(which docker):/usr/bin/docker \-v /etc/docker:/etc/docker \-v /etc/localtime:/etc/localtime \-v ${PWD}/ssh:/root/.ssh \-v ${PWD}/backup:/backup \-v $(which docker-compose):/us...









