- 博客(116)
- 资源 (2)
- 收藏
- 关注
原创 CORS,全称(Cross-origin resource sharing)(跨域资源共享)
PHPheader("Access-Control-Allow-Origin:http://localhost:911");header("Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD");header("Access-Control-Allow-Headers: Authorization, X-Requested-Wi
2024-07-10 13:06:16
214
原创 apisix http请求转发插件by lua
1 nginx是不读请求体的,需要在配置文件中打开,或者读取前调用ngx.req.read_body(),然后通过local data = ngx.req.get_body_data()获取。2 header转发时如果原请求里有"accept-encoding"这样支持压缩的声明返回的是二进制,记录日志不方便读取要单独处理下。用户请求想要生产的流量打到原有服务的同时,打到新开发的服务上试一下。
2024-03-12 10:30:15
655
原创 go-zero 小知识
这允许你的应用在不同的环境(如开发、测试、生产)中使用不同的配置,而无需更改代码。只需设置相应的环境变量即可。特别适合调试环境或测试环境写代码,怕上线后忘记注释某些代码的场景使用。在json标签里还有一些选项,如。其中env挺有实用价值。
2024-02-01 14:15:16
434
原创 docker 挂载的文件同步问题 及 telnet redis账号可用
5 成功 OK 失败 -WRONGPASS invalid username-password pair or user is disabled.2 把文件权限改成666,重启后再编辑就可以了(非666权限vi编辑时产生wap副本Inode替换)docker启动后,宿主机使用vim修改配置不能同步到容器内。4 键入 auth 111111 # 密码。1 通过echo 写入文件。
2024-01-20 12:01:21
650
原创 apisix 日志分割及时区问题
max_kept: 168 # max number of log files will be kept 24 * 7,保存7天的。interval: 3600 # rotate interval (unit: second) 按小时分。日志分割在apisix_conf的config文件中添加。
2024-01-17 10:52:24
792
原创 apisix shell批量更新upstream routes
修改所有的上游配置http改为https(host port修改参考注释)修改路由中的method和plugins,可以覆盖也可以追加。
2024-01-05 17:04:11
530
原创 apisix 官方example,单机docker的etcd备份和恢复
ETCDCTL_API=3 docker exec -it etcd etcdctl snapshot restore "/bitnami/etcd/backup.db" --endpoints=":2379" --data-dir=/bitnami/etcd/data, 然后chmod data 777。etcd配置就是官方example,很多文档都是集群k8s的,不能照搬,记录下官方试例的过程,1 在./etcd_data目录下创建data,chmod 777,启动恢复时用。
2024-01-05 16:56:35
1241
原创 install YAPI & MongoDB & 备份mongo & 安装yapi插件cross-request 笔记
恢复数据 mongorestore -h dbhost -d dbname --directoryperdb dbdirectory。带条件查看 db..find({ : })限制返回条数 db..find().limit()查看数据 db..find()登录mongo mongo -u root -p 123456。docker 运行 mongodb。
2023-11-15 20:02:37
977
原创 golang 面试
区块链中的共识算法有多种,其中最常见的包括工作量证明(Proof of Work,PoW)、权益证明(Proof of Stake,PoS)、权益证明加权(Delegated Proof of Stake,DPoS)、权益证明时间权重(Proof of Elapsed Time,PoET)等。总结来说,公有链是开放的、去中心化的,私有链是受限制的、中心化的,而联盟链是介于两者之间的,由多个实体或组织共同管理和控制。不同类型的链适用于不同的场景和需求,并具有不同的安全性、可扩展性和隐私性等特点。
2023-10-27 13:44:33
334
原创 kafka rabbitmq 详细对比
kafka:采用zookeeper对集群中的broker,consumer进行管理,可以注册topic到zookeeper上,通过zookeeper的协调机制,producer保存对应的topic的broker信息,可以随机或者轮询发送到broker上,producer可以基于语义指定分片,消息发送到broker的某个分片上。从而来维护和监控你存储的数据的状态变化。RabbitMQ:支持消息的可靠的传递,支持事务,不支持批量操作,基于存储的可靠性的要求存储可以采用内存或硬盘,吞吐量小。
2023-09-20 09:22:06
635
原创 计算机存储 和 零拷贝
7 程序->CPU->寄存器->CREATE VA(VPN虚拟页号+ VPO虚拟偏移量)->MMU->PTE(FIRST SEARCH TLB)->PTE(有效位1命中)->PA Physical Address(PPN * 页长度4K + VPO)->物理内存->DONE。->PTE(有效位未命中)->exception->sys catch->repair->goto PTE 1。CPU->寄存器->MMU->TLB缓存近期访问的PTE->主存的虚拟页表->物理内存页号PPN+VPO->物理内存。
2023-09-19 22:10:19
114
原创 进程 线程 协程
同步、异步同步是有序运行,同步操作时后面的任务要等待当前任务返回才运行;异步则是相反,其他任务不需要等待当前调用返回,结果通常依靠事件、回调返回。是同步或轮询查看事情进展,还是等异步通知阻塞、非阻塞阻塞状态时,当前线程无法从事其他任务,只有条件就绪才能继续;非阻塞是不管io是否完成都直接返回,相应操作在后台继续处理。等着完成或是不等1、进程进程是具有一定独立功能的程序关于某...
2023-09-19 21:28:54
133
1
原创 Golang slice 通过growslice调用nextslicecap计算扩容
先来看一段代码code: e := []int64{1, 2, 3} fmt.Println("cap of e before:", cap(e)) e = append(e, 4, 5, 6, 7) fmt.Println("cap of e after:", cap(e))output:cap of e before: 3cap of e after: 8为什么容量是8?append了的4个元素,如果是原来的2倍也才6个,小于长度7,所以容量赋值长度7内存分配
2023-09-18 20:27:46
254
原创 golang 实现带令牌限流的JWT demo
demo里提供了三个接口,认证取token,刷新token,获取信息,token过期前也会在header里写上新token(便于客户端更换)
2023-09-17 14:21:32
374
原创 PHP openssl_encrypt openssl_decrypt 尝试
PHP openssl_encrypt openssl_decrypt 尝试:可以用来做数据的加密和解密,比如手机号,关键数据等
2022-06-10 15:34:54
542
原创 k8s 常用命令
kubectl –help 查看帮助kubectl --version //查看版本kubectl get po //查看所有podskubectl get nodes //查看所有nodeskubectl get pods -o wide //查看所有的pods更详细些kubectl get nodes -o widekubectl get po --all-namespa...
2019-09-19 20:06:51
204
原创 docker常用命令
dockerdocker psdocker rm containeriddocker stopdocker imagesdocker container lsdocker pull hub.c.163.com/library/redis:latest //redis国内镜像docker run -d -p local port:container port -v /local pat...
2019-08-28 10:27:49
139
原创 git workflow
1 设置主仓库只能merge2 fork主仓库3 clone fork仓库4 git remote add base[自定义] path[主仓库] git remote -v 查看源添加情况5 git fetch base[主仓库]6 git checkout --track base[主仓库]/<name>7 正常开发提交8 git push origin[fork...
2019-08-28 10:25:32
1349
1
原创 Git 存储版本学习
Git存储我们都知道Git把所有修订版本和历史信息存放在工作目录根目录下一个名为.git的隐藏子目录中。实际上在这个对目录下的对象库(.git/objects)被组织及实现成一个内容寻址的存储系统。具体而言,Git会根据对象的内容应用SHA1得到的散列值作为全局的唯一标识(Git追踪的是内容而不是文件)。那它具体是如何维护管理这些信息的一个文件修改后是全量记录还是增量基础对象类型...
2019-04-26 09:18:40
704
转载 有用的文章
Golang源码探索(二) 协程的实现原理https://yq.aliyun.com/articles/573818?spm=a2c4e.11153940.blogcont573817.22.79345634YKQ8aT使用Delve进行Golang代码的调试https://yq.aliyun.com/articles/57578?spm=5176.10695662.1996646101.s...
2018-09-07 18:27:42
182
原创 Nginx && PHP 搭建 管理 配置
centos 7mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 备份源镜像wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 拉取新源文件 yum instal...
2018-08-09 15:07:37
172
原创 Java 学习笔记一
Java 平台理解跨平台相对开发者而言做到了一次编码到处使用,JVM层面封装了系统的API,减少了调用不同操作系统的适配工作运行编译javac 编译源代码成字节码 jvm 加载字节码文件逐行解释执行jit 基于运行分析,热点代码编译成本地机器码(提高编译效率,大部分冷代码解释运行)方法级aot 直接编译机器码GC垃圾回收内存堆 栈 方法区基本规范1大小写敏感,由字母,数字,下划线和美元符组成,不能...
2018-06-15 10:06:21
175
原创 Go 测试笔记
简介“testing“ Go自带测试框架,引入“testing“ 同时编写相关测试用例,代码放保存在被测试包的目录下,文件以_test.go结尾,通过go test执行,可以指定特定的测试文件或函数。 测试用例单元测试*testing.T 命名TestXxx压力测试*testing.B 命名BenchmarkXxx 循环体内使用testing.B.N测试控制,信息输出(用fmt或log -v就无效...
2018-03-09 10:28:12
313
原创 Nginx && PHP 搭建配置管理
centos 7mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 备份源镜像wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 拉取新源文件 yum install 安
2017-12-20 17:47:16
308
原创 性能测试,监视
PERF http://blog.youkuaiyun.com/zhangskd/article/details/37902159perf record -F 99 -p PID -g — sleep 10perf script | ./stackcollapse-perf.pl > out.perf-foldedflame graph./flamegraph.pl out.per
2017-08-31 16:07:00
301
原创 PHP 闭包使用
function printStr() { $str = 1; return function()use(&$str){echo $str++;};}function calculate($cart = array()) {|...$amt = 0;|...$amt_tax = 0;|...$amt_price = 0;|...$taxRat
2017-08-03 17:02:04
307
原创 go 遇到的坑
1作用域在函数内使用:=给全局变量赋值时,如果同名,go会用一个新建变量覆盖,通过打印指针查看2多协程多个goroutine操作变量存在争抢,且传指针是不安全的3并行,并发并行同时进行,go自动给每个能用的物理处理器上绑定一个逻辑处理器,通过调度器将全局队列中等待执行的goroutine移到逻辑处理器对应的本地队列中等待执行runtime.GOMAXPROCS(n) 其中n是整数,...
2017-07-13 10:21:31
483
原创 aes详解
摘要字节替代(SubBytes)S和S-1(g正逆)分别为16x16的矩阵,字节代替的主要功能是通过S盒完成一个字节到另外一个字节的映射。行移位(ShiftRows)行移位的功能是实现一个4x4矩阵内部字节之间的置换。实际移位的操作即是:第一行保存不变,第二行循环左移1个字节,第三行循环左移2个字节,第四行循环左移3个字节。列混淆(MixColumns)
2017-06-30 15:36:03
759
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人