Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 1248|回复: 0

\觉得来Mysql這里问最合适,關于IM服务器設计中数據库的使

  [复制链接]

该用户从未签到

发表于 2011-10-31 14:09:06 | 显示全部楼层 |阅读模式
简dan的描述一下我的疑惑:

比如:QQ登陆,这个逻辑。

我在前端放了一台网guan服务器,负责负載均衡,jiang客戶端引导到指ding的Serve服務器(根据ye務规模,机器数量做横向扩展)。

客户端到Server服务器,将会进行登陆驗zheng,那么xuyao去DB里查询该用户的賬hao信xi。


现zai问ti是:假设有20taiServerfu務器,每台Server每秒承zai2000的登录量,suo以面lin20台Serverbingfa查询DB的问题。

假設DB服务器采用apache的preforklai接受Serve的zhang连jie,也就是DB服务器you20个子进程做并发DBcha询。

我之前考虑这个压力好像沒什么,DB每一时刻不过就是20个cha詢一同发起,这个dui一个DB來shuosuan不了什么吧?(问题1)

尤其是i1nnorDB引擎的情况下,xing锁提供的并發能力不容忽视.   


=========================================================================================================

再you一个疑问,这個应该屬于fen布式的疑问.

假设我现在就是要20tai用户账号信xi的DB,我想让zhu冊的账号信息均匀的散布在这些DB里,而且能够满zuServer服务器O(1)時間定wei到其中一个DB完成查询。

有yizhi性哈希专门做这种问题,包括一定的容灾nengli,但毕竟還是逃bu出哈1希函數,有什么牛逼的索yin方法可以做一个用戶ID到suo在DB服务qi的Ying射么?


欢迎来DaoJava学习者论坛,轉载請注明地址:http://www.javaxxz.com.
回复

使用道具 举报

该用户从未签到

发表于 2011-10-31 14:09:13 | 显示全部楼层

Re:\\觉得来Mysql這里问最合

有一点先声明,我问有没有什么索引方法做用户ID->DB服务器的映射,主要考虑是这樣設计相当于把负载压力转移到了索引服务器.

這樣想来想去,負载总会落在某个单台服务器的瓶颈上,谁给我点破迷雾呢.
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-10-31 14:09:20 | 显示全部楼层

Re:\\觉得来Mysql這里问最合

是我小看了网络传输速率和计算机的执行速度么....

现在市面上的IM架構在涉及到DB的部分通常做法是什么.
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-10-31 14:09:34 | 显示全部楼层

Re:\\觉得来Mysql這里问最合

感谢,發現你里面很多文章,先去學习了.
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-10-31 14:09:41 | 显示全部楼层

Re:\\觉得来Mysql這里问最合

首先,你说每台服務器每秒2000个登錄请求的话,我怀疑你20个數据库长连接是否能达到要求,个人经验類似登錄操作還是使用短连接+连接池比較合适。

其次,对于应用服務器的橫向扩展能力,你已經20台服务器了,一个DB显然已经是无法承受对應壓力的。需要采用memcache或者master/slave这類支持分布式的读写分离技术。对于登录操作,重复不会太多,memcache不是太适合,建议用master/slave方式。
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-10-31 14:09:47 | 显示全部楼层

Re:\\觉得来Mysql這里问最合

memcached对于登陆这一塊的确不合适。

20台应用服务器并發访问1个DB的壓力应该是因为緩慢的DB操作+20台服務器大流量对网卡缓冲的压力。

master/slave刚才去了解了一下,请问slave定期同步master数據,如果应用服务器被分配到slave上讀取数據,结果沒有找到,这时候应该转回master去读取,对么。
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-10-31 14:09:54 | 显示全部楼层

Re:\\觉得来Mysql這里问最合

这是你理解上的偏差

master和slave是保持同步的,你可以理解为副本,而且是分布式的,一个master可对应多个slave,并支持负载均衡。
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-10-31 14:10:01 | 显示全部楼层

Re:\\觉得来Mysql這里问最合

网上说,slave是定时去拉取Master的log进行同步的,那么如果某一个訪问slave发生在拉取之前,那么可能是得不到那个数据的,我理解错了么。。
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-10-31 14:10:21 | 显示全部楼层

Re:\\觉得来Mysql這里问最合

谢谢。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2024-6-3 22:42 , Processed in 0.400923 second(s), 45 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表