11 14
ATS缓存组件使用总结

一、简介

Apache Traffic Server基本可以用一句话概括:它不仅是HTTP代理服务器, 还是HTTP缓存服务器,且可以缓存任何字节流数据。

二、使用情况

由于是做电商,为了满足日常业务的发展,最初的nginx-proxycache的方式已经不能满足我们的大并发量而且大流量对象的缓存需要。这个时候我调研过squid、varnish等缓存代理,最后基于同行的使用报告和自己搭建使用一段时间后,最终我们就决定采用ATS作为缓存中心的核心层。具体的原因有以下几点:

10 29
C语言的限定符修饰问题

最近阅读 《Expert C Programming》,有一个问题是这样的:

foo(const char **p) {}

main(int argc, char **argv)
{
    foo(argv)
}

如果编译这段代码,编译器会发出一条警告信息如下:

warning: argument is incompatible with prototype

一般情况很多人会认为实参char *s 与形参 const char *p 应该是相容的,标准库中所有的字符串处理函数都是这样的。那么为什么 实参char **argv 与形参 const char **p 实际上不相容呢?

10 8
《程序员的自我修养》读书笔记

本文是《程序员的自我修养》的读书笔记之一,主要把相关知识点进行了梳理。

链接、装载等是操作系统中很基础也是很重要的一部分。我们需要掌握的东西很多,书中向我们灌输了理解linux里面的文件的ELF格式的重要性,我们从阅读《程序员的自我修养》前面的章节从学习ELF文件格式开始有助于更加了解日常编程看不到的东西:

  • 理解操作系统是如何让一段代码工作起来
  • 如何让不同的二进制模块协同工作
  • 理解整个系统的一个起点

本书最好是配合 《Linkers and Loaders》 一起深入阅读。

链接、装载、库是本书的三大核心点,看书的时候根据这三点的笔记整理如下:

10 2
Lua入门学习

了解到Lua(一种轻量级、可嵌入式的脚本语言),其实是很早之前和一些做游戏的朋友聊天的时候知道的,他们在项目中广泛地使用到这个语言。于是自己上网也看了一些lua开发中的一些特定发现,Lua 被运用的领域远不止游戏。特别最近很火的Redis和OpenResty(一个基于Nginx 与Lua 的高性能Web 平台)其内部集成了大量精良的Lua 库、第三方模块以及大多数的依赖项,开发人员使用Lua编写脚本就能非常轻松开发出高性能的服务了。

前一页 后一页