自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 资源 (13)
  • 问答 (1)
  • 收藏
  • 关注

原创 Golang append有趣的例子

例子1参考:https://stackoverflow.com/questions/20195296/golang-append-an-item-to-a-slicepackage mainimport "fmt"func main(){ a:=make([]int,1,2) a[0]=0 fmt.Println("before: ", a,len(a),cap(a)) T(a) fmt.Println("after: ",a,len(a),cap(a)) // place

2022-02-23 01:28:55 320

原创 docker端口映射无法访问的解决

表现systemctl status docker,显示正常,可以pull,push,build宿主机访问外网没问题,可以连上ubuntu的阿里的源运行容器映射的端口在本机无法访问,用curl 127.0.0.1:端口,显示:curl: (56) Recv failure: Connection reset by peerdocker build的时候,使用apt-get install xx,无法访问,哪怕镜像源是国内的阿里之类的.在改为 docker build --network ho

2021-08-24 23:39:04 5112 2

原创 K8s的LivenessProbe 和ReadinessProbe的启动顺序问题

突然想到这个问题,幸好K8s的issue上有相关问题:Order of readiness probe and liveness probeLivenessProbe should start after ReadinessProbe Succeeded if ReadinessProbe is specifiedissue 27114LivenessProbe should start after ReadinessProbe Succeeded if ReadinessProbe is

2021-07-13 01:34:40 1905

原创 ceph csi的安装使用

文章目录首要条件参考创建pool初始化pool(init pool)csi用户在Ceph上创建用于CSI的用户在K8s集群生成secret生成Ceph-CSI的ConfigMap获取Ceph信息生成ConfigMap配置pluginRBACprovisioner and node plugins创建sc测试创建pvc创建pod输出首要条件你得先有一个Ceph存储,单节点安装Ceph参考ceph官方文档创建poolceph osd pool create kubernetes初始化pool(i

2021-06-17 23:02:13 1751 1

原创 rook-ceph安装

最大的好处,简化了Ceph的安装,其实用最新的Cephadm安装也不是很麻烦需要有K8s环境github 地址rook支持多种存储,不过截至文章发布日,只有Ceph是处于stable的安装文档地址安装在K8s的节点上的存储的要求: Raw devices (no partitions or formatted filesystems) Raw partitions (no formatted filesystem) PVs available from a sto..

2021-06-07 14:58:52 388

原创 用cephadm单节点安装ceph

官方文档DEPLOYING A NEW CEPH CLUSTER-截至文章发布时的最新版DEPLOYING A NEW CEPH CLUSTER-octopus版安装虚拟机2块磁盘,第一块装系统,第二块是给ceph用的对第二块磁盘,啥也不要干 A storage device is considered available if all of the following conditions are metThe device must have no partitions.The dev

2021-06-06 22:46:13 1372

原创 ubuntu18使用阿里云源安装docker-ce

阿里云开发者社区文档设置加速:Docker 镜像加速器

2021-06-06 11:42:43 220

原创 排序算法

文章目录十大排序算法时间复杂度O(n2)冒泡排序基本版优化版本1优化版本2优化版本3(鸡尾酒排序)时间复杂度O(nlgn)快速排序堆排序十大排序算法参见 十大经典排序算法(动图演示)稳定与不稳定如果值相同的元素在排序后仍然保持前排序前的顺序,则这样的算法是稳定排序,反之是不稳定排序时间复杂度O(n2)冒泡排序排序思想: 把相邻的元素两两比较,当一个元素大于右侧相邻元素时,交换他们的位置;当一个元素小于或等于右侧相邻的元素时,位置不变是否稳定: 稳定基本版package ma

2021-01-29 16:44:18 148

原创 深入理解linux内核读书笔记(一)

第一章, 简介1.4 Basic Operating System ConceptsUnix-like操作系统隐藏了硬件细节,如果程序需要和硬件打交道,就必须向操作系统发出请求Unix与CPU的privileged mode和nonprivileged mode对应的是:内核模式(Kernel Mode) 和 用户模式(User Mode)Intel的x86处理器是通过Ring级别来进行访问控制的,级别共分4层,RING0,RING1,RING2,RING3。Windows只使用其中的两个

2021-01-20 22:45:05 207

原创 Golang实现线段切割法抢红包

算法参见 抢红包算法代码注意,我这里用了k8s的rand.IntnRange,也可以用内置的math/rand,把我代码里的相关注释取消就可以了package mainimport ( "fmt" "k8s.io/apimachinery/pkg/util/rand" //"math/rand" "sort")func main() { fmt.Println(hongbao(9, 6))}func hongbao(money, count int) []int

2021-01-16 13:40:23 388

原创 树的介绍1

树和二叉树树树和图都是典型的非线性结构定义:树是n节点的有限集。树是n(n=>0)个节点的有限集。 n=0时成为空树。在任意一颗非空树中:(1)有且仅有一个称为根的节点;(2)当n>0时,其余节点可分为m(m>0)个互不相交的有限集T1、T2、T3、Tm,其中每个节点又是一棵树,并且称为根的子树。叶子节点(leaf): 没有孩子的节点遍历抽象方式深度优先(DFS), todo: golang代码前序遍历: 根->左子树->右子树, leetc

2021-01-14 13:46:57 134

原创 golang,函数参数传递的sync.Mutex不是指针会怎么样

代码package mainimport ( "fmt" "sync")var a = 1func main() { lock := sync.Mutex{} wg := &sync.WaitGroup{} wg.Add(2) go t(lock,wg) go t(lock,wg) wg.Wait() fmt.Println(a)}func t(lock sync.Mutex, wg *sync.WaitGroup){ defer wg.Done() lock

2021-01-09 02:09:34 908

原创 golang多goroutine读取map的不同key是否会有data race

代码package mainimport ( "fmt" "sync")func main() { m := make(map[string]int, 1) const cyclesCount = 10 var wg sync.WaitGroup wg.Add(2) go func() { defer wg.Done() for i := 0; i < cyclesCount; i++ { m[`foo1`]++ } }() go func() { d

2021-01-08 21:12:30 562

原创 kafka不通过consumer group来消费某个topic

这是偶然发现的不使用consumer group来消费应用程序自动水平扩展的时候(比如k8s下某个应用程序的pod负载大的时候), 每个节点都能消费指定topic的所有partition的数据下面这段go代码其实脱胎于sarama的官方例子, 消费最新的数据, 因为一个应用程序节点拉起来的时候也只需要消费最新的数据package mainimport ( "fmt" "log" "sync" "time")import "github.com/Shopify/sarama"//va.

2021-01-03 15:37:31 1607

原创 mongodb分页的问题

问题官方文档就是在分页的时候,我们一般用.skip(1).limit(20)这种方式, 问题是skip里的参数太大的时候, 会非常慢,官方文档对此有解释:Range queries can use indexes to avoid scanning unwanted documents, typically yielding better performance as the offset grows compared to using skip() for pagination.stackove

2020-12-28 13:56:13 455

原创 Golang的类型

type关键字带来的别名和新类型https://www.flysnow.org/2017/08/26/go-1-9-type-alias.html命名类型和非命名类型(named and unnamed types)https://stackoverflow.com/questions/19334542/why-can-i-type-alias-functions-and-use-them-without-casting...

2020-12-28 13:45:06 121

原创 不要把敏感信息写在k8s的env上

原因:执行k exec podName env就会把敏感信息打印在屏幕上,如果你的env里有数据库相关信息就全部暴露了

2020-12-24 23:21:53 422

原创 利用手头工具生成base64

在线生成base64这种有可能被网站记录下你的信息,因此利用手头工具生成会更好chrome在devtools的console里执行编码: btoa("xxxx")解码: atob("xxxx")如果有UTF8的字符:为什么 escape 可以使 btoa 正确处理 UTF-8 编码的字符串?cmder不要用echo,用printf编码printf '%s' 'hello,world'|base64aGVsbG8sd29ybGQ=解码printf '%s' .

2020-12-09 09:56:14 170

原创 tinode私聊

大致的流程subsriptions表useridtopic803471998343712768usrVvZ8n1ZhmwA803470600923254784usrZDCcjjf90wcusers表803470600923254784向803471998343712768发消息2020/11/24 16:18:08 in: '{"note":{"topic":"usrVvZ8n1ZhmwA","what":"kp"}}' sid='AAcFoJm8Yys'

2020-12-02 18:12:05 427

原创 tinode开发环境搭建

tinode支持websocket, long polling(长轮询), grpc支持3种数据库:MySQL, Mongodb, rethinkdb完整的客户端: web, desktop,ios,andorid后端编程语言:Golang下载代码项目在github上的地址go get 注意需要梯子还要配置git和命令行的代理运行goland配置服务端编译一些琐...

2020-12-02 15:23:21 1816

原创 GitLab任意文件读取漏洞CVE-2020-10977重现

漏洞描述地址: https://www.freebuf.com/vuls/235982.htmlGitlab安装官方地址: https://docs.gitlab.com/omnibus/docker/启动docker:注意版本号,不要用最新版本,这个漏洞是有相关版本的docker run --detach \ --hostname 192.168.1.22 \ --publish 9443:443 --publish 980:80 --publish 922:22 \ -

2020-11-27 16:34:22 1987

原创 mongodb更新时的一个坑

问题突然发现本地数据库里的某条记录没有了,因为是本地,所以只有我自己会动这个库代码里几乎没有物理删除的根据好几个相关的字段查询都没有这条记录解决其实是无意间发现并解决的,用鼠标拖着看的时候,发现某一行几乎都是空的,但是_id还在一下就懂了,update的时候没有$set导致这条记录几乎被覆盖,除了_id这条记录剩下的几个字段就是你update误操作产生的,根据这个去代码里一下就找到了...

2020-11-18 01:13:15 228

原创 GCP踩坑

信用卡: 招行国际全币种信用卡google不会真的扣你1美元, 应该说会尝试扣1美元, 招行显示扣款失败google账号, 我的Google账号是之前尝试过申请,但是没成功创建vm借鉴了如下网址(第一个网址和现在的gcp界面不大一样了):https://www.wmsoho.com/google-cloud-platform-ssr-bbr-tutorial/https://blog.csdn.net/datadev_sh/article/details/79593360注意事项和坑.

2020-11-18 01:07:28 380

原创 ss -p不显示进程信息

看看你是不是用root执行的命令…

2020-11-13 11:06:53 475

原创 阿里云redis的lua脚本报错踩坑记

脚本里命令的调用必须用KEYS ARRAY的形式错误表现ERR bad lua script for redis cluster, all the keys that the script uses should be passed using the KEYS array, and KEYS should not be in expression解决办法所有的redis.call这样的命令都要写成这种形式: redis.call('get', KEYS[1]), 第二个参数必须是KEYS[ind

2020-09-23 23:18:24 2284

原创 mongodb索引笔记

如果排序有多个字段,index只有一个字段, 应该是没啥效果的db.users.find().sort({“age” : 1, “username” : 1})db.users.createIndex({“username” : 1})最好设置index为 db.users.createIndex({“age” : 1, “username” : 1})复合indexdb.users.createIndex({“age”:1, “username” : 1})db.users.fi..

2020-08-25 00:22:44 114

原创 阿里云mongodb物理备份文件回复置自建数据库的一些小坑

在本地安装对应版本的mongodb, 参见->使用aliyun安装mongodb,redis建议和你备份的数据库版本完全一致建议使用一个全新的数据库来恢复,因为恢复后的用户名/密码和阿里云的数据库用户名/密码是一样的其他步骤参见->将MongoDB物理备份文件恢复至自建数据库坑1: 解压物理备份文件这一步, innobackupex --decompress --remove-original /path/to/mongo/data这条命令的/path/to/mongo/d..

2020-08-07 22:32:04 414

原创 使用aliyun安装mongodb,redis

wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -echo “deb [ arch=amd64,arm64 ] https://mirrors.aliyun.com/mongodb/apt/ubuntu bionic/mongodb-org/4.2 multiverse” | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list...

2020-08-07 22:08:29 167

原创 关闭kafka和zookeeper的jmx端口

关闭kafka和zookeeper的jmx端口这是一个随机端口还监听在0.0.0.0上关闭方式在systemctl里设置环境变量Environment="KAFKA_JMX_OPTS=-Dcom.sun.management.jmxremote.host=127.0.0.1"systemctl的相关配置kafka [Unit] Description=Apache Kafka server (broker) Documentation=http://kafka.apa

2020-08-03 01:33:41 1997

原创 Kubernetes(k8s)源码编译(容器方式)

环境主机环境cat /etc/os-release NAME="Ubuntu" VERSION="18.04.1 LTS (Bionic Beaver)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 18.04.1 LTS" VERSION_ID="18.04" HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="

2020-07-24 17:59:42 1045

原创 journalctl清空日志

How to clear journalctl步骤journalctl --flushjournalctl --rotatejournalctl --vacuum-time=1sjournalctl --vacuum-time=2djournalctl --vacuum-size=50M

2020-07-16 14:00:01 3888

原创 ntp服务在ubuntu18上报错处理

操作系统``` root@ubuntu18:~# cat /etc/os-release NAME="Ubuntu" VERSION="18.04.1 LTS (Bionic Beaver)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 18.04.1 LTS" VERSION_ID="18.04" HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com

2020-07-12 00:41:47 1927

原创 minikube编译

export https_proxy=socks5://192.168.1.37:10808export http_proxy=socks5://192.168.1.37:10808GOPROXY=https://goproxy.cn,https://goproxy.io,directGO111MODULE=onmakeroot@ubuntu18:~/gomod/minikube# makego build -tags “container_image_ostree_stub containe

2020-06-29 10:00:43 567

原创 K8s环境变量能触发热更新吗

只有容器的情况下:apiVersion: v1kind: Podmetadata: name: envpodspec: containers: - name: test-container #image: k8s.gcr.io/busybox image: busybox command: [ "sh", "-c"] args: - while true; do echo -en '\n'; ..

2020-06-19 18:02:43 1003

原创 k8s环境里的应用上传文件出现413错误

问题描述 在测试环境(非K8s环境)里上传文件是OK的 在正式环境(K8s环境)里上传文件报413错误解决办法K8s对应的上传服务的ing里的.metadata.annotations添加:nginx.ingress.kubernetes.io/proxy-body-size: 200m200m和你后端的应用的限制保持一致...

2020-06-18 16:43:29 1553

原创 K8s服务里的sessionAffinity未设置导致的问题

问题描述:一个接口突然不可用,这个接口是个图形验证码接口,分成2步:请求http://ip:port/captcha接口,返回: { captcha_id:xxxxx, cpatcha_png:a.png }根据上一步的cpatcha_png再去请求http://ip:port/captcha/a.png, 第一次可能失败,再次请求就会成功解决步骤:后端没有修改过相关接口的代码前端很长时间都没有修改过代码了发现k8s后端相关服务对应的pod由1个变成2个了应该是第一.

2020-06-11 16:52:26 4869

原创 深入理解linux内核,第三版(序言)

第三版,Understanding the Linux Kernel, 3rd Edition适合: it is mostly for people who want to understand how things really work inside the machine不适合: 程序员/系统管理员基于80X86的硬件架构专注于内核设计而不是计算机架构Linux内核源代码规模14000个C和汇编文件位于1000个子目录600万行代码230M基于2.6.11 版的Linux .

2020-06-09 01:10:44 263

原创 容器内部运行多个进程(服务)

容器的哲学是一个进程(服务)一个容器但是一个容器多个进程(服务)是可以实现的,比如: ELK的容器,就把3个进程塞在了一个容器里常见的实现方式参考: 如何科学的在Docker Container中运行多个服务参考未提及的:使用supervisor在Docker同时启动多个服务PouchContainer补充用脚本启动的一种方式,这里不必用到while true; do sleep 10;done这样 #!/bin/bash # 一共2个进程,其中一个进程后台,另一个进程作为前台.

2020-06-05 15:19:41 2923

原创 tinode发送文件

附件会在数据库的fileuploads表里有记录在server/store/store.go里的Save里处理,记录到fileuploads表里也在这里处理的 func (MessagesObjMapper) Save(msg *types.Message, readBySender bool) error { if header, ok := msg.Head["attachments...

2020-03-31 17:44:26 731 1

原创 Golang单向channel的作用

用作限制参数传递,这里也用到了channel是引用的这个特性 package main import "fmt" var c =make(chan int) var d =make(chan<- int) func main(){ fmt.Println("hello,world!") fmt.Println(len(a)) d = c // 不能写成...

2020-03-31 11:37:42 693

ceph-csi.tar.gz

csi-ceph的yaml文件集合, 参看:https://editor.csdn.net/md/?articleId=117997055

2021-06-18

webgoat-standalone-7.1-SNAPSHOT-exec.jar

Prerequisites: Java VM 1.8 Open a command shell/window, browse to where you downloaded the easy run jar and type: java -jar webgoat-standalone-7.0.1-exec.jar [-p | --p <port>] [-a | --address <address>] Using the --help option will show the allowed command line arguments. 更多查看: https://github.com/WebGoat/WebGoat

2016-11-05

postman4.1.3

  Postman是一种网页调试与发送网页http请求的chrome插件。我们可以用来很方便的模拟get或者post或者其他方式的请求来调试接口。

2016-08-04

云计算与分布式系统_从并行处理到物联网

Kai Hwang(黄铠) 美国南加州大学电子工程与计算机科学教授,互联网/云计算研究实验室主任;清华大学IV客座讲席教授;IEEE终身会士。他拥有加州大学伯克利分校EECS博士学位,主要研究领域为云计算、分布式系统、高性能计算、普适计算、信任网格计算等。 现已发表论文220多篇,出版8本计算机体系结构、数字运算、并行处理、分布式系统、互联网安全和云计算方面的相关著作。他还创建了《the Journal of Parallel and Distributed Computing》,并获得了中国计算机学会2004杰出成就奖、IEEE2011 IPDPS创立者奖。

2015-12-31

The.Go.Programming.Language.2015.11.pdf

2015.11 go语言最新的书籍 The Go Programming Language is the authoritative resource for any programmer who wants to learn Go. It shows how to write clear and idiomatic Go to solve real-world problems. The book does not assume prior knowledge of Go nor experience with any specific language, so you’ll find it accessible whether you’re most comfortable with JavaScript, Ruby, Python, Java, or C++.

2015-12-02

heat模板自定义验证

openstack 的heat模板的自定义验证

2015-10-11

directory opus 10.5.2 64位

Directory Opus(最好的文件管理器之一) 简繁体中文破解版(32位和64位) 是可与 Total Commander 相媲美的文件管理器。其总体水平与TC持平,称得上双峰对峙、二水分流。但在易用性、现代性、内置功能(相比插件实现方式)、文件收集方面,优于TC。也可以直观地说,“Directory Opus 是更适合鼠标一族的超强资源管理器”

2015-07-20

DESCrypt文本加密

免费提供文本加密服务。你可以把需要保护的信息加密后发送,而接收人必须输入约定的密码后才能阅读,否则看到的只是一堆无意义的乱码。

2015-06-10

BCTextEncoder

BCTextEncoder是一款小巧易用的TXT加密软件,TXT加密软件(BCTextEncoder)简化了编码和解码的文本数据 ,可以对Txt文件进行强加密。

2015-06-10

Python基础教程 第2版

Python基础教程 第2版

2014-05-05

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除