mysql-为大量网站使用NoSQL和关系数据存储
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql-为大量网站使用NoSQL和关系数据存储,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1693字,纯文字阅读大概需要3分钟。
内容图文
![mysql-为大量网站使用NoSQL和关系数据存储](/upload/InfoBanner/zyjiaocheng/884/decfb92938574f71a11001ee354d89f2.jpg)
我们正在建立一个大型的电子商务网站,以服务超过100,000个用户,但是我们希望用户数量在第一年将迅速增长.通常,该网站的功能与ebay非常相似,用户可以在其中创建,更新和删除列表.用户还可以搜索列表并购买感兴趣的项目.基本上,系统具有交易和非交易需求:
**Transactional**
Create a listing (multi-record update)
Remove a listing
Update a listing
Purchase a listing (multi-record update)
**Non-Transactional**
Search listings
View a listing
我们想利用可扩展的,基于文档的NoSQL数据存储(例如Couch或MongoDB)的功能,但同时我们需要一个关系存储来支持ACID事务需求.因此,我们提出了使用这两种技术的混合解决方案.
由于该站点是“主要阅读站点”,并且为了满足可扩展性需求,我们建立了MongoDB数据存储.为了满足交易需求,我们设置了一个MySQL集群.作为中间件组件,我们使用JBoss App服务器集群.
当出现“搜索”请求时,JBoss将请求定向到Mongo处理搜索,该搜索应会产生非常快速的结果,而不会给MySQL造成负担.创建,更新,删除或购买列表后,JBoss将针对MySQL进行事务处理.为了使MongoDB和MySQL保持同步,由JBoss针对MySQL处理的所有事务请求都将在业务逻辑中包括最后一步,即通过清单ID更新MongoDB中的相应文档.我们计划使用MongoDB Java API来促进更新文档的集成.
因此,从本质上讲,由于该站点被广泛阅读,因此该体系结构允许我们水平扩展MongoDB以容纳更多用户.使用MySQL使我们能够利用关系数据库的ACID属性,同时通过JBoss中间件保持我们的MongoDB存储更新.
这种架构有什么问题吗?没有一个平台可以同时提供一致性,可用性和分区容忍性-NoSQL系统通常会放弃一致性-但是至少使用这种混合方法,我们可以以增加系统复杂性为代价来实现这三个方面,并且可以,因为我们的所有要求都得到满足.
解决方法:
这种方法没有错.
Infact目前也正在开发同时利用SQL和Java的应用程序(电子商务). NonSQL.我们的是Rails应用程序,其中90%的数据存储在mongo中,并且只有交易性&库存物品存放在mysql中.所有事务都在Mysql中处理,其他所有事务都转到mongo中.
内容总结
以上是互联网集市为您收集整理的mysql-为大量网站使用NoSQL和关系数据存储全部内容,希望文章能够帮你解决mysql-为大量网站使用NoSQL和关系数据存储所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。