ACoder
2009-04-29 12:09

呵呵,我真的不知道该怎样说了,如果我说你不理解企业应用你一定不承认,可是从实际来看你确实不动企业应用。

1、有冗余就代表需要同步,那么同步时间是什么程度,企业应用的可接受程度是多少??你有相关数据么??对于一般网站慢一些可能无所谓,但是对于电信级应用这就是需要考虑的问题。

2、为什么数据库有了镜像还需要备份策略拿??因为有的时候我们需要对历史进行追踪,需要对某一刻的东西进行一个记录,这个记录很重要,当我需要的时候可以适当恢复,那么你用什么方法来恢复到某一个点拿??如果没有恢复那么,如果一个操作错了,我如何来恢复它拿??

3、不管是领域模型,还是其他模型,我们面对的是保存在内存中的数据,跟是否使用什么模型无关,使用领域模型还是关系模型只是存储方式,何况所谓领域模型也摆脱不了基本数据类型的束缚。

4、如果我想有一个开发环境,需要一定的生产环境数据,那么我怎样获取生产环境的数据??难道我需要手工生成??

xmuzyu
2009-04-29 20:42

>>不管是领域模型,还是其他模型,我们面对的是保存在内存中的数据,跟是否使用什么模型无关,使用领域模型还是关系模型只是存储方式,何况所谓领域模型也摆脱不了基本数据类型的束缚。

这个观点,实在不敢同意。保存在内存中应该是聚合根的对象,聚合根要控制对其子对象的访问,如果内存中放的是数据,这样缓存中的并发访问很难控制,要想并发控制简单,那么就需要封装好对象,通过根访问子对象。

ps:电信的项目,具体我不清楚,但是我公司最近的建行的项目,我是看出来,给所谓的大企业,财主做系统,系统的性能可以靠硬件支持着。昨天用建行的封装好的台写了个demo,简单的例子,控制台全部是sql语句,如果换其他没钱的企业,估计这系统跑不起来。一个做所谓的做企业级应用的公司,技术不一定是最重要的,也许人家技术一般般,但是业务牛B,系统做出来了,性能不行,好,去换个高性能的服务器,换个高性能的应用服务器,接着换个高性能的数据库服务器。搞定。

banq
2009-04-30 09:48

>何况所谓领域模型也摆脱不了基本数据类型的束缚。

这个认识很有普遍性,以为数据就是对象,看看教科书和学校出来的论文,满嘴数据数据的,看看国外的技术文章,都是Object Object,现在国人有了一个翻译工作,他们叫Object,我们叫数据,而且似乎抓住问题本质了,这是相当可笑。

对象不只是数据,是聚合体,是一个对象群,并时刻能在多台服务器内存中维持自身的统一性,就像你们兄弟俩一起闯江湖,不论到哪块服务器内存中,你们兄弟俩都会彼此照顾,什么叫照顾呢,就是外界改了你兄弟的状态数据,那么你就要检查会不会影响到你自己,在业务上你们两个是否应该一起修改,打个比喻:订单总金额应该是订单每个条目金额加起来的总额,如果有人只是改了一个订单条目金额,没有修改订单总金额,那么这就破坏了订单这个对象的一致性了。

而数据就不会彼此照顾,都是死的东西。数据都躺在数据表里光着身子不知羞耻的让所有人随便进来动动修改。

usejava
2009-04-30 11:24

>当数据库数据变化时,如何同步缓存

>数据库数据为什么会变化,首先因为是缓存里对象发生变化,所以,缓存变化是在数据库变化之前,一定要改变这种习惯思维。

这么看来DDD只能用于独立系统。企业应用都是逐步成长起来的,无法保证所有对数据库的更新都通过缓存里的对象。而且也无法保证和其它系统的接口都通过对象。

即使是全新开发的系统,业务不断变化,域模型也就不可避免的发生变化,由于持久层由域模型控制,对应的数据库表结构也会发生变化。这种变化会造成历史数据备份无法恢复,这是企业应用绝对无法接受的。

>当更新完成内存中聚合对象群以后,再通过一个专门机制sync将数据库向缓存看齐,更新数据库。

同步的时间如何控制?同步到数据库之前系统崩溃怎么办?造成的数据丢失和不一致如何解决?人工修复由域模型自行生成的数据库数据几乎就是噩梦。

>共享内存肯定需要属于某一个设备,那么设备是否又成为单点

>我们有分布式缓存 集群就是本质上分布式缓存,几台服务器内存集群在一起,就象一块大内存,任何一个点失败,都没有单点风险,其他机器顶上。

没有单点风险,那同一个对象应该在几台服务器都有缓存,否则一台服务器崩溃就会造成对象丢失.这样的话,内存不是很浪费吗?

usejava
2009-04-30 11:33

>为什么数据库有了镜像还需要备份策略拿??因为有的时候我们需要对历史进行追踪,需要对某一刻的东西进行一个记录,这个记录很重要,当我需要的时候可以适当恢复,那么你用什么方法来恢复到某一个点拿??如果没有恢复那么,如果一个操作错了,我如何来恢复它拿??

非常同意,企业应用对数据的关心超过一切,可以牺牲性能,但是数据安全和可追述性要保证。如果那天需要查5年前的数据,你告诉老板,对不起,模型变了,数据库结构不一样,无法导入历史数据,什么下场就不用说了。

最简单的,数据太多,影响性能,要求导出并删除1年前的数据。对于完全由域模型控制的数据库,表结构都不是你定的,怎么操作?

16Go 上一页 1 2 3 4 5 6 7 ... 16 下一页