- 浏览: 13149 次
最新评论
文章列表
[置顶] gif图片介绍和LZW算法说明
- 博客分类:
- 图片相关
GIF图片介绍和LZW算法说明
1. GIF格式
GIF图像的文件格式如下:
重点字段介绍:
逻辑屏幕标志符:包含了逻辑屏幕的长宽,是否包含全局颜色列表,背景色等。
全局颜色列表:包含了图片中使用的所有颜色,而图片的数据使用全局颜色列表中的索引代替。
图像块:gif的数据是由数据块组成,每个数据块的长度最大为255
2. LZW算法
全称为“串表压缩算法”,LZW代表了研发该算法的三个人(坑爹啊,还以为是英文缩写)。属于字典编码的一种,最大的优点在于压缩后的数据不需要额外携带 ...
etcd就两个可执行文件(截至到3.0.15前)。
下载地址:https://github.com/coreos/etcd/releases
注:etcd可以集群安装,在这里只想做一个单机测试,所以只是启动一个节点就可以。
1. 解压,并将文件放入系统路径中:
tar zxvf etcd-v3.0.15-linux-amd64.tar.gz
cp etcd /usr/bin/
cp etcdctl /usr/bin/
2. 创建一个服务描述文件,放入systemd的服务目录下
cat /usr/lib/systemd/system/etcd.service
...
最近使用Nginx的过程中发现不同的场景下,Nginx返回的错误码是不同的。为了以后便于分析问题,做个记录:
504
Nginx收到Client的请求后,转发给后端,如果后端处理时间过长,超时后会返回504,GateWay Timeout。默认的到后端连接时间为60s
最近经常使用HTTP请求,但对HTTP请求的格式名称还有些不清楚的地方。主要是:
URI
URL
QueryString
HOST
PORT
Schema
这四个的区别,下面分别进行详细讲解。
URI
URI表示资源标识符,代表一个资源的路径。官方解释为:the part of this request’s URL from the protocol name up to the query string in the first line of the HTTP request。简单来说就是Port和QueryString中间的部分
URL
...
URL安全的字符串编码:
function urlsafe_b64encode($string) {
$data = base64_encode($string);
$data = str_replace(array('+','/'
Kafka使用心得(4)—Kafka详细分析
- 博客分类:
- 大数据相关
Kafka详细分析
前面说过Kafka主要包括:客户端,Broker,ZK,消费者四块内容。
1. 客户端
客户端的作用为收集消息,将消息正确的发送到客户端。
1.1 消息
客户端的消息包括:CRC,版本号,Key,Length,属性,Va ...
Kafka使用心得(3)—Kafka性能解剖
- 博客分类:
- 大数据相关
Kafka技术介绍
1. PULL VS PUSH
pull和push是两种消息传输方式,各有优缺点。Flume采用了push的方式进行消息传输,对注册后的客户端,主动发送收到的消息。而Kafka采用了传统的消息队列的方式,生产者使用push方式,消费者使用pull方式。
对于生产者来说,Kafka集群的处理能力要远远超过自己,因此可以很放心的进行push。而对于消费者来说,Kafka可以同时支持不同的消费者组,而不同消费者的处理能力也不尽相同,因此为了减轻系统复杂度,对于消费者Kafka采用了pull方式。
2. 消息持久化
K ...
常见消息中间件
消息中间件是服务间传递消息的中间件,用于服务之间通信的。服务间通信可以分为两大类,一类是机器内的服务通信,一类是不同机器间的服务通信。
1. 机器内服务通信
项目间的服务通信,即进程或线程间的通信。这是一个面试或笔试经常会考的问题。进程间通信的常见方法有:管道、共享内存、信号量、消息队列等。
管道:分为匿名管道和命名管道,其中匿名管道只适用于父子进程间的通信,命名管道允许任意进程间的通信。
共享内存:内存分为用户态和内核态,内核态的内存是各个模块共享的,所以可以将消息写入高端内存进行共享
信号量:信号量是一个计数器,可以用来控制多个进程对共享资源的访问。 ...
Kafka使用心得(2)—kafka介绍
- 博客分类:
- 大数据相关
Kafka使用心得
1. Kafka简单理解
kafka是一个可靠的消息中间件,它的直接作用是将生产者和消费者进行解耦。和自己简单实现一个消息队列相比,kafuka具有可靠性、可扩展性、灵活性等优点。
可靠性:kafuka的消息会落盘,因此保证了消息不会被丢弃。
可扩展性:kafuka是一个分布式系统,很容易通过增加机器来进行水平扩展。
灵活性:kafuka的消息可以被多个消费者组进行消费,消息的终点很灵活。
2. Kafka框架
从图中能够看出Kafka包含了三个模块:生产者,消费者,存储节点。
2.1 生产者 生产者就是生产消息的部门,可以按照一 ...
golang gc内存相关的字段
- 博客分类:
- golang
1. HeapAlloc - 当前堆大小。
2. HeapSys - 总的堆大小。
3. HeapObjects - 堆中对象的总数。
4. HeapReleased - 释放到操作系统中的内存;如果内存超过五分钟没有使用,运行时将会把它释放到操作系统中,你可以通过 runtime/debug.FreeOSMemory 来强制改变这个过程。
5. Sys - 操作系统分配的总内存。
6. Sys-HeapReleased - 程序的有效内存消耗。
7. StackSys - goroutine 栈的内存消耗(注意:一些栈是从堆中分配的,因此没有计入这里,不幸的是,没有办法得到栈的 ...
C语言常用API
1. pthread_create
函数原型:int pthread_create(pthread_t *tidp,const pthread_attr_t *attr,(void*)(*start_rtn)(void*),void *arg);
功能说明:创建线程
参 数:
1:线程标识符
2:线程属性
3:线程回调函数
4:回调函数的参数
返回值:成功为 ...
1. 下载源码
地址:https://sourceforge.net/projects/graphicsmagick/files/graphicsmagick/
找到对应版本下载
解压:tar -zxvf GraphicsMagick-1.3.20.tar.gz
2. 编译步骤
a. bash ../configure(configure文件的路径) -prefix=/home/hzliukai/space/C/GraphicsMagick-1.3.20/build(安装的路径)
b. make
如果提示
如果gcc等工具已经安装,则可能是Makefile和li ...
简介
1 reStructuredText是什么?
reStructuredText是扩展名为.rst的纯文本文件,含义为”重新构建的文本“,是python编程语言的Docutils项目的一部分。.rst文件是一种轻量级标记语言,与html的复杂结构相比,它的设计对人更加友好,被 ...