但凡你在 Google 上一搜索微服务,你就会发现全都是使用 Spring 全家桶来实现的。
微服务架构本来应该是语言无关的,但是被这群使用 Java 的人搞得就像是专门为 Java 定制的一样。
欢迎各位在这里讨论一下,在你们的项目中,有项目使用了微服务架构,但是没有任何一个地方使用 Java 技术栈吗?具体是怎么做的?用的是什么语言?
请大家不要引战。
专注于讨论在不实用Java的情况下,实现全套微服务。
1
arrow8899 2019-08-09 09:57:04 +08:00 20
什么叫“被这群使用 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 8
我觉得不需要讨论,楼主的结论就是 "Java 这群人真讨厌"
|
4
leonme 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 1
柠檬精
|
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 1
告诉 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 开发的。楼主这提问方式有点骚 ![image.png]( https://i.loli.net/2019/08/09/sH1k5rlzWULfgbF.png) |
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 6
我这边做的是微服务架构,大部分业务服务是基于 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 2
自己引战还叫人别引战,哈哈哈哈
|
45
leishi1313 2019-08-09 11:36:45 +08:00 5
你可能只是想吐槽到处都是一提微服务就是 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
chenqh 2019-08-09 11:42:59 +08:00
总比一説微服务就説 golang 适合做微服务好吧
|
49
MotherShip 2019-08-09 11:48:04 +08:00
不服你自己动手造轮子啊,no bb show code
|
50
wccc 2019-08-09 11:48:52 +08:00
会说话就多说点..
某某语言 微服务技术栈有哪些? |
52
passerbytiny 2019-08-09 12:04:19 +08:00 1
但凡你去咨询一下哪里足球踢得好,你就会发现世界冠军全是欧美(欧洲+南美)的。
足球本来是全世界的(中国人发明的),但是被这群欧美人搞得搞得就像是专门为欧美定制的一样。 欢迎各位在这里讨论一下,在你们的项目中,有足球世界冠军不是欧美人的吗?具体是怎么做到的? 请大家不要引战。 专注于讨论中国足球怎么成为世界冠军。 |
53
ZiLong 2019-08-09 12:07:32 +08:00
Java 也不全是 Spring 系,虽然 Spring 是主流,例如 https://quarkus.io/至少带来了一股清风的感觉
|
54
itskingname OP |
55
oneisall8955 2019-08-09 12:33:29 +08:00 via Android
微服务只是一种思想,实现起来,由于 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 1
网关,服务注册和发现,配置中心,链路跟踪。
用些开源组件,中间做一层,很容易任意切换。比如服务注册和发现可以用 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 1
这是因为大部分 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 1
我大概能够理解题主的观点,本身是一个语言无关的东西,却似乎被 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
@itskingname #85 “下沉此贴,另开一贴,只说明需要是不使用 Java 实现微服务”,如果你在刚开始被怼的时候就这么干,你会得到你想要的讨论。现在,建议你重新注册。
|
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
janus77 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😥
|