Unraid安装Acme.sh
Unraid安装Acme.sh
文档地址:https://github.com/acmesh-official/acme.sh/wiki/说明#6-关于修改reloadcmd
创建要安装的目录1mkdir /mnt/user/appdata/acme
安装acme.sh1curl https://get.acme.sh | sh -s email=my@example.com
迁移acme.sh到安装目录1mv /root/.acme.sh/ /mnt/user/appdata/acme/
修改配置1vim /mnt/user/appdata/acme/.acme.sh/acme.sh.env
修改内容:
12export LE_WORKING_DIR="/mnt/user/appdata/acme/.acme.sh"alias acme.sh="/mnt/user/appdata/acme/.acme.sh/acme.sh"
删除定时任务1crontab -e
删除的内容:
1"/root/.acme.sh& ...
Openwrt旁路由的网络模式使用keepalived双机热备
设备情况
1.安装keepalied
2.主路由配置keepalived
3.旁路由配置
4.修改路由器配置
设备情况
设备信息
设备型号
设备IP
主路由
华硕AC-GT5300
192.168.43.1
旁路由
openwrt
192.168.43.2
虚拟Ip
192.168.43.3
旁路由模式网关互指的缺点,如果旁路由死机,那么全部设备都无法上网,keeoalived则可以解决这个问题
1.安装keepalied主路由和旁路由都执行命令
opkg update
opkg install keepalived
2.主路由配置keepalived
查看主路由ip为192.168.43.1的网卡信息 1ifconfig
有上图可见,192.168.43.1的网卡名字为br0
修改/opt/etc/keepalived/keepalived.conf配置 1234567891011121314151617181920212223242526272829303132global_defs { # 路由id:当前安装keepali ...
Java使用singleflight防止缓存击穿
缓存击穿
在使用缓存时,我们往往是先根据key从缓存中取数据,如果拿不到就去数据源加载数据,写入缓存。但是在某些高并发的情况下,可能会出现缓存击穿的问题,比如一个存在的key,在缓存过期的一刻,同时有大量的请求,这些请求都会击穿到DB,造成瞬时DB请求量大、压力骤增。
一般解决方案首先我们想到的解决方案就是加锁,一种办法是:拿到锁的请求,去加载数据,没有拿到锁的请求,就先等待。这种方法虽然避免了并发加载数据,但实际上是将并发的操作串行化,会增加系统延时。
singleflight
singleflight是groupcache这个项目的一部分,groupcache是memcache作者使用golang编写的分布式缓存。singleflight能够使多个并发请求的回源操作中,只有第一个请求会进行回源操作,其他的请求会阻塞等待第一个请求完成操作,直接取其结果,这样可以保证同一时刻只有一个请求在进行回源操作,从而达到防止缓存击穿的效果。下面是参考groupcache源码,使用Java实现的singleflight代码:
1234567891011121314151617181920212 ...
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: %+ ...
Nignx知识终结
Nignx知识终结[TOC]
nignx基本配置文件说明nginx.conf配置结构
main 全局配置
event 配置工作模式和连接数
http http模块相关配置
server虚拟主机配置,可以配置多个
location 路由规则,表达式
upstream 集群,内网服务器
nginx.conf配置说明nginx.conf默认所在位置/usr/local/nginx/conf/
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613 ...
KeepAlived使用教程
[TOC]
KeepAlived使用教程核心配置文件说明1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889global_defs { ## 路由id:当前安装keepalived的节点主机标识符,保证全局唯一 router_id keep_131 notification_email { #指定keepalived在发生切换时需要发送email到的对象,一行一个 monitor@3evip.cn } notification_email_from monitor@3evip.cn #指定发件人 smtp_server stmp.3evip.cn #指定smtp服务器地址 smtp_connect_timeout 30 # ...
kubernetes-更新calico网络插件
kubernetes-更新calico网络插件
Calico版本信息: https://docs.projectcalico.org/releasesCalico部署教程: https://docs.projectcalico.org/getting-started/kubernetes/self-managed-onprem/onpremises
卸载版本的calico
卸载calico镜像
123cd /etc/kubernetes/addonskubectl delete -f calico-rbac-kdd.yamlkubectl delete -f calico.yaml
清除cni缓存信息
1rm -rf /var/lib/cni/*
安装新版本Calico (3.13)
下载yaml文件
1wget https://docs.projectcalico.org/v3.10/manifests/calico-typha.yaml -o calico-typha-3-13.yaml
修改calico-typha-3-13.yaml文件内容
CALICO_IPV4POOL_ ...
黑群晖 Active Backup for Business 套件激活方法
黑群晖 Active Backup for Business 套件激活方法群晖版本6.1
1. 安装Active Backup for Business套件到套件中心安装Active Backup for Business
2. 查询群晖序列号
到【控制面板】 - 【信息中心】 找到【产品序列号】并记下来
3. 激活
测试群晖登陆链接
1https://IP地址:5001/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=1&account=登陆用户名&passwd=登陆密码
返回的结果:
1{"success":true}
激活
1https://IP地址:5001/webapi/entry.cgi?api=SYNO.ActiveBackup.Activation&method=set&version=1&activated=true&serial_number="序列号"
返回结果是: ...
Active Backup for Business 备份linux文件
Active Backup for Business 备份linux文件1.添加需要备份的linux服务器
SMB为备份windows系列的,rsync则是用于备份linux系列的
可以选择相关的链接服务器的方式,我这里使用的是ssh密钥+rsync的方式进行链接备份,但是无论选择哪种都需要目标服务器先安装rsync
选择备份的模式,我这里选择增量备份
选择要备份的文件夹,可以选择多个,我这里就备份opt的文件夹
填写本次备份任务的名字,要备份到本地路径的位置,还有备份计划
检查是否填写正确
备份计划创建成功
如果绝对需要备份一份到云存储,可以在本次备份计划后面在添加一个Cloud Sync的备份计划
群晖Nas备份linux服务器到usb和公有云
群晖Nas备份linux服务器到usb和公有云1.安装套件Active Backup for Business:linux文件备份工具
Hyper Backup:文件备份工具
Cloud Sync:公有云备份工具
Hyper Backup Explorer:用于(windows/linux/mac)浏览Hyper Backup的备份信息
下载地址:Hyper Backup Explorer
注意点:如果Hyper Backup的公有云支持项中支持你的公有云则无需在使用Cloud Sync
2. Active Backup for Business备份linux文件总体教程地址:https://blog.caihc.site/posts/da551c6a/
需要改变的地方是:备份模式为镜像
3. Hyper Backup套件备份
选择数据备份任务
选择图中指点的地方
需要备份的目的文件夹和名字
选择需要备份的源文件夹
备份计划
到这里相关设置基本完毕
3. Cloud Sync备份如果Hyper Backup没有支持你的公有云,例如百度网盘
选择你要备 ...