07 2022 档案
摘要:很多人不理解 cmd 和 entrypoint 通过一个很简单的实验帮你理解 有条件的和我一起 实验室一 dockerfile 和docker run 优先级???? 新建一个docker-compose version: '3' services: alpine: container_name:
阅读全文
摘要:虚拟容器技术 2013年 AWS 和 IBM 的 OpenStack 和 VMware 的 Cloud Foundry 公有云的基础 OpenStack 技术: 虚拟机 vm 镜像: os镜像 体积: 大 语言: 基础平台 环境自己处理 Cloud Foundry 技术: namespace cgr
阅读全文
摘要:控制台查看 logs.SetLogger("console") logs.SetLogger(logs.AdapterConsole, `{"level":1,"color":true}`) 输出到文件 logs.SetLogger(logs.AdapterFile,`{"filename":"pr
阅读全文
摘要:符合OpenAPI规范 接口变更时,我们只需要更改对应的OpenAPI描述文件 让我们能专注于业务代码的开发 基础的OpenAPI描述文件 openapi version info description paths restfull paths endpoint(interface) Path I
阅读全文
摘要:SQL to struct 插件 :Convert SQL to GO Struct 使用: 右键 Convert SQL to GO Struc json to struct 插件 :Convert SQL to GO Struct 使用: 右键 Convert json to GO Struc
阅读全文
摘要:服务处理流程 ####关键点 服务器如何管理连接,获取输入数据 服务器如何处理请求 I/O多路复用 I/O多路复用是指使用一个线程来检查多个文件描述符(Socket)的就绪状态 select和poll函数,传入多个文件描述符,如果有一个文件描述符就绪,则返回,否则阻塞直到超时 得到就绪状态后进行真正
阅读全文
摘要:操作系统允许绕过 pagecache 直接存取文件 文件复制 磁盘 IO 应用是不可以操作文件的,需要驱动我们的操作系统内核来读取和写入文件 不使用零拷贝: 硬盘 -> 内核层的内存 -> 用户层的应用缓存 -> 内核层的内存 -> 硬盘 使用 零拷贝: 硬盘 -> 内核层的内存 -> 硬盘 网络I
阅读全文
摘要:原理 定义: 操作系统在读写文件的时候并不会直接写入磁盘,而是在内存申请一块缓存,先写入缓存 然后定时刷盘 刷盘时优化写入排序 来源:read、mmap 优势 I/O Scheduler 会将连续的小块写组装成大块的物理写从而提高性能 I/O Scheduler 会尝试将一些写操作重新按顺序排好,从
阅读全文
摘要:kafaka的写入很快 也很快 有啥秘诀 写入 Kafka磁盘顺序写保证写数据性能 Kafka的producer生产数据,要写入到log文件中,写的过程是一直追加到文件末端,为顺序写 Kafka 是不会删除数据的,它会把所有的数据都保留下来,每个消费者(Consumer)对每个 Topic 都有一个
阅读全文
摘要:kakfa 高可用的关键副本机制 副本的概念 kafka的replica包含leader与follower 读写都是leader 执行 副本的提交 同步复制 :全部的follower同步后才 提交 。可用性不好 异步复制: 只要leader拿到数据后立即提交 follower慢慢复制。一致性不好。
阅读全文
摘要:kafka 2.8 之前需要借助 zoopker 协调集群 >=2.8 kraft zoopker 选主 zookeeper四种节点类型: 持久: PERSIST PERSIST_SEQUENTIAL 瞬时 EPHEMERAL EPHEMERAL_SEQUENTIAL Watch 订阅后会先通知后得
阅读全文
摘要:官方推荐 [2.0] 来源 JVM Heap Sizes | Elastic Cloud Enterprise Reference [2.0] Elasticsearch clusters and JVM Heap Size The ideal heap size is somewhere belo
阅读全文
摘要:docker 网络 四种模式 容器核心问题 容器的IP地址分配 容器之间的相互通信 方式 最简单的方式 直接使用host网络 复用宿主网络协议 但是端口会冲突 容器自己的IP地址, 但是这样宿主导致路由,交换器感知不到容器IP,无法跨主机通讯 跨主机通讯 直接修改外部 网关路由配置 SDN结合 复用
阅读全文
摘要:写入字符串 cat > test.txt << EOF ewetrte fsdfgf dfghghj dsffgd hgfdwe EOF vim 查找 :%s/df/&/gn 使用grep grep -o "df" test.txt | wc -l awk #### 方法1 awk -F "df"
阅读全文
摘要:很多时候需要卡一个区间 就要判断包含边界情况 先说答案 包含 版本 mysql> SELECT VERSION(); + + | VERSION() | + + | 5.7.26 | + + 1 row in set (1.06 sec) 对象 :业务主键 mysql> select id from
阅读全文
摘要:我们有些orm 或者一些函数 between没提供 使用and 代替 select *from DemoTable where 15 <=Number and Number <= 80;
阅读全文
摘要:我们一般增量合伙全量同步的时候需要判断表是否为空 使用count(*) + limit 结论 limit 不生效 使用 limit SELECT 1 FROM table LIMIT 1; 使用 exsit SELECT EXISTS (SELECT 1 FROM table);
阅读全文
摘要:先说结论 可以生成 12种数据表 和 3种语言代码 数据库 mysql *oracale sqlsever *postgreSQL db2 *DM *gaussDB kingbase *maxcomuter *sqllite hive 语言 java C# *golang 导入已经存在的 pdman
阅读全文
摘要:我们在使用grpc经常需要调试检测 htpp 有postman grpc 也有工具 bloomPRC 下载地址 https://github.com/bloomrpc/bloomrpc 使用 导入 : 绿色的 + 图标 导入 xxx.proto 文件 筛选 出点击你的方法 漏斗图标 输入方法名 入参
阅读全文
摘要:有趣的问题 java php golang 设置时区 Asia/ChongQing Asia/Shanghai 先说答案 中国只是支持5个时区【1918 to 1949】 |Time offset | UTC+05:30 | UTC+06:00 |UTC+07:00 |UTC+08:00 |UTC+
阅读全文
摘要:我们经常需要获取前一一天 一个月等需求 ###自定义时间 currentYear, currentMonth, currentDay := now.Date() 自定义时区 loc, _ := time.LoadLocation("Asia/Chongqing") 格式化时间 layout := "
阅读全文
摘要:我们一般需要定时任务 请求数据层grpc服务并且在上下文中携带信息 上下文 context.Context 携带信息就需要用 google.golang.org/grpc/metadata 初始化MD 结构 // 方法一 metadata.New(map[string]string{"centeri
阅读全文
摘要:我们经常遇到 大小写转换,驼峰,蛇形命名批量操作 如果你用全家桶 idea goland webstrm phpstrom pycharm 安装插件PasseRR 使用shit+ ctl + U 切换
阅读全文
摘要:ide 提示 删除即可 go build: -i flag is deprecated golang 1.6 弃用改参数 install 安装作为目标的依赖关系的包(用于增量编译提速) 其他参数说明 参数 含义 -o output 指定编译输出的名称,代替包名 -i install 安装作为目标的依
阅读全文
摘要:github https://github.com/golangci/golangci-lint/releases ide setting->tools->go linter .golangci.yml # 运行配置 run: # 要使用的CPU核心数 concurrency: 4 # 分析超时,例
阅读全文
摘要:降低GC 频率 main 申请一大块内存 造成 heap 很大的假象 由于虚拟内存的技术的存在只有使用时候才会CPU汇编指令才会交换为物理内存 由于程序存在期间不释放内存,也不使用 gc 判断的时候会被误导,因此不会触发GC 可以使用 debug.SetGCPercent(xxx)/GOGC 调整百
阅读全文
摘要:每次用微信截图的时候 选中的截图会变小 开始以为和win10的快捷键冲突 两个屏幕截图这样看起来很麻烦 百度一圈结果不是 ###后来发现 win10 屏幕缩放是150% 微信截图是100% 截图后就变成100% 因此形成视觉差 处理办法 桌面->右键->显示设置->显示->高级缩放设置->100%
阅读全文
摘要:官方代码 一脸蒙圈 location:= time.FixedZone("UTC-6", -6*40*40) location:= time.FixedZone("UTC-7", -7*50*50) 其实官方给的只是示例 并不能直接用 如果你直接用恭喜你,可以跑路了 经常看到 UTC时间、GMT时间
阅读全文
摘要:roit搜索 https://github.com/go-ego/riot 停止维护了 根据 https://github.com/huichen/wukong ####悟空搜索 https://github.com/huichen/wukong 也不再维护了 gse 词典做分词
阅读全文
摘要:一般 使用的struct 的时候喜欢 new 一下 map chan make一下 基础类型 声明直接使用已经默认分配了默认值 只需要一块内存保存 引用类型 声明后只是有了引用地址 但是还要额为分配内存 给引用的变量分配空间 需要两块内存相互关联 引用类型必须分配值也就是初始化, 而不是自动分配默认
阅读全文
摘要:node 使用grpc npm init 创建项目 demo.proto syntax = "proto3"; package hello; service Greeter { rpc SayHello (HelloRequest) returns (HelloReply) {} } message
阅读全文
摘要:实现控制机器到多个被控机器的免密 ssh scopy xsync 首先生成公钥和私钥 ssh-keygen 将控制机器公钥拷贝到被控主机的上 ssh-copy-id -i ~/.ssh/id_rsa.pub remote-host ``
阅读全文
摘要:一个窗口运行 多个服务 运行时候选择 cnfiguration -> run kind -> Directoty 一个窗口显示多个项目视图 open-> [this window / new window / attach] -> attch
阅读全文
摘要:有个需求需要将用户分数更新为0分 然鹅grom 是0值不更新 找了一大圈说是用map 代替struct update 但是依然失败 方式1 type Temp struct{ Int32 sql.NullInt32 Bool bool } sql.NullInt32{Int32: 0, Valid:
阅读全文
摘要:gromV1 debug()方法只能输出到控制台 想记录日志文件 gromv2 import "gorm.io/gorm/logger" db, err := gorm.Open(mysql.Open(connectionDSN), &gorm.Config{ Logger: logger.Defa
阅读全文
摘要:暴力破解版 func voKmp(txt, pat string) int { n := len(txt) m := len(pat) for i := 0; i < n-m; i++ { j := 0 for j = 0; j < m; j++ { if pat[j] != txt[i+j] {
阅读全文
摘要:lvs 架构分为三层 Load Balancer server Array(服务群组 rs cluster) shared storage Load Balancer 位于最前端 ,一个多个Director server(均衡调度器)lvs模块就安装这里,类似一个路由器分发请求 server Arr
阅读全文
摘要:Netfilter 的一些钩子函数 实现accept drop froward 五个链 进路由(PREROUTING)[转换很少用] 进系统(INPUT) 转发(FORWARD) 出系统(OUTPUT) 出路由(POSTROUTING)[转换很少用] 四个表 raw 数据包是否被跟踪 需要关闭nat
阅读全文
摘要:系统定义的常量 fmt.Println(runtime.GOARCH) //CPU型号 fmt.Println(strconv.IntSize) //int位数
阅读全文
摘要:为什么需要lvs持久链接 后端真是服务一般有多个(一个就不需要负载均衡了),一个用户请求持续分配有个服务,而不是轮询多个服务 持久链接的实现 session 绑定 (session sticky) 优点:同一个用户请求始终调度到有个固定的后端服务(第一次调度算法实现) 缺点: 容错能力差,如果宕机,
阅读全文
摘要:var _ io.Writer = (*myWriter)(nil) var _ io.Writer = myWriter{}
阅读全文
摘要:字符串类型转为数字 不能系统函数 func StrToInt(str string) int { number := 0 for i := 0; i < len(str); i++ { number = 10*number + int(str[i]-'0') } return number } 将十
阅读全文