- 博客(19)
- 收藏
- 关注
原创 open yurt之yurt-tunel-server iptables规则源码分析
#简介yurt-tunel-server是open yurt开源的用于转发来自K8s API server的包含logs、exec和metrics等运维指令请求到边缘节点yurt-tunel-agent的反向代理。#源码分析版本v0.4.1,入口函数中: if cfg.EnableIptables {//新建IptablesManager对象 iptablesMgr := iptables.NewIptablesManager( cfg.Client, //KAS client
2021-08-18 19:52:30
420
原创 数字证书
证书中含有RSA非对称加密算法的公钥,是对外公开的;而对应的私钥不公开。证书主体所有者递交证书主体内容给上级证书颁发机构。颁发机构会先用一种哈希算法提取该申领证书内容摘要信息串,再用自己的证书里公钥所对应的私钥给该摘要信息串进行加密生成签名串,最后该申领证书主体内容连同签名算法和最后签名串一起被合成最后的证书,当然,最终生成的证书中还包括上级颁发机构证书,甚至上上级颁发机构证书……因此,签名算法实际上包含哈希算法和非对称加密算法,如图中sha1RSA,sha1是一种哈希算法,RSA是一种非对..
2021-04-28 23:35:26
304
原创 VPP(vector package processing)调研
系统:CentOS7试了几次源码安装,没成功。改用二进制安装了。CentOS里一般用yum install命令来安装软件,但默认情况下,yum仓库里没有vpp,需要添加vpp项。进入网扯https://packagecloud.io/fdio/release,如图点击RPM:复制脚本运行,以添加仓库地址:运行命令: curl -s https://packagecloud.io/install/repositories/fdio/staging/script.rpm.sh.
2020-09-21 14:27:33
264
原创 linux gcc链接参数-L -rpath -rpath-link区别
虽然自己做C\C++开发也有七八年了,却一直没有真正花时间去研究学习动态库加载时的路径问题,最近用golang CGO又涉及到动态库依赖,打docker镜像后就出现各种找不到依赖库的问题,决定好好再实测研究并整理一下。 可执行程序、动态库、静态库的关系就不详说了。...
2020-07-11 19:34:21
3419
4
原创 golang1.13环境变量保存路径 go env -w
go 1.13提供了 go env -w命令来写环境变量,这是用户级别的环境变量,像GO111MODULE、GOPROXY之类的可写的环境肯定是有持久化的,那么保存路径在哪儿呢?有一个env文件:windows: 用户目录\AppData\Roaming\go\envlinux: /root/.config/go/env 目前发现在linux上,使用go...
2020-04-22 15:28:17
11558
2
原创 golang之go mod自动下载私有仓库gitlab中的包
go version: 1.13以上,我用的是1.13.5假如我在私有仓库http://gitlab.mylab.com上有个hello/hi包,地址当然就是http://gitlab.mylab.com/hello/hi,有发布tag v1.0.0。在我的go项目里引用:main.go:```package mainimport ( _ "hello/hi"...
2020-04-09 10:42:03
3988
1
原创 nginx 4层udp代理源码剖析
在建立所有配置端口的监听后,events模块会进行accept初始化:// src/event/ngx_event.cstatic ngx_int_t ngx_event_process_init(ngx_cycle_t *cycle){ …… ls = cycle->listening.elts; for (i = 0; i < cycle->li...
2019-04-18 19:20:22
1443
转载 nginx作反向代理时的主动健康检查模块
开源的nginx作反向代理时本身只有被动的健康检查方式,不知商业版本的健康检查是什么样的。mark一下:https://github.com/weibocom/nginx-upsync-module 是微博开源的http 7层负载时的健康检查。https://github.com/yaoweibin/nginx_upstream_check_module 说是阿里某大神的写的nginx...
2018-12-27 18:49:13
2338
1
原创 golang操作mongodb的驱动mongo-go-driver的事务支持和访问控制
mongodb要支持事务,需要满足以下条件:4.0以上版本;安装后时以replication set(复本集)模式启动;storageEngine存储引擎须是wiredTiger (支持文档级别的锁),4.0以上版本已经默认是这个,参考;安装mongodb server 4.0以上版本下载地址 目前最新的release版本是4.0.5,package 类型是server:可根据...
2018-12-25 16:21:00
13863
1
原创 对lua迭带器的理解
一般用 “for 变量列表 in 迭带器" 句型遍历,即在in后面是迭带器表达式,包含3个对象:迭带函数、状态常量、控制变量,当然状态常量和控制变量可以不要。迭带过程:1. 将状态常量、控制变量传给迭带函数进行函数调用,将迭带函数返回值赋给for变量列表,同时将返回的第一个值赋给控制变量。2. 如果函数返回的第一个值为nil则循环结束,否则执行循环体。3. 循环体执行完后重复步骤1...
2018-11-16 10:01:45
198
原创 某公司面试总结
去某有点名气的互联网公司面试云存储服务器工程师(unix平台),了解到自己的不足,当然可能应聘的岗位与自己的几年工作经历方向上不大一致,不过也看出来自己对某些深一点的系统知识并不能准确理解,现把问到的部分问题总结一下,并加上自己后来网上搜索博客看到的大致答案。1. 多进程读写文件是否需要加锁? 这里涉及到文件在内存中是怎样的存在,参考https://blog.csdn.n...
2018-09-07 12:49:28
233
原创 一个C#简单的异步服务器
没研究太深,仅仅是接收客户端连接和读数据。 服务器,所有异步方法会自动放到后台线程池去处理,无需我们代码去创建线程: internal class ClientMessage { public ClientMessage(TcpClient client,int buffSize) { Client = cl
2018-01-24 12:31:17
665
原创 C# 读写MongoDB
驱动:Official .NET driver for MongoDB版本:2.5.0mongodb内部是用Bson格式存储的,与json大致类似但有区别,因此它也原生支持json串语法格式进行操作,在C#版本驱动中就有BsonDucument类来处理json串,所以大多驱动接口的范型参数TDocument类型都可以用BsonDucument,即直接用BsonDucument
2018-01-20 12:14:09
3208
原创 MFC实现以系统图标显示的文件管理器
SHFILEINFOW fileInfo; //得到系统ImageList句柄,第一个参数必须为空字符串 auto hdl = SHGetFileInfo(L"", 0, &fileInfo, sizeof(fileInfo), SHGFI_SYSICONINDEX | SHGFI_SMALLICON); auto img_list = CImageList::FromHandle((HI
2017-08-11 09:15:38
1407
4
原创 使用-fPIC选项编译出protobuf静态库libprotobuf.a
用的64位Ubuntu系统,开发一个共享库so使用到了protobuf,如果链接libprotobuf.so就需要一起打包带走,否则可能因protobuf版本较多出现版本不匹配的问题,所以需要它链接静态库libprotobuf.a,但是链接时候报错: relocation R_X86_64_32 against `a local symbol' can not be used when maki
2017-06-22 20:45:35
9157
3
原创 windows平台搭带c++扩展的nodejs环境
公司产品需要使用nodejs作后台服务器,同时要用C++处理逻辑和数据库存储,所以需要nodejs及其node-gyp扩展包环境,这环境在linux上搭建比较方便,在安装gcc和python2.6或2.7的环境上直接configure、make install就行了。但是作为linux新手,感觉linux上编码简直是痛苦,没有智能提示,嗯,我是linux新手。于是想回到windows上开发。
2017-03-25 23:47:40
3356
原创 windows平台上用arm-none-linux-gnueabi-g++4.6.3交叉编译websocket++
工作中遇到在arm板上linux系统里运行嵌入websocket++的程序,即程序里需要引入websocket++开源头文件,编译器是windows平台上的arm-none-linux-gnueabi-g++4.6.3.exe。1.编译boost库: 由于websocket++本身是依赖于boost库的,所以需要先在windows上安装boost库头文件,而且
2016-03-31 08:34:25
3272
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人