最新消息:yaf表单扩展中新增加了浮点数、日期和集合的校验。php yaf框架扩展实践三——表单

golang编写的数据库中间件kingshard

Golang 2407浏览 0评论

偶然网上看到这个kingshard,自己对golang感兴趣就试玩了一下,可以正常跑成功。

数据库中间件是什么呢?简单的说和数据库类似,不同的是当程序里发送sql给它的时候,它会根据配置对sql进行分析,而后将sql发送到指定的节点(node)上,它的后面是若干数据库运行实例。

当应用发展起来后,随着数据库的压力逐渐变大,通常都要进行分库,分表,主从分离,这些东西在应用程序里实现也可以,但是会造成应用程序过于复杂,后续难以维护。使用中间件,将分库、分表、主从分离逻辑放到中间件上就更好的分离代码。

kingshard整体架构如下:

kingshard架构图

kingshard架构图

其中

  • client是需要连接数据库的客户端;
  • kingshard就是数据库中间件了;
  • node1和node2就是不同的mysql数据库节点,其中master表示主库,slave表示从库;

整体的安装过程还算顺利。碰到几个问题:

1、一开始想要安装golang 1.5发现golang 1.5需要自举,需要更早的版本,后来重新装了1.4。

2、装完golang后,执行hello world程序,提示:

warning: GOPATH set to GOROOT (/root/software/go) has no effect

将GOPATH加入bash路径即可:

$ vi ~/.bash_profile
 export GOROOT=/root/software/go #go安装目录
 export GOPATH=/root/go
$ source ~/.bash_profile

Tips:测试机上,笔者将golang安装在了/root/software/go目录是一种比较随意的方式,比较好的建议是安装在/usr/local/go目录。

3、安装kingshard的时候,make命令无法执行,提示如下错误:

go build -o bin/kingshard ./cmd/kingshard
 make: go: Command not found
 make: *** [kingshard] Error 127

看错误分析,将go命令加入系统可执行路径即可,下面直接建立一个符号链接。

$ ln -s go安装目录/bin/go /usr/local/bin/go

4、mysql远程无法访问,注意是否是防火墙的问题

参考地址:
kingshard:https://github.com/flike/kingshard,kingshard项目主页
中文说明地址:https://github.com/flike/kingshard/blob/master/README_ZH.md,其中有一些不错的文章可以参考

转载请注明:快乐编程 » golang编写的数据库中间件kingshard

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址