该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2008-05-05
你的意思就是client 通过jdbc 链接 2台amoeba,通过jdbc进行负载均衡(connect-j)?amoeba本身没有负载均衡的机制?2个amoeba链接2个db,他们之间的数据同步还需要mysql自己的master slave,那么需要amoeba这个干嘛呢?你要确保2台服务器确实同步,就不能利用master、slave,master、slave也是异步的。
|
|
返回顶楼 | |
发表时间:2008-05-05
对于我们的应用是否健康稳定都需要在任何一层有一个备份、故障转移。
这些其实很多产品都具备这一点的,amoeba它的亮点是在于数据切分。一个可以在上面寻找一种可线性扩展的数据切分方式。这个在目前的我所见到的产品都没有这种便利功能的。有些需要写自己的sql。或者通过客户端来实现,给客户端带来相当的复杂度。 amoeba内部除了解析mysql协议,还需要解析sql,收集有用的where条件 与规则进行交集运算。 |
|
返回顶楼 | |
发表时间:2008-05-05
csrcom 写道 对于我们的应用是否健康稳定都需要在任何一层有一个备份、故障转移。
这些其实很多产品都具备这一点的,amoeba它的亮点是在于数据切分。一个可以在上面寻找一种可线性扩展的数据切分方式。这个在目前的我所见到的产品都没有这种便利功能的。有些需要写自己的sql。或者通过客户端来实现,给客户端带来相当的复杂度。 amoeba内部除了解析mysql协议,还需要解析sql,收集有用的where条件 与规则进行交集运算。 也就是说其实负载均衡什么是幌子,真真的在于一个sql切分功能?我看到你的描述,你的负载均衡其实是connect-j提供的,不是amoeba自己的。而且amoeba自己不能做到数据同步,同步还需要mysql自己的master slave机制,并且mysql自己的master/slave其实是异步的。 |
|
返回顶楼 | |
发表时间:2008-05-05
每一层都需要有这种机制,在amoeba内部也具有负载均衡。
amoeba提供一个抽象的dbServer,在那个里面就具有这种负载均衡,故障转移。 |
|
返回顶楼 | |
发表时间:2008-05-05
csrcom 写道 每一层都需要有这种机制,在amoeba内部也具有负载均衡。
amoeba提供一个抽象的dbServer,在那个里面就具有这种负载均衡,故障转移。 那么如果我不用connect-j驱动或者connect j的版本太低,是不是amoeba就不能提供负载均衡和fail over的机制,是不是这样? 我对于这个东西基本了解了,你们是通过connect-J本身来做load balance的,没有connectJ,你们这个产品就不能做了,所以正确的理解是你们这个产品优势在于数据切分或者说sql切分,其他的例如数据同步,fail over需要mysql自己的同步,还有connect J的load balance。 |
|
返回顶楼 | |
发表时间:2008-05-05
任何软件实现一种功能都有它的目的。 比如异步的数据同步不愧是一种好的选择。
如果是同步那么这种性能是难以让人接受的。 何况在大型企业里面可能会有一种树状的db 比如 想类似sun的 ldap。它提供了可以是N层的db结构,master->hub->hub....->slave(master可读写、hub可读可用于数据复制、slave只读)这种结构你能让它同步复制嘛? 无疑异步复制会更让人接受。 软件不代表一种方案,一种方案可能需要多种软件的协助来完成。 |
|
返回顶楼 | |
发表时间:2008-05-05
自身的failover是无论如何是无法做到的..没有外部的力量你怎么去做呢?
起码需要告知客户端有多少个东西你可以使用。 因此failover机制需要靠近使用端才能完成的.当然每一层都需要有一个failover机制 |
|
返回顶楼 | |
发表时间:2008-05-05
csrcom 写道 自身的failover是无论如何是无法做到的..没有外部的力量你怎么去做呢?
起码需要告知客户端有多少个东西你可以使用。 因此failover机制需要靠近使用端才能完成的.当然每一层都需要有一个failover机制 我说的是amebo自身,2者之间不能实现fail over,要通过第三方,amebo自己应该可以做到这点。不然就失去意义了。你可以说所有的fail over都可以通过lvs进行实现。 |
|
返回顶楼 | |
发表时间:2008-05-05
我知道你的需求, 你知道google是如何做这些事情嘛?
对于普通的服务一台机器就够了,为了备份,需要将数据额外存放到另外一台设备。这2台全部成功以后才告知客户端这次交易是ok的,否则将失败。 企业数据丢失情况肯定存在,除了软件提供了一些故障恢复功能以外。一些非人力无法解决的问题是需要工程师手工进行修复。 |
|
返回顶楼 | |
发表时间:2008-05-05
为什么非要自身实现呢?
其实你想要表达的是amoeba它应该提供一个driver,而这个driver他是为了多台amoeba 负载均衡、failover的。 为什么我还需要实现这种机制呢? mysql connector-j已经提供了这种机制。 |
|
返回顶楼 | |