
但凡你在 Google 上一搜索微服务,你就会发现全都是使用 Spring 全家桶来实现的。
微服务架构本来应该是语言无关的,但是被这群使用 Java 的人搞得就像是专门为 Java 定制的一样。
欢迎各位在这里讨论一下,在你们的项目中,有项目使用了微服务架构,但是没有任何一个地方使用 Java 技术栈吗?具体是怎么做的?用的是什么语言?
请大家不要引战。
专注于讨论在不实用Java的情况下,实现全套微服务。
1 arrow8899 2019-08-09 09:57:04 +08:00 什么叫“被这群使用 Java 的人搞得就像是专门为 Java 定制的一样”?? 用 Java 的人多自然框架使用的人就多啊,SpringCloud 开源微服务的框架,是为了让写代码更方便,效率更高。如果你不用 Java,你可以用你的语言写一个微服务框架出来。 |
2 hyl24 2019-08-09 10:00:44 +08:00 什么叫“被这群使用 Java 的人搞得就像是专门为 Java 定制的一样”?? 用 Java 的人多自然框架使用的人就多啊,SpringCloud 开源微服务的框架,是为了让写代码更方便,效率更高。如果你不用 Java,你可以用你的语言写一个微服务框架出来。 |
3 liuxey 2019-08-09 10:02:50 +08:00 我觉得不需要讨论,楼主的结论就是 "Java 这群人真讨厌" |
4 leon0318 2019-08-09 10:05:07 +08:00 via Android 思想都是一样的,将业务功能模块化呗,再加上注册中心,网关转发,熔断降级,全链路追踪,就这些东西,剩下的就和单体应用一样 |
5 acrisliu 2019-08-09 10:07:47 +08:00 via Android 怪这群搞 Java 的人??? |
6 wizzer 2019-08-09 10:10:18 +08:00 github.com/Wizzercn/NutzWk 非 spring 系列的 java 开源微服务~~ |
7 weo0 2019-08-09 10:14:06 +08:00 别贴标签,很恶心。 |
8 Kilerd 2019-08-09 10:16:35 +08:00 来,WIP 勉强能用的 Rust 微服务 https://github.com/tower-rs/tower |
9 likaka 2019-08-09 10:18:37 +08:00 柠檬精 |
11 dovme 2019-08-09 10:28:16 +08:00 谁让 java 人多呢,要是 php 人多,谷歌搜出来的肯定是 php 啊,那你会不会又发帖子问“微服务架构本来应该是语言无关的,但是被这群使用 php 的人搞得就像是专门为 php 定制的一样。” |
12 xsir2020 2019-08-09 10:30:23 +08:00 嗯,站在标准的角度,熟悉 REST 设计指南,无疑就让 api 设计成功了一半。 https://www.hn-tech.net/tags/Microsoft-REST-API 指南中文翻译 / |
13 limuyan44 2019-08-09 10:33:23 +08:00 微服务架构本来应该是语言无关的,但是被你们这些认为[[这群使用 Java 的人搞得就像是专门为 Java 定制的一样]]搞得就像是专门为 Java 定制的一样。 |
14 Kilerd 2019-08-09 10:35:08 +08:00 @ZiLong #10 独立的,tower 自己实现了 application 部分, 底层逻辑交给了 hyper 来处理 http 周期, 用了 http_parse_hyper 来做了两部分的连接 |
15 wineway 2019-08-09 10:35:40 +08:00 via iPhone springcloud 这东西就是邪路 |
16 abdiweli 2019-08-09 10:39:59 +08:00 你这样说我们写 Java 的很伤心啊! |
17 strry 2019-08-09 10:40:13 +08:00 告诉 LZ 一个秘密, 汇编 ,C, 一样可以实现微服务 就看你想不想写了(滑稽 |
18 wysnylc 2019-08-09 10:44:23 +08:00 ????????自己菜不会写 SOA,别人写了还要被你说?脑回路清奇 |
19 chocotan 2019-08-09 10:50:40 +08:00 某外国写书的大佬介绍微服务就是以 netflix 那一套举例的 |
20 itskingname OP 正经讨论不引战。 如果不用 Java,你是怎么 实现 注册中心,网关转发,熔断降级,全链路追踪。 |
21 ResidualWind 2019-08-09 10:51:45 +08:00 楼主是故意的吧! |
22 itskingname OP @chocotan 这本书我有。 |
23 janxin 2019-08-09 10:52:27 +08:00 你只是讨厌 Java ? 我搜索了一下第一页基本都是介绍概念的啊 |
24 itskingname OP @ResidualWind 不是。我只想认真讨论不使用 Java 技术栈的情况下如何实现全套微服务。 |
25 Raymon111111 2019-08-09 10:53:11 +08:00 所以搞 java 的人阻止你用别的语言了? |
26 th00000 2019-08-09 10:55:12 +08:00 服务治理是一种思想 你用汇编都能做 |
27 notreami 2019-08-09 10:59:31 +08:00 楼主的结论就是 "Java 真讨厌" |
28 ghos 2019-08-09 11:02:24 +08:00 golang 不也有很多吗 一搜一大把 |
29 itskingname OP |
32 chanchan 2019-08-09 11:05:30 +08:00 翻译一下,我谷歌搜不到用别的语言实现微服务.都怪这群搞 java 的 |
33 lihongjie0209 2019-08-09 11:08:13 +08:00 [讨论] 大家来聊聊,不实用 Java 实现的设计模式 |
34 littleghosty 2019-08-09 11:10:34 +08:00 via iPhone 使用 java 是我的错咯? |
35 th00000 2019-08-09 11:10:39 +08:00 @itskingname 语言怎么会绑定你的思想 思想是思想 语言是工具 另外你说的全都是 Spring 全家桶来实现的 不敢苟同 即使是用 Java 可选的工具也是一堆一堆的 中间件都是所有语言共用的 跟 Java 没有必然关系 你会有这种疑问 完全是因为你没有深入下去 没有真正搞懂什么叫 **微服务!** |
36 snappyone 2019-08-09 11:10:41 +08:00 用 k8s 啊 |
37 Sendya 2019-08-09 11:12:11 +08:00 用 Go 做了套 微服务概念的 程序 算不算? 当然我这种 CRUD boy 是根本不可能做到开发微服务的基础组件(注册中心,熔断,等) 当然是用现成的。 另外,我是作 Java 开发的。楼主这提问方式有点骚  |
38 helloworldgo 2019-08-09 11:13:46 +08:00 via iPhone 看帖子是真想骂人 |
39 gramyang 2019-08-09 11:19:26 +08:00 用 gomicro 啊,到现在为止没有发现 go 不如 java 的地方,几乎所有的写法都比 java 更简洁 |
40 silverfox 2019-08-09 11:22:53 +08:00 我这边做的是微服务架构,大部分业务服务是基于 ASP.Net Core 开发,还有一部分使用的是 Apache CXF 实现 SOAP 服务(因为目前 .Net Core 没有 WCF Services Host 成熟实现),一部分服务使用 Node.js 实现。 我不太理解为什么要规避 Java 技术栈,根据不同的业务场景和当前开发资源的情况,选择合适的编程语言是微服务的一大优势。 另外 Java 与 Spring Cloud 并不等价,至于如何实现微服务的功能取决于你的基础设施。比如是基于 Kubernetes 的,那么服务发现可以使用 Kubernetes Service,网关可以用 Ingress Controller,熔断模式根据不同的编程语言可以使用不同的类库(比如 Polly ),调用链追踪继续使用 Jaeger。 只是这些技术可能不是开箱即可用的,需要花费时间与资源构造与磨合。如何进行技术选型取决于当时的情景,不能一概而论。 |
41 joooooker21 2019-08-09 11:25:37 +08:00 写 java 的听了内心毫无波澜,甚至还有点想笑 |
42 carpe 2019-08-09 11:26:25 +08:00 什么叫“被这群使用 Java 的人搞得就像是专门为 Java 定制的一样”?? 用 Java 的人多自然框架使用的人就多啊,SpringCloud 开源微服务的框架,是为了让写代码更方便,效率更高。如果你不用 Java,你可以用你的语言写一个微服务框架出来。 |
43 binjoo 2019-08-09 11:32:33 +08:00 但凡你在 Google 上一搜索微服务,你就会发现全都是使用 Spring 全家桶来实现的。 欢迎各位在这里讨论一下,在你们的项目中,有项目使用了微服务架构,但是没有任何一个地方使用 Java 技术栈吗?具体是怎么做的?用的是什么语言? --------- |
44 arry 2019-08-09 11:32:40 +08:00 自己引战还叫人别引战,哈哈哈哈 |
45 leishi1313 2019-08-09 11:36:45 +08:00 你可能只是想吐槽到处都是一提微服务就是 spring boot,但我觉得可能只是老是用中文搜索得到的偏见,我前段日子对微服务很感兴趣,搜了很多文章,基本英文搜索结果你不特意提,没人把微服务跟 spring boot 联系在一起。相反微服务的优势就是可以用不同的 stack 来实现一个系统的不同部分,这方面可以去看看 github.com/GoogleCloudPlatform/microservices-demo,用了 5 种语言用微服务实现了一个不小不大的系统,只有一个服务是 java 写的,而且也没用 spring boot,这其实才是微服务的典型应用 |
46 lxfxf 2019-08-09 11:38:50 +08:00 那就用 Scala,手动狗头 |
47 sniperPythoner 2019-08-09 11:42:40 +08:00 就我知道的来说,只有 JAVA 有比较成熟的微服务框架。接受现实吧,现在互联网收紧,各个公司都趋于保守,而 JAVA 能满足他们的需求 |
48 simple2025 2019-08-09 11:42:59 +08:00 总比一微服务就 golang 适合做微服务好吧 |
49 MotherShip 2019-08-09 11:48:04 +08:00 不服你自己动手造轮子啊,no bb show code |
50 fkmc 2019-08-09 11:48:52 +08:00 会说话就多说点.. 某某语言 微服务技术栈有哪些? |
52 passerbytiny 2019-08-09 12:04:19 +08:00 但凡你去咨询一下哪里足球踢得好,你就会发现世界冠军全是欧美(欧洲+南美)的。 足球本来是全世界的(中国人发明的),但是被这群欧美人搞得搞得就像是专门为欧美定制的一样。 欢迎各位在这里讨论一下,在你们的项目中,有足球世界冠军不是欧美人的吗?具体是怎么做到的? 请大家不要引战。 专注于讨论中国足球怎么成为世界冠军。 |
53 ZiLong 2019-08-09 12:07:32 +08:00 Java 也不全是 Spring 系,虽然 Spring 是主流,例如 https://quarkus.io/至少带来了一股清风的感觉 |
54 itskingname OP |
55 itechify PRO 微服务只是一种思想,实现起来,由于 JAVA 基数多,springcloud 体系也相对成熟点,所以搜索出来也相对多,但得出搞得 XXX 一样结论是由于你对搜索结果的不满 |
56 passerbytiny 2019-08-09 12:37:06 +08:00 test |
57 passerbytiny 2019-08-09 12:40:23 +08:00 |
58 agagega 2019-08-09 12:41:45 +08:00 via iPhone 你换成英文搜索下 |
59 passerbytiny 2019-08-09 12:51:12 +08:00 @passerbytiny #50 鉴于楼主的后续回复,我觉得这个比喻已经不够了。来一个更直接的。 Mr luobo:欧洲和南美的足球是垃圾! Mr luobo:请大家专注于讨论一下中国对怎么拿下世界杯冠军。 ……………………一段时间后………………………… ……………………已经有好几十个人发言了………………………… Mr luobo:感谢刚才那三位,只有你们才是真正来讨论问题的。 请不要坑这三位人。 |
60 lynskylate 2019-08-09 12:51:19 +08:00 via Android @itskingname ?这和语言到底有啥关系,注册中心现在主流的 consul 是 java 写的?全链路追踪 opentracing 了解一下,网关转发有几个用 java 的?相比 spring 全家桶,这些自己需要做一些改造罢了。 |
61 stanjia 2019-08-09 12:57:15 +08:00 以前我以为 netflix 是个电视台, 后来才知道 netflix 是个 iT 公司。。。 |
62 happyz90 2019-08-09 13:12:10 +08:00 via Android Tars 框架,支持 C++/NodeJS/Java/Go/PHP |
63 vance 2019-08-09 13:13:40 +08:00 了解下 go micro? consul?等 |
64 cabing 2019-08-09 13:25:48 +08:00 网关,服务注册和发现,配置中心,链路跟踪。 我们使用 java 就没有用 spring-boot 全家桶。部分自研,部分重复轮子。 |
65 cabing 2019-08-09 13:32:51 +08:00 网关,服务注册和发现,配置中心,链路跟踪。 用些开源组件,中间做一层,很容易任意切换。比如服务注册和发现可以用 consul 和 etcd。 |
66 Meridian 2019-08-09 14:13:16 +08:00 了解一下 Linkerd 和 Istio 再搜一搜 servicemesh “但是被这群使用 Java 的人搞得就像是专门为 Java 定制的一样” 你无知的样子真令人讨厌 |
67 LeeSeoung 2019-08-09 14:19:13 +08:00 k8s docker istio servicemesh 这些跟 java 有关么?我主写 java 但是我知道微服务不会被语音束缚,你用任何一种语言 实现一个注册中心,再加上一个网关,小型微服务就来了。结果就因为 java 生态好,反而成为诟病的理由? |
68 ymz 2019-08-09 14:25:42 +08:00 你这不是故意引战,还强调不要引战。真实搞笑 |
69 whileFalse 2019-08-09 14:26:30 +08:00 这是因为大部分 Web 后端 Java 程序员一定需要一个很复杂的框架才能写逻辑。 所以他们搞微服务就必须要有微服务的框架。 其他语言,比如 Python、NodeJS,则是 直接怼啊!微服务不微服务的对于业务层不就是这几个函数放在哪儿的区别吗!!! |
70 ppcoin 2019-08-09 14:26:54 +08:00 学一下 google 怎么排除关键字。。。 |
71 a526796017 2019-08-09 14:35:59 +08:00 看到这种引战帖喷就是了 |
72 sarices 2019-08-09 14:55:44 +08:00 tars 了解一下 |
73 kayv 2019-08-09 15:11:38 +08:00 这是因为 Java 生态好罢了。写啥都可以微服务,C++也一样这么弄啊,thrft,grpc 做微服务,zk 或者 etcd 做服务发现。自己实现负载均衡和降级,web 拼数据你用 node,php,java 都一样。语言不是关键,真心不重要 |
74 jksusu 2019-08-09 15:32:30 +08:00 送楼主一首《在你头上暴扣》 |
75 xuhui54 2019-08-09 15:57:06 +08:00 那你要怪谷歌,屁股坐歪了,你居然怪到 java 来了 |
76 cs419 2019-08-09 16:19:40 +08:00 在不使用 Java 的情况下实现一套微服务 相对的就是要全部都用 Java 实现一套微服务 这种想法有点偏激 有外国友人打算一年不购买中国产的东西 失败了 很多产品都是分包生产再组装 强制一条龙或许也能做 但总得考虑成本 你这种说法下是语言主导 事实上应该是业务为主导 |
77 dk7952638 2019-08-09 16:26:21 +08:00 Java 几十年软件工程的积累与提炼的设计和轮子,在某些入行没几天的人看来就是过度设计和无病呻吟,真的挺搞笑的 |
78 versus117 2019-08-09 17:04:36 +08:00 兄弟,你的说的话就挺引战的了。 |
79 zhang77555 2019-08-09 17:07:18 +08:00 你都知道微服务架构是语言无关的, 那又是谁告诉你,非得有那几个组件才算是微服务了? 再退一步,那些组件单独看有哪一个是特别难实现的? 微服务的难点一直都是设计问题, 技术问题都是分布式系统的公共问题 spring cloud 也是让你专注于设计问题而不用过多操心分布式系统问题,用了 spring cloud 也不见得就是微服务 |
80 qinxi 2019-08-09 17:24:59 +08:00 他们都不好意思说,那我来。因为你喜欢的语言垃圾,连个像样的微服务框架都没有。满意了吗? |
82 visonme 2019-08-09 17:51:31 +08:00 不好实现,不好实现不是技术上存在难点,而是放着成熟的第三方组件 /产品不用,自己造个,没感觉这种方式好。 以前在 nodejs 下,实现过,也只能做个轻服务架构,有些东西全部依赖 nodejs 构建,实现没问题,就是效果不理想。 后面用 net core 做过,也借助了一些 go/c++开发的组件 /产品 |
83 abcbuzhiming 2019-08-09 17:59:46 +08:00 @cabing 网关和配置中心好说,服务发现和链路追踪其实有难度,想做好并不容易,比如服务发现最符合的 CAP 倾向是倾向 AP,但是除了 eureka 这个已经不再更新的之外,后来的服务发现都是 CP 设计。 |
84 xsir2020 2019-08-09 18:21:11 +08:00 @dunhanson 应该是中文链接有空格的缘故, Microsoft REST API 指南 试试这个链接 https://www.hn-tech.net/2019/08/02/%E6%8A%80%E6%9C%AF/Microsoft%20REST%20API%E6%8C%87%E5%8D%97/ |
85 endy 2019-08-09 20:32:41 +08:00 不好意思,java 就这么为所欲为 |
86 cabing 2019-08-09 21:11:49 +08:00 |
87 jhdxr 2019-08-09 21:21:07 +08:00 我大概能够理解题主的观点,本身是一个语言无关的东西,却似乎被 java (或者说 spring cloud )弄成了一个事实标准。 原因很简单,就是如果我想上微服务,有很多基础设施要搭(甚至自己实现),这时候有现成的当然最好了,springcloud 全家桶东西很全,资料也丰富,并且也能够和别的语言协作(优雅和性能是另外一回事),自然成为了第一选择。 其实备选项也还是有的,比如 AWS 也提供了全套解决方案。但被某一个云平台绑死,和被某一个语言绑死。我选后者。 再有,更理想的情况是比如类似 HTTP,我只是制定了传输的规范,但你可以用不同语言去实现。如果微服务中的各个基础设施能够有这样的规范,然后哪怕不同语言实现的基础设施也能一起协作,似乎会更理想一些。(理论上 spring cloud 的那些可以有别的语言的实现,但实际上并没有,因为它并不像 java 有 specs,它的实现就是标准。。。参考 php 就只有 zend engine,Facebook 当年想搞一个新的时候还得先自己整理一遍 specs ) |
88 iffi 2019-08-09 21:59:59 +08:00 别吵了,PHP 是世界上最好的语言 |
89 janxin 2019-08-09 23:46:31 +08:00 via iPad @jhdxr 其他语言也有类似的选项,很多楼上也提过。不过用 Java 最近几年多是不争的事实,要想超过 Java,要靠社区每人的力量,多产出高质量的优秀文章才行 |
90 itskingname OP @jhdxr 终于遇到认真讨论问题的明白人了。 |
91 yiyi11 2019-08-09 23:59:46 +08:00 via Android 所以说,老有人吐槽 java 嗦,笨重,好的语言好的语法有很多,但是 java 真正屹立不倒的原因是生态为王。 |
92 yiyi11 2019-08-10 00:01:30 +08:00 via Android springcloud 和 java8 刚出来的时候,有句话叫,20 年过去了,java 的春天才刚刚开始。 |
93 nichijou 2019-08-10 00:10:56 +08:00 lz 情商低,认个错得了,还在一直赞没喷自己的为明白人,等于把其他人又都骂了一遍。 |
94 passerbytiny 2019-08-10 08:57:10 +08:00 |
95 luozic 2019-08-10 09:19:39 +08:00 via iPhone 基于 knative k8s 构建分布式微服务系统,咋就一定要 Java 了? |
96 cnzjl 2019-08-10 09:52:05 +08:00 只是 Java 人的数量比较庞大而已,而且现在用 SpringCloud 的又比较多,所以搜索引擎权重占比比较高吧,楼主看到这个没必要这么想吧,如若是其他语言所实现的微服务更好,楼主是不是又要问这样的了? |
97 rb6221 2019-08-10 12:54:31 +08:00 你搜的是中文“微服务”吧,国内市场背景下肯定是 java 语言讨论的多一些。 为什么你会产生“搜不到所以没有”的错觉 |
98 sazima 2019-08-10 22:35:20 +08:00 micro service -java |
99 intmax2147483647 2021-07-08 10:11:08 +08:00 我司的微服务涉及了三四种开发语言。。。我们用 AWS |