一个互联网在线电子商务网站用到MongoDB,Redis,Oracle三种数据库是否可行?
个人你使用 MongoDB,现在架构相比较以前是齐全了很多,结构上与PG不相伯仲。
MongoDB,Redis,Oracle三种数据库是否可行?
MongoDB,Redis,Oracle三种数据库是否可行?
Redis 做分布式架构虽然也适合用于 Web 的Inno DB 架构形式的业务系统,但使用的效果会在业务量增大之后 显得动力不足。
不你用Oracle 因为电子商务这种商务公司 根本就买不起Oracle,不像ZF 或者 央企 那样对钱不在乎。
电商平台一般用什么erp软件?
电商平台使用的ERP软件因企业规模和需求不同而异,常用的一些ERP软件包括:
1. SAP - SAP是目前广泛使用的ERP软件之一,可以满足电商平台复杂的业务需求。
2. Oracle - Oracle ERP软件也是一个受欢迎的选择,特别是对于大型企业来说,可扩展性强。
3. 九章云数智平台 - 这是一个适用于中小型企业的ERP软件,易于使用且价格较为亲民。
4. Netsuite - Netsuite是一个云端ERP系统,非常适合在线零售企业。
5. Odoo - Odoo是一个开源ERP软件,具有模块化构建,可适应各种企业规模。
需要注意的是,选择ERP软件时应根据自身业务需求、财务预算和技术实力等因素进行慎重综合考虑。
为什么传统行业几乎都用Oracle,而互联网行业几乎都不用Oracle呢?
其实早期得互联网公司曾经不仅是Oracle 客户,还都是大客户,典型的代表有两个,一个是亚马逊,一个是阿里巴巴,后来两者都纷纷去掉了O,可见并不是什么ZZ因素,一定有一些原因,我们一起来逐步拨开看看:
1.Oracle数据库到底是为什么设计的?
Oracle数据库的理论源于1970年的一个论文, "A Relational Model of Data for Large Shared Data Banks". 在这个论文中,提出了一个数据库的经典模型,也就是今天所谓的关系行数据库 Relational Database. 这个论文,在当时验证了关系模型的一些优势。后来IBM基于这个论文开发了一个东西,叫SQL语言。 但是很奇怪的是,IBM没有更快的基于SQL语言去开发一个数据库,而Oracle在1979年个开发了商业级支持SQL语言的数据库产品。 当时,数据库主要处理的一个核心问题,就是几个特点ACID,鉴于篇幅,我们无述其中的意思,但是其中有意思的就是一致性的C。什么意思呢,就是以银行交易为例,你如果在取钱的一瞬间查询余额有500,这个时候你取款,但是你恰好也告诉你家人在同一时间查询,如果查询到有500,他们也同时取款,会不会都成功呢?这个一致性的问题,对于银行要求是强一致性,也就是不能有半点错。
2. 互联网时代需要的数据库是什么?
到了互联网时代,情况突然变了。比如我们都喜欢的知乎,微博这些信息流的App。 如果我发帖的瞬间,同时可能有很多人都在发帖,如果我们的App在全在用,瞬间的用量峰值可能会因为某个热点突然变得很高,这个和上世纪80年代的企业级应用完全不同,即便是银行,我们还是可以保证当时的峰值大概有多少,因为营业点和ATM机的数量也是有限的,那时候你无法在手机上直接处理任何一笔交易。但是互联网的到来改变了一切,这个峰值不仅难以预估,而且可能和平时的平均值别巨大。这样为了确保一个峰值,就去购买峰值所需的Oracle的Lnse数量可能特别大。(Oracle是按照一个类似CPU数量或者用户数量来确定价格,你可以简单理解为用的峰值越高,你需要买的lnse越贵),这是一笔巨大的花费不说,而且还有另外一个问题。
3. 互联网时代的应用需求不同。
在我之前的一个回答里面写道了, 亚马逊工程师在优化自身的数据库的时候, 他们发现“:” 大约70%的作是键值类型的,其中只使用主键,只返回一行。大约20%的用户会返回一组行,但仍然只对单个表进行作。“这是一个伟大的发现——70%的作竟然都没有使用关系数据库的核心功能!为什么会这样呢?因为互联网时代的应用发生了变化。我举个例子,你如果设计一个类似亚马逊的电商网站的购物车,你允许客户把自己想买的东西放在里面。但是你设想一下,如果突然某个畅销的产品被卖家下架了,但是这个产品被很多的客户放在购物车里,你回想一下,银行交易需要确保的那种强一致性,在这里有必要么?如果你想强一致性,就需要这个商品下架的时候,清空每一个曾经加入购物车的这个商品。这样任何一个修改产品的作,都可能有无数个关联的交易在那里等着更新,可能商品的目录更新这个事情,就会变得巨慢无比,而且毫无意义。为什么说毫无意义呢,比如我在9点购物车放了一部手机,到10点商家卖光了,把这个产品下架了,这个时候如果商家只是在自己店面的页面更新,但是你的购物车并不实时更新,即使的情况是什么呢,就是10点的同时,你提交了一个购买的请求,这个购买的请求是需要保持一致性的,这个时候商家会返回一个失败,因为这个商品不存在。你再刷新一看,哦,卖光了。。。你的用户体验丝毫不受影响。再比如互联网的微博,如果我发一个微博就发上去,更新的时候,我不需要强一致性更新,那么可能和我距离近的朋友时间看到了,距离远的朋友可能稍晚一些看到了,有关系么?基本没什么影响,这些叫做分布式处理的方式在互联网应用非常普遍。
4. 互联网时代有了更多选择
一方面开源数据库逐步成熟,MySQL, Postgre这些后期之辈,陆续成熟且有越来越多的程序员能够熟练掌握,并且利用开源实现接近商业数据库的能力;另外一个方面,云厂商的出现让这个门槛更低,你不敢保证MySQL使用达到商业数据库的可靠性,你可以借助云厂商的产品,比如亚马逊云计算的托管数据库Aurora(兼容MySQL),这里非广告,只是告诉大家这种云厂商的产品让你用开源,性能和商业数据库接近,并且价格低廉,且无需运维或者很少运维成本,这样的情况下,中小互联网厂商就更多采用云厂商的托管开源数据库,自然不用Oracle这么昂贵的产品。
5. 数据发生了变化
前面讲到微博这种信息流的数据格式很明显和银行交易类的关系格式有重大区别。其实互联网时代,日志,物联网等产生了更多奇怪的数据格式,比如时序数据,一个物联网的温度计,可能每一毫秒钟发一个温度信息,你如果拿关系数据库去存,可能很快就爆表了。。。但是物联网就是这样,而且这种数据几乎从不更改,就是按照时间序列一直存。比如股票交易所的大盘数据也是类似,这种特殊数据格式带来的需求在过去可能用关系数据库凑合一下就可以了,但是今天,越来越多的不同类型格式需求,就需要按需设计和采用不同的数据库。这些数据库因为有云的托管,你也不太需要运维,这样采用的成本也不高,比如亚马逊aws的Timestream数据库,号称两百万次写入1KB的数据,价格才一美金,于是,越来越多的企业开始按需去采用专门构建的数据库,而且大量采用云上托管,这些都不是Oracle数据库可以做的。
所以,各方面的综合因素,导致今天的Oracle跟不上时代,也就逐步被慢慢取代了。前几天,看到Gartner的全球数据库市场排名,亚马逊AWS取代了Oracle在全球数据库厂商的位置,一个时代就这样慢慢的被改变了,不知道我当时在Oracle 10g某个Package里面的代码是否还在?
电商公司选择哪些ERP软件?
电商公司选择ERP软件需要考虑许多因素,例如公司规模、业务类型、预算以及其他特定需求等。以下是几个常见的ERP软件供参考:
1. SAP:SAP是一家全球性企业软件公司,其ERP软件是全球和广泛使用的之一。它具有丰富的功能和可扩展性,适用于不同规模和类型的企业。
2. Oracle:Oracle ERP是一种面向大型企业和中型企业的高度可配置的ERP解决方案。它提供了强大的财务管理、供应链管理、资产管理等功能,适合电子商务公司的复杂业务流程。
3. Microsoft Dynamics:Microsoft Dynamics是一个完整的ERP解决方案,可以帮助企业管理其财务、项目、供应链、生产、库存等核心业务。它适用于中小型企业,价格相对较为实惠。
4. 九章云ERP:九章云ERP是一种云ERP软件,旨在为企业提供全面的商业管理解决方案。它可以帮助电商公司集成销售、订单、采购、财务等业务流程,同时还提供仓储管理、电子商务等功能。
除了这些常见的ERP软件外,还有许多其他的ERP软件供选择。电商公司应该根据自己的具体情况和需求,选择适合自己的ERP软件,并且确保软件的实施和使用能够顺利进行。