f*****w 发帖数: 2602 | 1 我读了下文档 还没有任何实战经验。 如果我要加入ebean 作为ORM的话 这样子搞可
以么 能不能请zhaoce大牛评论下
找了下没有现成的ebean的module,所以我就把ebean的包,以及我自己所有的entity
class 全都放在一个module下 (设置为worker)。然后在这个module初始化配置里面
允许修改数据库连接信息,这样就可以容易测试。然后每个transaction级别的数据库
操作 我全都设置一个handler
然后主要的逻辑放在另外一个非worker的module里面,然后在需要数据库操作的时候调
用ebean module。
可是这样做的唯一一个疑问是 这样我就会非常频繁地使用json在这两个module之间调
用。我的数据量如果不trivial的话 岂不是大量数据serialize/deserialize的
overhead会相当之大? |
p*****2 发帖数: 21240 | 2 Vert.x就算了吧 一堆坑
面
【在 f*****w 的大作中提到】 : 我读了下文档 还没有任何实战经验。 如果我要加入ebean 作为ORM的话 这样子搞可 : 以么 能不能请zhaoce大牛评论下 : 找了下没有现成的ebean的module,所以我就把ebean的包,以及我自己所有的entity : class 全都放在一个module下 (设置为worker)。然后在这个module初始化配置里面 : 允许修改数据库连接信息,这样就可以容易测试。然后每个transaction级别的数据库 : 操作 我全都设置一个handler : 然后主要的逻辑放在另外一个非worker的module里面,然后在需要数据库操作的时候调 : 用ebean module。 : 可是这样做的唯一一个疑问是 这样我就会非常频繁地使用json在这两个module之间调 : 用。我的数据量如果不trivial的话 岂不是大量数据serialize/deserialize的
|
f*****w 发帖数: 2602 | 3 能举个例子吗
【在 p*****2 的大作中提到】 : Vert.x就算了吧 一堆坑 : : 面
|
p*****2 发帖数: 21240 | 4 我在公司负责arch review 很多人都考虑过但是放弃了 说是不好用
【在 f*****w 的大作中提到】 : 能举个例子吗
|
f*****w 发帖数: 2602 | 5 最推荐的能取代的java库是什么 能推荐一个吗
【在 p*****2 的大作中提到】 : 我在公司负责arch review 很多人都考虑过但是放弃了 说是不好用
|
p*****2 发帖数: 21240 | 6
Java库多,但是确实好用的少,只能凑活
【在 f*****w 的大作中提到】 : 最推荐的能取代的java库是什么 能推荐一个吗
|
z****e 发帖数: 54598 | 7 你做得很好啊
就应该这样做
至于大量的serialize/deserialize
这个你没有办法
因为现阶段,异步和同步本质是冲突的
同步会导致block,which异步是不能接受的
现阶段木有很好的办法予以解决
除非你弃用orm也就是db那些
或者尝试着用rxjava那个rxjava-jdbc
这样的话,你就可以不用worker了
另外就是,那个bus是你内部bus,远比网络要快得多
也就是比你监听port的那个mod的io要快速高效得多
所以除了内存用得多点以外,理论上不会有啥太大问题
内存现在便宜得跟啥一样,我觉得你不用在乎
用cloud的话,这些都很cheap了
另外,vert.x的运行效率秒杀node.js
你可以随手google vert.x vs node.js
tim fox那篇文章目前为止还是无人反驳得了的
面
【在 f*****w 的大作中提到】 : 我读了下文档 还没有任何实战经验。 如果我要加入ebean 作为ORM的话 这样子搞可 : 以么 能不能请zhaoce大牛评论下 : 找了下没有现成的ebean的module,所以我就把ebean的包,以及我自己所有的entity : class 全都放在一个module下 (设置为worker)。然后在这个module初始化配置里面 : 允许修改数据库连接信息,这样就可以容易测试。然后每个transaction级别的数据库 : 操作 我全都设置一个handler : 然后主要的逻辑放在另外一个非worker的module里面,然后在需要数据库操作的时候调 : 用ebean module。 : 可是这样做的唯一一个疑问是 这样我就会非常频繁地使用json在这两个module之间调 : 用。我的数据量如果不trivial的话 岂不是大量数据serialize/deserialize的
|
z****e 发帖数: 54598 | 8 就vert.x就好了
自己动手,丰衣足食
如果你想看看更好的
听说undertow更好
效率更高
但是servlet,你可能不是很喜欢
但是足够傻瓜,比play更简单
各种web servers的对比
https://www.techempower.com/benchmarks/#section=data-r9
r9 vert.x的tim对于测试者用的版本提出异议
认为版本太久,因为vert.x做了大量的改良
所以r9的话vert.x退出评测
你可以看到undertow排行总是靠前
vert.x在以前测试中也比较靠前
总体servlet也很靠前,undertow是下一代servlet
【在 f*****w 的大作中提到】 : 最推荐的能取代的java库是什么 能推荐一个吗
|
z****e 发帖数: 54598 | 9 对于vert.x除了内存使用比较高以外
没有啥其他看法,理论上你把所有代码写成一堆
是效率最高的,但是这样不利于代码的维护和分工
分开比较好,模块化代码更加清晰,也便于他人接盘 |
z****e 发帖数: 54598 | 10 另外你的这个module可以优化跟数据库连接的效率
有很多第三方的连接池什么的
你可以直接下下来用,这样你的module每次跟数据库的操作就可以加速了
否则每次操作都建立连接的话,会比较慢
面
【在 f*****w 的大作中提到】 : 我读了下文档 还没有任何实战经验。 如果我要加入ebean 作为ORM的话 这样子搞可 : 以么 能不能请zhaoce大牛评论下 : 找了下没有现成的ebean的module,所以我就把ebean的包,以及我自己所有的entity : class 全都放在一个module下 (设置为worker)。然后在这个module初始化配置里面 : 允许修改数据库连接信息,这样就可以容易测试。然后每个transaction级别的数据库 : 操作 我全都设置一个handler : 然后主要的逻辑放在另外一个非worker的module里面,然后在需要数据库操作的时候调 : 用ebean module。 : 可是这样做的唯一一个疑问是 这样我就会非常频繁地使用json在这两个module之间调 : 用。我的数据量如果不trivial的话 岂不是大量数据serialize/deserialize的
|
|
|
z****e 发帖数: 54598 | 11 serialize/deserialize是纯粹内存操作
速度绝对秒杀bus,如果你需要用到intranet的话
然后intranet速度秒杀internet,也就是外网
所以除非你很在乎内存,否则我觉得你没有必要关心这个
内存不够就加吧,cloud上扩展点内存才几个钱,cheap
面
【在 f*****w 的大作中提到】 : 我读了下文档 还没有任何实战经验。 如果我要加入ebean 作为ORM的话 这样子搞可 : 以么 能不能请zhaoce大牛评论下 : 找了下没有现成的ebean的module,所以我就把ebean的包,以及我自己所有的entity : class 全都放在一个module下 (设置为worker)。然后在这个module初始化配置里面 : 允许修改数据库连接信息,这样就可以容易测试。然后每个transaction级别的数据库 : 操作 我全都设置一个handler : 然后主要的逻辑放在另外一个非worker的module里面,然后在需要数据库操作的时候调 : 用ebean module。 : 可是这样做的唯一一个疑问是 这样我就会非常频繁地使用json在这两个module之间调 : 用。我的数据量如果不trivial的话 岂不是大量数据serialize/deserialize的
|
d****n 发帖数: 1637 | |
z****e 发帖数: 54598 | 13 目前为止我找到的最兼容的框架
兼容性最强的框架,其他都不如这个
除非你自己做
【在 d****n 的大作中提到】 : vert.x 是不是样样通,样样那啥~
|
d****n 发帖数: 1637 | 14 俺没没那个本事。
但是meta programming 不是我的理念。(也不喜欢重新造轮子)
还是谢谢介绍
【在 z****e 的大作中提到】 : 目前为止我找到的最兼容的框架 : 兼容性最强的框架,其他都不如这个 : 除非你自己做
|
f*****w 发帖数: 2602 | 15 请问你有更加好的建议吗?
【在 d****n 的大作中提到】 : vert.x 是不是样样通,样样那啥~
|
f*****w 发帖数: 2602 | 16 非常感谢不厌其烦马了这麽多字啊! ;-)
【在 z****e 的大作中提到】 : 你做得很好啊 : 就应该这样做 : 至于大量的serialize/deserialize : 这个你没有办法 : 因为现阶段,异步和同步本质是冲突的 : 同步会导致block,which异步是不能接受的 : 现阶段木有很好的办法予以解决 : 除非你弃用orm也就是db那些 : 或者尝试着用rxjava那个rxjava-jdbc : 这样的话,你就可以不用worker了
|