免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2712 | 回复: 9
打印 上一主题 下一主题

讨论:多级站点数据架构 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-01-10 16:49 |只看该作者 |倒序浏览
环境说明:
一个三级站点的,大致是个物流仓储的应用
在各地全国地级市有仓储中心负责物流配送的业务,省会城市有个区域数据中心,在广州和北京各有一个全国数据中心,互备!
假设,一级是个门户站点,是数据集中的站点,可以查询全部数据!90%的操作都是查询
      二级是个区域汇集站点,负责数据中转到一级站点
      三级站点,仅提供本地数据业务,不对外开放业务!
主要业务说明:每件货物进到仓储,都有统一的编码,进行分类后,在晚上9点左右分到运输车辆,这样每件货物就和一车车的车牌号对应上了.把这样的数据传到一级站点,用户在门户站点的页面上,可以根据货物编码和承运车辆的车牌号进行追踪货物.
数据要支持异步传输.意思就是三级的本地internet网络中断,不能影响本地业务开展,网路恢复,在接着上传数据!
操作系统全部是centos5.2
全部使用mysql数据库.业务要支持24*7

主要讨论点
1.三级站点的数据库架构怎么设计
2.二级站点的数据库架构设计
3.一级站点的数据结构设计,性能怎样保障
4.低级站点的数据怎样上传到高级站点,怎样保障传输数据不丢失
5.一级站点怎样存储这些上传的数据!

[ 本帖最后由 leminsky 于 2009-1-10 16:58 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-01-10 20:25 |只看该作者
你去搜索下MySQL的同步和blackhole引擎。

加我QQ,咱们详细谈下。

38257291

论坛徽章:
0
3 [报告]
发表于 2009-01-11 12:32 |只看该作者
小弟是个新人,只发表一下个人的看法,如果不妥之处,请勿拍砖

1,网络的部署:
  一、二、三级站点的服务器都部署在一个局域网络里面,通过端口映射将一级站点公布出来,可供外部访问;

2,数据库的设计:
  一级站点只做写入的操作,作为master部署;
  二级站点需要部署多台服务器,做多个slave做数据同步,所有访问一级站点的查询操作都通过控制分担到各个二级站点上来;
  三级站点只需要一台服务器,也作为slave同步一级站点上的数据,供本地局域网使用


说明:
  1,mysql的replication我做过,局域网里面的数据同步还是挺及时的,应该在一级站点中写入之后,马上就可以在二级站点中查询到,具体这里会不会有很长的延时,我也不清楚
  2,负责均衡的控制我没实现过,不知道这样是否可以
  3,二级、三级的服务器即使宕机,也不会影响一级站点的访问

[ 本帖最后由 xzqttt 于 2009-1-11 12:34 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2009-01-11 13:05 |只看该作者
原帖由 xzqttt 于 2009-1-11 12:32 发表
小弟是个新人,只发表一下个人的看法,如果不妥之处,请勿拍砖

1,网络的部署:
  一、二、三级站点的服务器都部署在一个局域网络里面,通过端口映射将一级站点公布出来,可供外部访问;

2,数据库的设计 ...



说明一下:
服务器市不在一个局域网的,物理上都是分开的

设置二级主要是考虑,如果大量的三级站点直接和一级直接通讯,一个是不可靠,二是维护不方便,责任不好分清!,有个二级来做中继,不承当任何业务.
一级站点也是有写操作的!只要和另一个一级站点做同步就行,其他没有同步需求!
三级站点主要就是仓储业务,有大量写和读的操作.只限本地工作人员使用,并把货物进库和出库的相关信息传到一级主站点,供货主追综货物运输信息!因为每件货物要和车牌号以及GPS关联,所以只在主站点提供查询业务!当然主站点还有其他的许多业务处理,这些业务在主站点就能处理所以不复杂.业务具体这里不便说.请大家原谅!

[ 本帖最后由 leminsky 于 2009-1-11 13:12 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2009-01-11 13:28 |只看该作者
做一个一些网络方面的东西,觉得凡是经过网络的设计,都有很多的不确定性,唉,百思不得其解(用java做的),觉得楼主的难点在于:

1,多个以及一级之间的数据如何及时的同步?
2,三级站点的数据如何及时的同步到一级站点?
3,二级站点究竟需要做多大的投入?

ps:据说mysql的replication做经internat的同步不是很及时(道听途说)

期待高人解答楼主难题

[ 本帖最后由 xzqttt 于 2009-1-11 13:31 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2009-01-11 14:16 |只看该作者

回复 #5 xzqttt 的帖子

需求里,说明了没有实时同步的要求,可以异步,当然能以最快的速度同步到一级的主站点,那是最好.可以实际情况,没有可能在仓储中心保持网络的24X7的联通性,特别是仓储中心一般都建在主城区的边缘地区,都是需要通讯公司额外拉光纤的.不能保障光纤能24X7都是通的,但是仓储中心内部局域网必须要保障业务不能中断,局域网是自己控制,所以还有能做到的.

再有,根据我们调查实际的业务情况,工作业务进行的主要集中在早6点到晚12点,这样每天都有6个小时维护的时间,这段时间仓储中心几乎没有什么业务!只要最晚能在第二天的早6点前,把数据同步到主站点也是可以接受的!

这里先是讨论个可行性的方案,至少技术是可行的,要不根本进入不了预算阶段.

之所以要选择mysql,也是一开始就是考虑了成本,整个业务都会尽可能的采用开源软件来实现,操作系统采用centos,web采用apache和tomcat,中间件使用jboss,数据使用mysql,web缓存使用squid,负载均衡使用lvs等,这样整个软件的投入会大量减少,只要招聘相应的技术来支撑就可以!考虑与其把大量软件许可费用给软件公司,还不如用这些钱来培养公司技术团队.

[ 本帖最后由 leminsky 于 2009-1-11 14:23 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2009-01-11 15:08 |只看该作者
原帖由 leminsky 于 2009-1-11 14:16 发表
需求里,说明了没有实时同步的要求,可以异步,当然能以最快的速度同步到一级的主站点,那是最好.可以实际情况,没有可能在仓储中心保持网络的24X7的联通性,特别是仓储中心一般都建在主城区的边缘地区,都是需要通讯公 ...



小弟受教了

如果不需要实时同步的话,估计mysql的replication应该能够满足需求了,但是还有一个疑问:三级站点已经写入数据,但是用户在以及站点始终查询不到结果,是否会影响用户满意度?这点可以忍受么?

如果实施的过程中发现mysql的replication实在不能满足实际需求的话,还可以考虑自己写一个java的基于tcp的远程传输程序,每天在业务量最小的时候,dump出来本地mysql的数据,传送目标server上,在导入到目标数据库中(我现在做的replication如果以后放到internat中出现问题的话,我就想这么做的),当然,在真正实施过程中,许多地方还需要仔细推敲。

论坛徽章:
0
8 [报告]
发表于 2009-01-11 15:16 |只看该作者
原帖由 leminsky 于 2009-1-11 14:16 发表
考虑与其把大量软件许可费用给软件公司,还不如用这些钱来培养公司技术团队



虽然身在软件公司,还是觉得这句话说的太对了!!感觉软件公司里除了技术人员,都和卖保险的差不多,与其被忽悠,还不如自己培养,呵呵

论坛徽章:
0
9 [报告]
发表于 2009-01-12 11:41 |只看该作者
原帖由 xzqttt 于 2009-1-11 15:08 发表



小弟受教了

如果不需要实时同步的话,估计mysql的replication应该能够满足需求了,但是还有一个疑问:三级站点已经写入数据,但是用户在以及站点始终查询不到结果,是否会影响用户满意度?这点可以忍受 ...



业务类型同步的具体需求:分两种动作类型,进库和出库.进库的信息越快复制到主站点最好,最多延迟30分钟是可以接受的.
                                         出库的分同城和异地两种,同城的是越快越好,最多延迟30到60分钟分钟是可以接受的,最多异地延迟12小时是可以接受!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP