13 oria2006

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 4w+

Zookeeper 源码阅读-如何组织配置节点

Zookeeper的配置节点组织在一个DataTree中,所有的配置节点都保存在ConcurrentHashMap中,该HASHMAP Key是节点的全路径;DataNode是值,DataNode中保存了节点的配置数据和节点的子节点名。大概的结构如下:public class DataTree { /** * This hashtable provides a fast lookup to the datanodes. The tree is the * sour

2020-07-03 11:14:57

Centos 编译 zookeeper

步骤一、下载ant工具https://ant.apache.org/bindownload.cgi下载zookeeper源码https://github.com/apache/zookeeper我下载的版本分别是apache-ant-1.10.8-bin.tar.bz2、apache-zookeeper-3.5.8.tar.gz步骤二、解压压缩包cdapache-zookeeper-3.5.8ant eclipse(ant可以写绝对路径,也可以设置PATH环境变量)..

2020-07-02 16:33:56

NGINX 事件(epoll)处理框架源码分析

函数调用int ngx_cdeclmain(int argc, char *const *argv) | |___>ngx_single_process_cycle/ngx_master_process_cycle | |___>ngx_start_worker_processes | |___>ngx_spawn_process

2020-06-22 20:21:17

刚换的工作,说一说大龄程序员到底好不好好找工作

家里有亲戚今年高考,问我报考什么专业比较好,他想报计算机,但看网上都说计算机30岁之后就不好找工作了。我也看过很多这样的文章,朋友们聊起这类话题经常还开玩笑说实在找不到工作就去送外卖吧,虽然嘴上说说,但是心底还是很焦虑的。正好去年刚换的工作,就在这里说说自己找工作的情况吧。 我今年38了,普通二本毕业,毕业到现在也换过几次工作,但除了刚毕业那会是自己应聘的,后来都是老同事推荐,面试什么的就是走个过场,很容易就入职了。上家公司因为效益不好,加上权利斗争导致我负责的项目被撤了,...

2020-06-19 10:58:30

Nginx模块加载源码分析

所在需要加载的模块名数组:char *ngx_module_names[] = { "ngx_core_module", "ngx_errlog_module", "ngx_conf_module", ………… "ngx_http_module" …………}ngx_module_t *ngx_modules[] = { &ngx_core_module, &ngx_errlog_module, &ng

2020-06-17 16:35:07

Nginx 配置文件源码分析

struct ngx_cycle_s { void ****conf_ctx; …………}#define ngx_get_conf(conf_ctx, module) conf_ctx[module.index]//ngx_cycle.cngx_cycle_t *ngx_init_cycle(ngx_cycle_t *old_cycle){ ………… cycle->conf_ctx = ngx_pcalloc(pool,.

2020-06-17 10:41:43

GO 获取指定网卡流量

func TotalFlowByDevice(dev string) uint64 { devinfo, err := ioutil.ReadFile("/proc/net/dev") if err != nil { return 0 } var receive int = -1 var transmit int = -1 var receive_bytes uint64 var transmit_bytes uint64 lines := strings.Split(strin.

2020-06-12 17:28:22

GO 获取磁盘空间大小

func DiskUsage(path string) (uint64, uint64) { fs := syscall.Statfs_t{} err := syscall.Statfs(path, &fs) if err != nil { return 0, 0 } All := fs.Blocks * uint64(fs.Bsize) Free := fs.Bfree * uint64(fs.Bsize) return All, Free}

2020-06-12 15:28:32

Nginx 线程池源码分析

ngx_module_t ngx_thread_pool_module = { NGX_MODULE_V1, &ngx_thread_pool_module_ctx, /* module context */ ngx_thread_pool_commands, /* module directives */ NGX_CORE_MODULE, /* module type */.

2020-05-21 16:20:54

Nginx 内存池源码分析

关键结构typedef struct { u_char *last; u_char *end; ngx_pool_t *next; ngx_uint_t failed;} ngx_pool_data_t;struct ngx_pool_s { ngx_pool_data_t d; size_t max;

2020-05-19 16:23:08

GO语言异常以及信号量捕获

defer func() { err := recover() if err != nil { LogErr("err %s", err) LogErr("Stack %s", debug.Stack()) } return }()func signalHandle() { for { ch := make(chan os.Signal) sign...

2020-05-03 17:30:15

SHELL $0, $#, $*, $@, $?, $$

$NN是数字,类似main(int argc,char *argv[])中的argv参数数组如执行[root@localhost flock]# ./flock.sh 10 200 300$0:是脚本名称./flock.sh$1:第一个参数 10$2:第二个参数200,依次类推$#参数数量,类似argv如执行[root@localhost flock]...

2020-04-26 14:06:12

Nginx 编译安装

相关路径配置/etc/nginx/默认页面/var/www/html配置配置/etc/nginx/sites-available相关操作重启sudo service nginx restart

2018-12-02 18:43:33

Linux C语言内存分配方式

malloc#include <stdlib.h>void *malloc(size_t size);从堆中分配指定长度的内存,不初始化分配的内存,有固定的对齐长度,比如32字节allocvoid *calloc(size_t nmemb, size_t size);和malloc的区别是alloc能将分配的内存区域初始化为nmembreallocvoi...

2020-04-20 17:51:43

实测有名管道缓存大小

在需要用FIFO的时候,特别是读取端是第三方开源组件的时候(一般第三方开源组件默认都支持文件加载数据的方式比如ffmpeg),有名管道就特别方便。今天测试了缓存大小实测应该是64K,#include <stdio.h>#include <unistd.h>#include <fcntl.h>#include <sys/stat.h>#i...

2020-04-17 19:35:51

Linux常用的系统调用

#include <stdio.h>#include <unistd.h>int main(int argc, char **argv){ int fd_num = sysconf(_SC_OPEN_MAX ); printf("Fd Num %d\n", fd_num); int cpu_num = sysconf( _SC_NPROCE...

2020-04-17 17:05:17

动态修改进程名

ps -aux查看nginx进程,可以根据进程名称知道其作用root 56085 0.0 0.0 22480 64 ? Ss Apr11 0:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.confnobody 5608...

2020-04-17 16:00:53

intptr_t 与指针的区别

intptr_t在/usr/include/stdint.h文件中定义了typedef int intptr_t;intptr_t定义的目的是为了保持地址,它与指针保存的值一样相同点两者保存的值一样,都是指向某个内存空间的地址值区别指针:能访问地址指向的内存空间intptr_t:只是保持地址值,不能访问地址指向的内存空间...

2020-04-17 10:03:10

利用flock锁确保一个进程或shell脚本只能同时运行一个

#include <stdio.h>#include <string.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include<unistd.h>int main(int argc, char **argv){ int ...

2020-04-16 19:44:11

GO RPC实例源码

服务端import ( "net" "net/rpc" "net/rpc/jsonrpc")// Client->Servertype RpcObj struct { Id int `json:"id"` Name string `json:"name"`}// Server->Clienttype ReplyObj struct { Ok ...

2020-03-31 15:37:55

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。