0%

fastdfs有nginx模块,在上面做一些缩略图缓存的功能。我当时总是觉得lua-nginx这种方式太重了,因此就入了nginx模块开发这个坑。

nginx模块开发的资料网上还是比较多的,《nginx模块开发与架构解析》这一本就不错,推荐入手实体书。我看PDF看的有点烦躁,因为很多东西要来回对照着看。

很多基础东西书里写的很细,就不谈了,就说说自己开发时候的过程和遇到的坑吧。

nginx模块是存在http module和http filter module的。

http module依次处理,最后输出内容,输出的内容再由http filter module依次过滤内容输出。

阅读全文 »

nginx真是博大精深,最近写fastdfs的动态缩略图模块,刚好能有时间研究下,真是满心欢喜。

学习主要是靠两本书,其他的稍微搜搜也就能解惑了。

《Nginx模块开发与架构解析》这个我看的电子PDF

《Nginx开发从入门到精通》这个有网页版本的,挺好的:

Nginx开发从入门到精通

阅读全文 »

传统的jni方式是这个步骤

1.在java文件中定义native函数

2.使用javah 生成对应C函数定义并实现

3.编写Android.mk把C源码用ndk编译成动态库

4.在java中调入编译好的动态库

阅读全文 »

新到手的机器,从运维手里交接必须要进行一些基本功能的测试。

对于我接手的小文件系统来说,最关键的就是磁盘和网络了。

一些有用的工具

这篇文章带了下fio和iperf但是没有详细介绍。

下面对fio稍微梳理一下

阅读全文 »

time out这个问题是我刚实习的时候所有的业务组就都存在并且反应的。但是最近这段时间才定位了错误,固然这中间弄了小文件系统等等,但主要还是本人能力不太够导致的。

由于定位的时间拖得太长,导致大家对twemproxy-redis都有一种不稳定,不放心的看法,然而今天要为它正名:

代码没问题,一切都是网络不稳定惹的祸。

1 首先分析测试环境。

在测试组和同步业务的帮助下,我们拉来了device的数据进行测试(使用了ntpdate对所有机器进行了时间同步)

阅读全文 »

twemproxy的性能应该很好,毕竟是twitter在使用的,稳定性应该很高。

然而测试组的同学对其二倍扩容以后,基本没提升QPS,甚至QPS还降低了

我和我的小伙伴们一直以为是客户端或者服务端代码的问题,各种抓包,LOG分析,查不出原因。写了C,JAVA等多个客户端版本。

后面发现原来是测试组的布线坑爹了。

关于之前测试环境redis集群极限qps提升不上去的问题,认定是由于之前4台测试环境部署的宿主机,走的交换机,交换机网络达到瓶颈导致的。

阅读全文 »

FastDFS组合nginx的http_image_filter_module建立的图片服务器,实现动态缩略图

用fastdfs存储图片,然后用nginx的图片处理模块http_image_filter_module处理图片,根据输入的地址中的图片大小动态生成缩略图

原图http://192.168.8.127:801/group1/ ... WAAL8RoEHXq8410.jpg

动态生成的缩略图地址

http://192.168.8.127:801/group1/ ... HXq8410,222x222.jpg

阅读全文 »

我的学习历程是先接触的nosql而后接触的mysql,所以这里记下的只是初学的一些东西,没什么见地。

安装mysql并且初始化

查看有没有安装过:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
yum list installed mysql*
rpm -qa | grep mysql*
```

安装mysql 服务器端:

```c
yum install mysql-server
yum install mysql-devel
```

数据库字符集设置

mysql配置文件/etc/my.cnf中加入default-character-set=utf8

启动mysql服务:service mysqld start或者/etc/init.d/mysqld start

创建root管理员:

```c
mysqladmin -u root password root
```

忘记密码:

```c
service mysqld stop
mysqld_safe --user=root --skip-grant-tables
mysql -u root
use mysql
update user set password=password("root") where user="root";
flush privileges;
```

远程访问

>开放防火墙的端口号

>mysql增加权限:mysql库中的user表新增一条记录host为“%”,user为“root”:

```c
insert into user(user,host,password) values('root','%',password('root'));
```

>给插入的这个账户提供所有表的操作权限

```c
grant all privileges on *.* to root@'%' identified by 'root';
flush privileges;
```

导出指定库到本地的目录(例如mysql库)

mysqldump -u\(USER -p\)PASSWD -h127.0.0.1 -P3306 --routines --default-character-set=utf8 --databases mysql > db.sql

阅读全文 »