自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zhangxxxww的专栏

更深层的看技术

  • 博客(122)
  • 资源 (10)
  • 收藏
  • 关注

原创 k8s-secret

Secret解决了密码、token、密钥等敏感数据的配置问题,而不需要把这些敏感数据暴露到镜像或者Pod Spec中。Secret使用: 1. Volume 2. 环境变量Secret有三种类型: 1. Service Account:用来访问Kubernetes API,由Kubernetes自动创建,并且会自动挂载到Pod的/run/secrets/kubernetes.io/servi

2017-06-23 13:38:08 2036

原创 k8s-configmap 在pod中使用

使用包含: 环境变量、文件和目录。命令行字面量创建 kubectl create configmap test-conf003 --from-literal=aa=1 --from-literal=bb=2 查看创建的configmap,yaml文件展示[root@controller01 confmap]# kubectl get configmap test-conf003 -o ya

2017-06-23 10:23:23 5719

原创 k8s-configmap 创建

在一个pod里面使用ConfigMap大致有三种方式: 1. 命令行参数 2. 环境变量 3. 数据卷文件创建configmap有两种方式 1. yaml文件创建 2. 通过kubectl命令行创建最佳实践是通过yaml文件创建,这样能够达到svc、rc、configmap创建的统一,如果是文件,我们可以先通过命令行创建configmap,然后通过kubectl get configmap

2017-06-21 17:39:39 4544

原创 k8s-deployment

Deployment的典型用例: 1. 使用Deployment来启动(上线/部署)一个Pod或者ReplicaSet 2. 检查一个Deployment是否成功执行 3. 更新Deployment来重新创建相应的Pods(例如,需要使用一个新的Image) 4. 如果现有的Deployment不稳定,那么回滚到一个早期的稳定的Deployment版本 5. 暂停或者恢复一个Deploy

2017-06-21 16:25:32 4804

原创 K8s 介绍

K8s 介绍Kubernetes(k8s)是自动化容器操作的开源平台,这些操作包括部署,调度和节点集群间扩展。使用Kubernetes可以: 1. 自动化容器的部署和复制 2. 随时扩展或收缩容器规模 3. 将容器组织成组,并且提供容器间的负载均衡 4. 很容易地升级应用程序容器的新版本 4. 提供容器弹性,如果容器失效就替换它,等等…Kubernetes解决的问题: 1. 调度 - 容

2017-06-21 14:12:55 49013

原创 dpdk-gcc 多线程关键字 __thread

__thread 是gcc用于多线程存储局部变量,应该每个线程自己都有一份。#include <stdio.h>#include <stdlib.h>#include <pthread.h>#include <time.h>__thread int var = 8;void *func0(void *arg){ ++var; printf("func0:%d\n", var);

2017-03-03 16:38:03 895

原创 dpdk-spinlock

spinlock在多线程编程中经常被使用,我们经常叫无锁,底层的实现是汇编代码的compare-and-set,也就是CAS大法!!!spinlock的操作:typedef struct { volatile int locked; /**< lock status 0 = unlocked, 1 = locked */} rte_spinlock_t;//spinlock的初始化,lo

2017-03-02 16:07:06 1723

原创 dpdk-hugepage源码分析

hugepage的作用: 1. 就是减少页的切换,页表项减少,产生缺页中断的次数也减少 2. 降低TLB的miss次数static uint64_tget_default_hp_size(void){ const char proc_meminfo[] = "/proc/meminfo"; const char str_hugepagesz[] = "Hugepagesize

2017-03-02 14:56:08 1170

原创 线性代数-矩阵乘法的推导

文章来源我的有道云笔记矩阵乘法推导reference:阮一峰blog

2017-01-18 13:02:15 1310

转载 sqlite实践

以下sqlite是对 该blog 内容的实践过程内容: - 创建数据库 - 创建表 - 在表中插入字段 - 增加 - 查找 - 更新 - 删除(ccdk-1.5.2alpha)[root@Router-B sqlite]# sqlite3 foo.dbSQLite version 3.14.2 2016-09-12 18:50:49Enter ".help" for usage

2017-01-17 15:59:09 404

原创 测量程序性能的方法

测量程序性能的方法程序性能的测量主要有两种方法:循环计数,统计时间法cycle统计法循环计数,时间统计法 int i = 0; struct timeval start, end; int loop = 100000; gettimeofday(&start, NULL); for (i = 0; i < loop; i++) { t

2017-01-16 16:55:09 484

原创 2016下半年目标(8-12)

不知不觉2016已经过了大半年,在剩下的5个月里面,该有健身和学习计划了!加入RTT(Run-time-team),完成300公里的跑步运动读完3本本专业中文著作和一本英文著作在csdn上发表libnids和redis的源码分析,排名提升到8000看一本dpdk的书籍,了解网络驱动的实现完成tcp的实现(github)

2016-08-01 07:52:07 475

原创 time wait bucket table overflow解决办法

web服务器由于连接数过大出现问题解决方法:vim /etc/sysctl.confnet.ipv4.tcp_max_tw_buckets = 10000通过sysctl查看sysctl -p

2015-11-12 10:42:34 726

原创 文件结尾的判断

经过今天的验证,终于知道linux文件的换行符为LF,ascii Hex为0A,Dec为10, 在进行条件判断可以使用 if(ch == ‘\n’)的写法.实验代码#include <stdio.h>#include <stdlib.h>long sizeByFile(const char *filename,char *mode){ long size=0; FILE *f

2015-10-12 16:29:13 1129

原创 C++ 编译出现字符串常量转化问题

出现问题原因:char *msg[26] = { "","","GET","POST","", "","OTHER","","","", "","","","","", "","","","","", "","HEAD","PUT","DEL

2015-10-06 11:59:16 3388

原创 更改文件中的内容

/* program使命:查找文件中字符串,并用其他字符串代替 思想: 找到字符串,然后将文件指针移动到要替换的字符串的首部,然后写入要使用的字符串,然后在文件buffer中把后面的片段写到文件中。*/#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>long sizeByF

2015-08-25 13:13:26 860

原创 文件中关键字后面是什么及长度

/***writed by zhangxxxwwemail:[email protected]***/char *strstr(const char *haystack, const char *needle);/*返回在haystack中第一次出现needle的位置*//* para: buffer:要查找缓冲区的首地址 str:要查找的

2015-08-25 13:08:32 932

原创 函数实现文件大小

/***writed by zhangxxxwwemail:[email protected]***/long sizeByFile(const char *filename,char *mode){ long size=0; FILE *fp = NULL; fp = fopen(filename,mode); if(NULL == fp) {

2015-08-11 13:56:02 531

原创 scp不用输入密码的拷贝

今天要从远程机器拷贝到本机上很多文件,拷贝了10分钟后,自己再也受不了这种输入密码的情况。于是想作为一个程序员应该要搞到一个自动化的脚本,不用输入密码。自己就百度一番,终于找到。文章参考: scp不用密码拷贝拷贝首先在各自机器上生成公钥和私钥ssh-keygen -b 1024 -t rsa这时将生成私钥id_rsa和公钥id_rsa.pub,存放在用户目录.ssh目录下 2. 将公钥拷贝到

2015-08-10 16:48:57 968

原创 了解运行kafka&&zookeeper(一)

前几天接触到kafka,从kafka的部署中又认识到了zookeeper,从而了解到其的强大。Zookeeper就是一个针对大型分布式系统的协调系统。broker/producer/consumer/zookeeper关系: kafka server就是broker,broker是存数据的,producer把数据给broker,consumer从broker取数据。 zookeeper是prod

2015-08-03 17:10:49 1052

原创 安装gcc-4.8.2时遇到的问题及解决方案

configure: error: cannot compute suffix of object files: cannot compile问题产生原因: 检查环境配置时,找不到对应的so 解决方法:添加环境变量 #vim /etc/profile export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/xiaowei/gcc/mpc-

2015-07-17 11:39:07 2995

原创 intel指令优化

程序优化预读指令读内存提前预取内存中数据到CACHE内,提高CACHE的命中率,加速内存读取速度,这是设计预读指令的主要目的。 prefetch0、prefetch1、prefetch2、 prefetchnta。 预取指令只是给CPU一个提示,所以它可被CPU忽略,而且就算预取一段错误的地址也不会导致CPU异常。一般使用prefetchnta预取指令,因为它不会污染CACHE,它把每次取得的数

2015-04-29 14:59:24 4003

原创 一种非常无奈的工作

首先说明我是一个小实习生,领导讲一个非常重要的项目交给我,我是充满信息去将它搞好,但是每次遇到问题时,向别人请教是,他们都是爱理不理的样子。尤其是我这个项目要和另外一个同事联调,他的工作态度更是让我感到非常纠结。老板又总是询问我工作进度,让我真的不知所云。小总结一把开始新项目总结首先要在svn或者git上搞一个目录存放自己的开发工程,解决 一个问题,就立马推 上去,这样就能实时保证自己的工作进度。更

2015-04-21 16:41:22 840

原创 C/C++中判断GCC版本

#include <stdio.h>#include <stdlib.h>int main(){ printf("%d\n",__GNUC__); printf("%d\n",__GNUC_MINOR__); printf("%d\n",__GNUC_PATCHLEVEL__); return 0;}result: 4 8 2

2015-04-13 16:16:18 4920

原创 设计模式--适配器模式

适配器模式*代码图片 from:bkeey#include <iostream>using namespace std;class deque{public: void push_back(int x){ cout<<"deque push_back"<<endl; } void push_front(int x){ cout

2015-03-06 10:59:18 555

原创 设计模式--代理模式

代理模式在我们的生活中代理的例子是非常多,对我们IT人员最直接的就是上Google,由于GFW屏蔽了Google,因此我们需要通过代理访问Google。 还有我们买火车票,有些人买不到,通过黄牛作为一个中介买车票。黄牛就是一个代理。设计模式中定义: 为其他对象提供一种代理以控制对这个对象的访问. #include <iostream>using namespace std;class gir

2015-03-05 17:04:34 560

原创 设计模式--外观模式

外观模式外观模式是一个子系统的封装,通过访问外观来实现访问子系统。只要定义好了这个接口,来创造出新的子系统是非常容易。#include <iostream>using namespace std;class fact_one{public: void sell(){ cout<<"sell fact_one"<<endl; } void buy(

2015-03-05 15:33:29 429

原创 linux零元素数组应用

/*在结构体中最后零元素数组的妙用*/#include typedef struct aa{ int a; double b[0];};int main(){ struct aa bb; int c=9; printf("%x\n",&(bb.a)); printf("%x\n",&c);

2015-03-04 17:10:31 985

原创 获取键盘按键值

很久以前的代码拿出来了!熟悉linux键盘驱动的这段代码太容易啦!/*获取键盘的按值*/#include #include #include #include #include struct info{ struct timeval time; unsigned short type; unsigned short code; unsigned int value

2015-03-04 16:42:15 3615 1

原创 GSM压缩/ 解压实现

#include int gsmEnode7bit(unsigned char* pDst,const char* pSrc){ int nSrc; // 源字符串的计数值 int nDst; // 目的字符串的计数值 int nChar; // 当前正在处理的组内字符的字节序号 unsigned char nLeft; //上一字节残留的数据 int nSrc_leng

2015-03-04 16:38:20 1273

原创 设计模式--构造者模式

构造者模式源码 from: 万方数据 朱进 paper 构造者模式使用场景:当生产的产品有复杂的内部构造需要生产的产品的属性相互依赖,这些属性的赋值顺序比较重要。#include <stdio.h>#define BUIDE_C#define FINISHED 1#define UNFINISHED 0typedef struct Splane plane;typedef s

2015-03-03 10:44:07 681

原创 计算机编码

来自: 阮一峰  http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html一下对自己有用的精简部分:1. ASCII码在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表

2015-03-02 16:58:09 656

原创 tcp checksum计算

checksum/* This is a reference internet checksum implimentation, not very fast */inline u_short in_cksum(u_short *addr, int len){ register int nleft = len; register u_short *w = addr;

2015-03-02 15:19:27 2085

原创 abort信号捕捉

#include#include#include#includevoid handler(int i ){ printf("catch signal\n");}int main(){ signal(SIGABRT,handler); abort(); while(1);/*not be acted*/ return 0;}

2015-03-02 14:53:59 1056

原创 C/C 动/静 态库

c语言由文本到二进制的过程 :编译 -> 汇编 -> 链接 动态库是程序链接的时候被链接,使用动态库的好处: -如果多个程序使用同一个动态库,如果动态库出现bug,不需要升级所用该动态库的程序,只要升级该动态库。 -该动态库只有这一个,没有其他副本,节省内存空间静态库是编译的时候被载入,使用静态库的好处: -使用静态库编译好的 程序在任何机器上都可以直接运行。 -如果有多个

2015-02-09 13:15:16 946

原创 C string类c_str() 详解

C string类c_str() 详解c_str() 返回以最后一个指向null结束。#include <iostream>using namespace std;int main(int argc, char *argv[]){ const char *ch; string s = "abcdef"; ch = s.c_str(); cout<<ch

2015-02-06 11:46:46 1683

原创 dlopen,dlsym,dlclose的使用

dlopen dlsym  dlclose的应用在写程序时,我们经常使用动态库,其实,上面提供的三个函数也可以调用动态库。- 创建动态库#include void test(){ printf("test hello!\n");}command :  # gcc -shared -o test.so test.c -fPIC-callback#

2015-02-05 13:53:41 914

原创 smart pointer (unique_ptr)

smart  pointer:unique_ptr只能有一个指针指向某块内存区域。1.不支持赋值和复制构造unique_ptr  ap(new int(88));unique_ptr  aa(ap);出错unique_ptr  bb(aa));出错2.可以移动构造和移动赋值在函数中作为返回值可以用unique_ptr Getval{     unique_ptr

2015-02-05 10:28:01 1251

原创 localtime和localtime_r

在工作中 突然用到时间函数,一查才发现localtime和localtime_r原来差别这么大。1. loacltime 不可重入,localtime_r可重入。2. localtime使用两次,前面的值会被重写。 #include #include int main(int argc,char *argv){ char snow[50]={0},send[50]={0}

2015-02-05 09:36:56 1799

原创 c++文件操作std::ifstream

C++对文件操作相关:ifs.is_open()     判断文件是否打开ifs.get()              获取文件的一个字符ifs.good()          判断文件是否结束std::ifstream::in  以只读的方式打开#include #include // std::ifstreamusing namespace std;int main

2015-02-04 20:51:54 38815 3

ppt的一些见解快捷键使用

ppt是工作中必须使用的软件,这是ppt的一些最基本的操作技巧

2012-11-15

c++人的成员类(初学者)

该人员类适合c++初学者,让学生更好地了解c++类的魅力

2012-11-15

五笔打字法练习

五笔打字法是每个打字爱好者的首选打字法,也是计算机专业人士的必备技巧

2012-10-29

五笔打字字根

五笔打字是打字爱好者的专用打字法,字根的记忆是相当重要的

2012-10-29

原码反码与补码

计算机内存计算,反码原码补码之间的换算最基本的知识

2012-10-29

c语言连接字符串

连接两个字符串,首先要了解每个字符串的结束标志

2012-10-20

c++数组降维程序

c++降维处理与一维数组的区别,在调用时的差异

2012-10-15

函数值传递

比较值传递与地址传递的区别,方便c++初学者使用

2012-10-09

c语言成绩统计

c语言简单的成绩输入问题包含结构体,函数

2012-10-05

c语言函数和结构体共同实现天数

c语言结构体与函数,最真实的代码,最清晰的代码

2012-10-05

空空如也

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

TA关注的人

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