是时候寻找 Java 的替代方案了 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Hanggi
V2EX    Java

是时候寻找 Java 的替代方案了

  •  
  •   Hanggi 2021-12-13 17:07:46 +08:00 via iPhone 10500 次点击
    这是一个创建于 1398 天前的主题,其中的信息可能已经有所发展或是发生改变。

    简单列一下:

    Elasticsearch 用什么替代? ELK 有什么优质替代方案吗? Spark 有什么好的分布式计算替代方案吗?

    Spring boot 感觉替代方案很多。

    还有什么推荐的替代项目吗?

    第 1 条附言    202112-14 17:11:37 +08:00
    目前 Elasticsearch 替代方案有以下:

    Library: bleve

    服务:Typesense (C++), Sonic (Rust)

    有 Go 语言解决方案的话求推荐。

    ---

    还有什么好项目求推荐.
    49 条回复    2021-12-15 00:08:10 +08:00
    as9567585
        1
    as9567585  
       2021-12-13 17:15:18 +08:00
    为什么呢
    ferock
        2
    ferock  
    PRO
       2021-12-13 17:16:11 +08:00   3
    替代完了,其他语言就没 bug 了?

    现在啥语言顶层应用,底下没有一堆依赖?这样的解决方案是换汤不换药
    yazinnnn
        3
    yazinnnn  
       2021-12-13 17:41:13 +08:00   3
    楼主有心的话,可以用.net 把 java 的轮子全撸一遍,反正 C#语法跟 java 差不多。F#撸一遍 SCALA 的轮子
    james2013
        4
    james2013  
       2021-12-13 17:50:41 +08:00   1
    Spring boot 感觉替代方案很多,这话不太赞同
    Spring boot 除了占用内存相对高些,以下的优点有哪些替代方案能够综合比它好的:
    1.开发速度快,创建 1 个 Spring boot 项目,只需要在配置文件填入 redis/mysql 账号密码,就能够使用了.
    2.开源生态非常成熟,mybatis 及进一步封装的 orm 框架可以很方便的进行增删查改,甚至有管理系统的脚手架,权限,微服务等都配置好了
    3.扩展性强,从个人项目到大厂项目,用这个框架都可以满足
    4.Java 强类型,不管是小白还是老手,写出的代码可读性比 python 高多了,python 逻辑写复杂了,过几个月,自己都不知道写什么了
    5.Java 开发人员人数众多
    Hanggi
        5
    Hanggi  
    OP
       2021-12-13 17:50:58 +08:00 via iPhone
    @ferock 其实只是想找找最近有什么好的开源项目,Elasticsearch 和分布式计算好像被 Java 垄断了,看看能不能炸出什么好东西。
    Hanggi
        6
    Hanggi  
    OP
       2021-12-13 17:57:01 +08:00 via iPhone
    @james2013 同意
    单从某一个角度来说 Spring boot 并非最佳,但是整体来说可能是综合能力最好的框架。
    gesse
        7
    gesse  
       2021-12-13 18:04:12 +08:00
    @yazinnnn
    按照常理应该已经撸了很多了。
    qwerthhusn
        8
    qwerthhusn  
       2021-12-13 18:07:26 +08:00
    你说的那些软件又不是只有 Java 能用,比如 ES 提供的就是 HTTP API 用啥语言不一样?
    a398058068
        9
    a398058068  
       2021-12-13 18:43:04 +08:00
    你需要给这个话题拟设一个场景,spring mybatis hibernate elk mysql hadoop spark flink 这些框架和中间件都有对应的替代方案,只不过是在不同的场景, 并非通吃。 当然杀鸡用宰牛刀也是可以的。

    比如国内用 mybatis 的企业比用 hibernate 的多。 你不能说 hibernate 好 也不能说 mybatis 不好。可能你的系统属于 OLTP ,并且团队内的人都懂 DDD 配合也相对较好不用较大的学习成本,这时用 hibernate 可以减少后期的维护成本并足以应对后期的复杂需求的迭代开发。

    比 elk 更轻量级的 loki 也是一个道理 如果觉得 elk 重可以考虑 loki ,但是你需要考虑你的系统的体量 loki 是否可以满足同时目前的人员是否足以解决 loki 带来的问题,因为他不像 elk 有足够多的解决方案资料。

    所以你缺少一个场景去考虑你的方案。
    Finest
        10
    Finest  
       2021-12-13 18:53:28 +08:00
    @qwerthhusn #8 OP 提的都是 Java 开发的,他意思是有没有其他语言开发,跟 ES 、Spark 一样功能的
    selfcreditgiving
        11
    selfcreditgiving  
       2021-12-13 19:00:53 +08:00 via Android
    @hand515 话说这个新加的 OP 是啥,还挺好看的,就是不知道什么意思
    guog
        12
    guog  
       2021-12-13 19:03:16 +08:00 via Android
    dreamramon
        13
    dreamramon  
       2021-12-13 19:06:50 +08:00
    所有语言都写,说实话,还真没看到一个能和 spring 对打的,适合大工程,国内招聘环境,国内开发环境的框架。
    nebkad
        14
    nebkad  
       2021-12-13 19:12:47 +08:00
    xuanbg
        15
    xuanbg  
       2021-12-13 19:22:23 +08:00
    @qwerthhusn 楼主说的是用别的替代 ES 。。。
    xuanbg
        16
    xuanbg  
       2021-12-13 19:24:36 +08:00
    说实话,有问题解决问题,有漏洞打补丁就行了。替代啥啊,换来换去有本质不同吗?能多赚钱吗?下班准时回家,周末出去溜达不香吗?
    fkdog
        17
    fkdog  
       2021-12-13 19:32:55 +08:00
    优秀的程序员:
    出现需求->寻求市面上成熟的解决方案->出现疑虑困惑->通过各种途径解决使用困惑->问题属于硬伤无法解决->有能力则自己造轮子,没能力退而求其次选择其他方案

    抠脚程序员:
    出现需求->寻求市面上成熟的解决方案->选择 ES->ES 出现问题->换 SOLR->SOLR 出现问题->自己研究 LUENCE->能力有限研究不出来->?好像 pg 也有 full text search ?-> 感觉不好用->再次换回 ES
    Buges
        18
    Buges  
       2021-12-13 19:48:33 +08:00 via Android   1
    如果只是简单的搜索引擎,可以试试 https://github.com/meilisearch/MeiliSearch
    比 es 轻量、易用的多。
    kidonng
        19
    kidonng  
       2021-12-13 19:53:19 +08:00 via Android
    是框架选择了 Java ,觉得框架不符合需求为什么要 Java 背锅
    FightPig
        20
    FightPig  
       2021-12-13 20:02:46 +08:00
    https://github.com/prabhatsharma/zinc 最近看到的 es 的代替
    janxin
        21
    janxin  
       2021-12-13 20:11:25 +08:00
    应该先讲为什么要替代...
    ychost
        22
    ychost  
       2021-12-13 20:14:13 +08:00
    用 Go 呗,不过问题肯定不必 Java 少
    p2pCoder
        23
    p2pCoder  
       2021-12-13 20:24:06 +08:00
    重写大数据生态圈
    ijk0
        24
    ijk0  
       2021-12-13 20:50:18 +08:00
    @selfcreditgiving original poster
    selfcreditgiving
        25
    selfcreditgiving  
       2021-12-14 00:31:04 +08:00 via Android
    @guog
    @ijk0 哦,是这个意思,还以为是拼音缩写或者楼主的直译 owner of post
    LeeReamond
        26
    LeeReamond  
       2021-12-14 01:54:46 +08:00
    @james2013 py 非严格类型不利于测试覆盖倒是真的,你要是说写的代码过两个月就不知道写的是啥了,那只能说写的相当随性,你用随性的态度这 java 一样不知道写的是什么,你用严格的标准写 python 一样可读性非常高
    dayeye2006199
        27
    dayeye2006199  
       2021-12-14 03:25:41 +08:00
    为什么要换掉这些技术栈呢,是因为这次 log4j 的事件吗?

    给 LZ 提供一个新的思路,直接使用各种 managed service ,人家有专门的安全团队、运维团队,出了问题一个电话人连夜修;只要付钱,轻松省事。

    Managed elastic - https://www.elastic.co/elastic-stack/
    Managed spark - https://databricks.com/
    thetbw
        28
    thetbw  
       2021-12-14 08:58:57 +08:00
    kotlin
    banmuyutian
        29
    banmuyutian  
       2021-12-14 09:06:25 +08:00
    没有银弹
    fengsi
        30
    fengsi  
       2021-12-14 09:21:17 +08:00 via Android
    @james2013 老哥,管理系统的脚手架能推荐一两个吗
    dcoder
        31
    dcoder  
       2021-12-14 09:34:41 +08:00
    masterclock
        32
    masterclock  
       2021-12-14 09:42:24 +08:00
    欢迎使用 Scala ,继承 Java 的一切,当然,包括 bug
    aboat365
        33
    aboat365  
       2021-12-14 09:48:22 +08:00
    anonydmer
        34
    anonydmer  
       2021-12-14 10:13:15 +08:00
    恩,业界已经替代了几十年了
    Hanggi
        35
    Hanggi  
    OP
       2021-12-14 10:13:50 +08:00
    @dcoder 这个有点意思,可以研究一下,但好像是 library 而不是 server 。
    grofis
        36
    grofis  
       2021-12-14 10:18:52 +08:00
    Nodejs
    james2013
        37
    james2013  
       2021-12-14 10:24:18 +08:00
    @fengsi 我用过的 jeecg-boot,mall 感觉不错,尤其是 jeecg-boot
    对自带的模版进行修改,一键生成前后端代码,再进行写具体业务逻辑
    iovekkk
        38
    iovekkk  
       2021-12-14 11:19:44 +08:00
    后端用 go
    客户端用 kotlin
    Ayanokouji
        39
    Ayanokouji  
       2021-12-14 11:37:31 +08:00
    linux 那么多 bug ,还要自己造操作系统替代吗
    ikas
        40
    ikas  
       2021-12-14 13:29:06 +08:00
    多看看 cve,cnnvd 列表,多关注下 xss..你会发现...这世界如此的不安全...用啥都一样
    pengtdyd
        41
    pengtdyd  
       2021-12-14 14:02:19 +08:00
    JAVA 语言在 web 后端架构上无出其右,其他语言只能补充,不能替代。
    CynicalRose
        42
    CynicalRose  
       2021-12-14 15:07:27 +08:00
    如果真有代替 spring boot 的方案,务必告诉我,学写 starter 快吐了
    Leviathann
        43
    Leviathann  
       2021-12-14 15:09:20 +08:00
    @pengtdyd 大数据的话是这样,但是普通的 crud 后端国外还是挺百花齐放的
    keymao
        44
    keymao  
       2021-12-14 15:18:31 +08:00
    Springboot 替代方案很多..... 额 不知道从何说起

    这个行当的最佳实践不太多,最终大浪淘沙下来可能就这么一个或两个,换来换去你会发现其设计思路都差不多,bug 也一点没少。
    TomatoYuyuko
        45
    TomatoYuyuko  
       2021-12-14 15:21:52 +08:00
    这帖子我每年都能见到至少一次
    efaun
        46
    efaun  
       2021-12-14 15:23:14 +08:00
    用 php
    xiparos
        47
    xiparos  
       2021-12-14 19:14:45 +08:00
    你要是想替代就自己撸个其他语言的 Spring 全家桶出来,撸不出来就老老实实用
    mmdsun
        48
    mmdsun  
       2021-12-14 19:55:52 +08:00 via iPhone
    能替换整个 Java 生态的也只有隔壁.NET
    https://dotnet.microsoft.com/zh-cn/

    大数据这块全部用微软的解决方案。
    SQL Server 2019 全文检索,Spark ,数据仓库和 BI 到 AI 和高级数据分析全部都有了。上云也行
    ByteCat
        49
    ByteCat  
       2021-12-15 00:08:10 +08:00
    Spring Boot 很成熟了,不喜欢 Java 可以用 Kotlin ,我做了好几个项目了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2686 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 14:11 PVG 22:11 LAX 07:11 JFK 10:11
    Do have faith in what you're doing.
    ubao 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