DB层级

最上层:              业务层

负载均衡:            LVS

代理层:           DB-PROXY

DB层:            DB主库   DB从库

随着DB出现各种问题,对DB层级有了跟多的了解。

第一层认识:业务层直连到DB层

第二层认识:业务层连接到db-proxy,db-proxy负责读写分离;

第三层认识:业务层直连的其实是LVS,LVS负责转发业务层的sql语句。


 

db-proxy:

为什么需要db-proxy层?因为业务直连sql会出现如下问题:

1,有些sql语句很危险(delete from table),需要避免;

2,直连sql无法做到读写分离;

3,其它对sql语句的控制层可以在这一层实现。

db-proxy弊端:因为要对所有的sql检查,需要的话会重写,所以有些非标准的sql语句支持得不好,sql语句不完备。

业务出现过问题:中文字符存入读取乱码。原因是下面这条语句未在proxy的sql集合中,导致utf8格式被默认的GBK替代:

SET character_set_connection=utf8, character_set_results=utf8, character_set_client=binary


为什么需要LVS?这个需要确认。

但业务因LVS层出现过问题:慢sql会导致业务整体挂掉。

 

posted on 2013-08-09 12:01  awildfish  阅读(556)  评论(0编辑  收藏  举报

导航