有什么比较容易上手的 Java 中间件吗,想选一个学习一下源码 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
falsemask
V2EX    Java

有什么比较容易上手的 Java 中间件吗,想选一个学习一下源码

  •  1
     
  •   falsemask 2019 年 4 月 12 日 4994 次点击
    这是一个创建于 2520 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想通过阅读源码提高一下设计能力和代码能力

    第 1 条附言    2019 年 4 月 13 日
    感谢大家的推荐,不局限于中间件,一些容易上手的工具库也可以
    22 条回复    2019-04-14 12:01:25 +08:00
    gosansam
        1
    gosansam  
       2019 年 4 月 12 日
    dubbo 吧
    Cbdy
        2
    Cbdy  
       2019 年 4 月 13 日 via Android
    tomcat
    gramyang
        3
    gramyang  
       2019 年 4 月 13 日 via Android
    @Cbdy 看过 tomcat,代码量太大太大摸不清头绪,原理其实很简单,就是根据协议来拆包罢了。感觉投入时间和成果不成正比
    mmdsun
        4
    mmdsun  
       2019 年 4 月 13 日 via Android
    卡夫卡吧。dubbo 代码写的不太好
    luckylo
        5
    luckylo  
       2019 年 4 月 13 日 via Android
    中间价不推荐。既然是看源码,你不看 spring ?
    MoHen9
        6
    MoHen9  
       2019 年 4 月 13 日 via Android
    看 Netty,之后可以看看别人根据 Netty 实现的 RPC 框架,或者 socket-io,以及有想法后自己去做一些事。
    MoHen9
        7
    MoHen9  
       2019 年 4 月 13 日 via Android
    不好意思,netty 的代码不易懂,链式调用更加迷惑,想学习,我还是推荐看 retrofit,里面的代码非常棒,不过它就是个简单的库,跟中间件一毛钱关系没有
    xuxueli
        8
    xuxueli  
       2019 年 4 月 13 日 via Android   1
    falsemask
        9
    falsemask  
    OP
       2019 年 4 月 13 日
    @luckylo spring 的源码是不是太复杂了,感觉类的继承体系太庞大
    falsemask
        10
    falsemask  
    OP
       2019 年 4 月 13 日
    @mmdsun 还是想了解一些 java 语言写的,学习一些 java 语言方面的技巧
    falsemask
        11
    falsemask  
    OP
       2019 年 4 月 13 日
    @MoHen9 库也可以学习,谢谢,netty 后面也会看的,很多中间件通信都是用的这个
    loveCoding
        12
    loveCoding  
       2019 年 4 月 13 日
    微博的 netty rpc 框架 motan ,非常值得一看,尤其是结合李林锋的<<分布式服务框架:原理与实践
    >>一起看
    TommyLemon
        13
    TommyLemon  
       2019 年 4 月 13 日   1

    码云最有价值开源项目,GitHub 5.5K Star
    后端接口和文档自动化,前端(客户端) 定制返回 JSON 的数据和结构!
    才 47 个 Java 类,容易上手,点 Star 支持下吧 ^_^
    https://github.com/TommyLemon/APIJSON
    passerbytiny
        14
    passerbytiny  
       2019 年 4 月 13 日
    如果你要提高设计能力,那么不要看框架的源码,要么事倍功半,要么思路被局限,而且框架本身和框架的使用还有可能采用不同的设计思路。

    愿意花钱直接买书,愿意花时间就去扒各大框架的最新(英文原文)开发指导。
    rizon
        15
    rizon  
       2019 年 4 月 13 日
    @TommyLemon #13 这个项目我已经看了很多次了,但是有个问题就是,不知道到底是干啥的。虽然文档里说了这是个什么,但是我真的觉得没有讲清楚。。也许是我理解力不够,但我真觉得这个项目的 what is it 写的真的不好。。或者说对一部分人不友好吧。。

    按我的理解:
    定位:这是一个给前端人员使用的框架?
    作用:这是一个屏蔽后台的前端开发工具?可以自动化的实现常用的增删查改后台代码,而不再需要后台开发?

    但是从文档中的一些只言片语,我又觉得不是我理解的这个意思。。总之就是至今也不知道是干啥的。
    rizon
        16
    rizon  
       2019 年 4 月 13 日
    @rizon #15 对于当局者,感觉很好理解。但是从事不同角色的开发者,所接触的内容不一样,对一个事物的看法理解都有所不同,这就像公司内前后端开发以及与产品交流时,就需要把自己的事情转换成对方好理解的东西来描述,而不是站在自己的开发角度来描述。
    当一个路人打开一个高 star 项目。然后几分钟看一下文档,却不知道这个是不是和自己有关系的东西,不知道这是个干啥的。。就很难受了。。
    TommyLemon
        17
    TommyLemon  
       2019 年 4 月 13 日
    @rizon 一种 JSON 网络传输协议,相应地提供了自动化接口和文档的 ORM 库。
    A JSON Transmission Protocol and an ORM Library for auto providing APIs and Documents.

    前后端通过 APIJSON 协议去做数据交换,前端(客户端)传 APIJSON 格式的 JSON,后端自动解析并 CRUD。
    t/507671
    amwyyyy
        18
    amwyyyy  
       2019 年 4 月 13 日
    我最近看的携程的 apollo,中文文档齐全,阅读难度不高,知识面广。
    TommyLemon
        19
    TommyLemon  
       2019 年 4 月 13 日
    @TommyLemon
    不管你是前端(客户端)还是后端开发者,
    如果你受够了前后端沟通、文档、联调等各种问题,
    那么就可以考虑用 APIJSON 来解决。

    为什么要用 APIJSON ?前后端 10 大痛点解析
    https://github.com/TommyLemon/APIJSON/wiki
    nian8
        20
    nian8  
       2019 年 4 月 13 日 via Android
    感觉还是 netty 吧,一般也是拿网上别人的博客对着源码看咯
    TommyLemon
        21
    TommyLemon  
       2019 年 4 月 13 日
    APIJSON 连 初期构思及实现.docx 文档都提供了
    https://github.com/TommyLemon/APIJSON/

    还有实现原理
    https://github.com/TommyLemon/APIJSON/issues/38/
    zndbly
        22
    zndbly  
       2019 年 4 月 14 日 via Android
    先看 rpc 吧,看完自己再实现个简单的。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2755 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 14:47 PVG 22:47 LAX 06:47 JFK 09:47
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86