我想我会
发表于 2016-11-28 22:32
jackylover1314 发表于 2016-11-28 17:31
小辣椒这个orm 其实还是有他自身的特点的, 轻量级的解决方案, 同时还是数据库的连接池。同时它还自己有个 ...
你真的用过cayenne吗? 如果你真的用过和了解cayenne就不会这么说了,cayenne的用法跟你说的完全不同的
那个破ui一点用处没有,指望那简陋的ui能生成什么简陋的xml? 跟你说的恰恰相反,我们是自己写map.xml,那个破ui只用来validieren一下,检查下错误,再别无它用!
orm框架当然本质上是一样的,但具体使用起来区别还是蛮大的, cayenne 跟 hibernate不能比的,除了轻型之外,cayenne在xml里设置entity关系的时候非常繁琐和另类,哪像hibernate用annotation就可以轻松搞定,在xml里设置关系也非常简变,除此之外cayenne还要自己写mapper klasse,每个java objekt 都要写,非常另类和繁琐! 这跟hibernate在用法上有很大区别的,如果你不知道写xml 和 mapper的话,那你可能没真正用过cayenne,
但我现在知道了,这个问题不在cayenne的原因,真正的原因是我们头儿是个bug!
我也觉得这个问题应该在数据库层解决,oracle和mysql都提供现成的功能,结果我们的头儿说不行,因为数据库是不确定的,要在上层orm层统一解决,这货说话估计都没过脑子.......
@Deutschland
发表于 2016-11-28 22:47
adgjl 发表于 2016-11-28 08:47
如果递增主键没有特殊含义的话,可以考虑给这个表加一列uuid,前端拿uuid当key使用,后端慢慢保存,早点晚 ...
{:9_526:}
@Deutschland
发表于 2016-11-28 23:04
本帖最后由 @Deutschland 于 2016-11-28 22:12 编辑
这样高并发的events直接数据库读写,不会照成数据库表格死锁吗?如果每小时千万次并发如何用数据库存储? 之后数据生成,模拟效率绝对是灾难。并且千万次并发也可能只有 比如 百万 unique user。感觉数据存入数据库前要aggregation。
分布式in memory(key : uuid)real time data storage。 import data into DB - batch job
或者 streaming : kafka + zookeeper ; spark/flink (real time or batch - data processing)
我想我会
发表于 2016-11-28 23:07
雪候鸟 发表于 2016-11-28 00:39
无需考虑任何数据库,无需虑任何orm, 直接告诉你们架构,只要保持max+1而且还要高并发的主键,直接在任何数 ...
今天头和上级还有一个负责数据库的同事讨论这问题,我在一旁听着,弄半天他们连这个aktenzeichenzahl的定义还没搞清楚,还没有明确定义,到底有什么意义 {:5_383:}
不过最后一个大概的思路是,上层需要给aktenzeichenzahl写一个service, service负责生成和分配zahl,然后再存入数据库,也就是说如果数据库不定的话,不能在数据库和orm层解决,跟你和adij 说的差不多
这种情况下,表里可能还需要有另外一个列..... 总之,乱七八糟的,他们到现在都没确定这个aktenzeichenzahl的含义是什么,这货就开始布置任务叫我做了,这不是搞笑吗!
我想我会
发表于 2016-11-28 23:25
@Deutschland 发表于 2016-11-28 22:04
这样高并发的events直接数据库读写,不会照成数据库表格死锁吗?如果每小时千万次并发如何用数据库存储?...
我们这个系统系统刚开始开发,很多东西这货心里根本没谱,并发方面要求应该没那么高,系统更注重的是模块整合和通讯,要求把公司以前开发的好几个不同的系统整合进新系统,这货这方面比较强,所以找他来做架构
adgjl
发表于 2016-11-29 11:12
我想我会 发表于 2016-11-28 22:07
今天头和上级还有一个负责数据库的同事讨论这问题,我在一旁听着,弄半天他们连这个aktenzeichenzahl的定义还没搞清楚,还没有明确定义,到底有什么意义
不过最后一个大概的思路是,上层需要给aktenzeichenzahl写一个service, service负责生成和分配zahl,然后再存入数据库,也就是说如果数据库不定的话,不能在数据库和orm层解决,跟你和adij 说的差不多
这种情况下,表里可能还需要有另外一个列..... 总之,乱七八糟的,他们到现在都没确定这个aktenzeichenzahl的含义是什么,这货就开始布置任务叫我做了,这不是搞笑吗!别把自己想太重要了,开始布置任务叫你做,那是Kapazitätsplanung,当然得指定个人做,又不是教你各人负责到底。你想自己随便定方案,公司还不干呢。Pause你的,等负责人讨论明白了再动手,锅也不用你背。就算架构智商需要充值,也会有其他参与讨论的说No的,如果决策层全体智商需要充值,那反正你们公司也活不多久了……
jackylover1314
发表于 2016-11-29 11:22
我想我会 发表于 2016-11-28 21:32
你真的用过cayenne吗? 如果你真的用过和了解cayenne就不会这么说了,cayenne的用法跟你说的完全不同的
...
感觉你是没有认真的研究一下这个framework,
http://www.ibm.com/developerworks/cn/java/j-lo-cayenne1/
这是我记得我最初用它时看得材料, 还有后一篇,中级应用。
当然还有他的api,网站文档。
我记得他的设置很简单啊,关系关系之间只是需要反向的设置, mapper 和Java class 还有数据库的配置都会自动生成。我大概是在2012到2013 年做项目的时候用过, 没向你说的如此复杂。
有些时候不是技术的问题是人的问题。
shrek_munich
发表于 2016-11-29 12:49
adgjl 发表于 2016-11-29 10:12
别把自己想太重要了,开始布置任务叫你做,那是Kapazitätsplanung,当然得指定个人做,又不是教你各人 ...
表吓唬楼主么
我估计和你想的差不多,架构有一个需求,然后觉得也许可以通过数据库解决,当然因为底层数据库没有指定,或者他希望decouple底层数据库的实现,所以想在orm解决,更想一个feasibility的question,如果没有好的解决,其实简单的回答不行,理由是如下abc,根据dev的反馈他需要修改他的解决方案
我想我会
发表于 2016-11-29 20:18
jackylover1314 发表于 2016-11-29 10:22
感觉你是没有认真的研究一下这个framework,
http://www.ibm.com/developerworks/cn/java/j-lo-cayenne1/ ...
呵呵 我没话可说,imb网站上这种入门级的demo也拿来说事,但凡学IT的都懂的,这上面的东西都给初学者用的,也就是三天入门的水平,跟实际中相差太远.
是我们公司用cayenne,而不是我自己用,怎么用也是跟公司学的,公司开发的几种产品已经投放市场多年了,其中有好几个用的是cayenne,数据库和配置有专门的同事负责,工作20多年了,敢情水平还赶不上你,还赶不上IMB网站这种入门教程? 呵呵,歇歇吧
我想我会
发表于 2016-11-29 20:41
adgjl 发表于 2016-11-29 10:12
别把自己想太重要了,开始布置任务叫你做,那是Kapazitätsplanung,当然得指定个人做,又不是教你各人 ...
你们可能不了解情况,我们这个架构确实混工作,他水平还是可以的,强项在模块组合,就因为有这个在手,所以平时工作就是混,关键的地方他上来给弄好了,其它的工作就马马虎虎,公司也不敢拿他怎么样,经常自相矛盾,出尔反尔,说话和布置任务都不过脑子
我们team不大,所以一个人一个坑,每个人的时间都挺宝贵,像这个任务,他连aktenzeichenzahl的定义都没明确,到底是什么含义,有没有实际意义,这都属于定义的问题,这都没搞明白就叫别人做,这肯定是白做,更别说其它方面了,如果aktenzeichzahl有意义,应该用uuid,不可能表里只有一个主键列还自增,布置任务的时候可没说他还没想好
去找他,经常碰见他在偷偷的打游戏或者浏览其它网站,这个货的工作态度就是吊儿郎当,有时候自己出错了,就找别人背黑锅