读写分离 mysql-proxy amoeba

byeceg 2011-09-30 09:44:09
mysql-proxy配置起来太复杂了。
想用amoeba,查了下,说是暂时不支持事务、DDL语句目前只会分配给默认的数据库执行,Amoeba不支持跨库join和排序等

Insert语句必须指定表的列名,Amoeba需要更严格的SQL语句规范,From 关键字后面如果不是子查询,一律不能带括号”()”;如果的表中字段名与关键字或者函数名一样需要带上字符` (比如:mytable.`order`)。如果使用的是hibernate会出现这样的问题吗?

大家读写分离都用得什么做的?



...全文
173 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ssssss1123124 2012-12-13
  • 打赏
  • 举报
回复
最近正在搞这二个 学习了
byeceg 2011-11-23
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zuoxingyu 的回复:]

mysql-proxy配置起来太复杂了。

其实很简单。

一般的读写分离都是从程序来实现,因为程序知道业务逻辑之间的写和读,是应该分开,还是应该在一起。
proxy只能是简单的分发SQL语句,发现是SELECT的,就分发到读机器上。发现是INSERT等,就分发到写机器上,但是存在这样业务
insert into tbname....
select .....tbname....……
[/Quote]

amoeba的我已经配好了。
mysql-proxy的lua太难配置了
zuoxingyu 2011-10-06
  • 打赏
  • 举报
回复
mysql-proxy配置起来太复杂了。

其实很简单。

一般的读写分离都是从程序来实现,因为程序知道业务逻辑之间的写和读,是应该分开,还是应该在一起。
proxy只能是简单的分发SQL语句,发现是SELECT的,就分发到读机器上。发现是INSERT等,就分发到写机器上,但是存在这样业务
insert into tbname....
select .....tbname....
第二个SELECT是检查第一个insert是否成功的,这时候proxy分发时,会到读机器查询,由于主从复制之间的延迟问题,可能造成虽然写入了,但是从机器没有实时得到复制数据,业务逻辑认为写入失败。

类似这样的业务逻辑,proxy无能为力了,但是如果用程序处理,就很简单了,2个都去写机器取数据,就可以保证是正确的。
byeceg 2011-10-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 denieljean 的回复:]

使用备份数据库啊。master-slave。
如果写的话,直接访问master。如果是读的话,就读取slave的数据。可以设置多个slave,多个slave可以使用负载平衡。
[/Quote]
读写分离,就是建立在主从基础上的。

想知道amoeba的一些实际使用情况,包括jvm的配置
无天 2011-10-04
  • 打赏
  • 举报
回复
使用备份数据库啊。master-slave。
如果写的话,直接访问master。如果是读的话,就读取slave的数据。可以设置多个slave,多个slave可以使用负载平衡。
byeceg 2011-09-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 rucypli 的回复:]

用程序来做
[/Quote]
不是吧.多个数据库服务器,每个都得连接
rucypli 2011-09-30
  • 打赏
  • 举报
回复
用程序来做

56,912

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧