V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Hanggi
V2EX  ›  Java

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

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

    简单列一下:

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

    Spring boot 感觉替代方案很多。

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

    第 1 条附言  ·  2021-12-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  
       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 有足够多的解决方案资料。

    所以你缺少一个场景去考虑你的方案。
    hand515
        10
    hand515  
       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   ·   实用小工具   ·   2376 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 16:05 · PVG 00:05 · LAX 08:05 · JFK 11:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.