为什么选择springcloud作为微服务架构

文章目录

    • 选型依据
    • 各大IT公司用的微服务架构有那些
      • 阿里Dubbo/HSF
      • 京东JSF
      • 新浪微博Motan
      • 当当网DubboX
    • 各微服务框架对比

选型依据

微服务架构是不是只有springcloud一种落地的技术呢?不是。好比天上一个理念——卖汉堡,落地的是肯德基、麦当劳、德克士,同样为什么springcloud拔得头筹、浮出水面呢?一家大公司的架构师选择技术不是瞎选的,不是哪个新就用那个,比如有些公司还在用java6,因为它们是对商业负责,要的是稳定压倒一切,不见得最新最全的技术是最好的。是有一套依据的,
选型依据

  1. 整体解决方案和框架成熟度
  2. 社区热度
  3. 可维护性
  4. 学习曲线

比方说,我们用spring,我们从这四个维度来看。大把大把的都知道市面上有这些熟悉spring的java程序员,假设tomcat出问题了,那么ok各种社区的方案都有。假设用一个比较偏门的如sun公司的glassfish,它也是类似于tomcat的一个容器,但是这个玻璃鱼在市面上帖子的数和维度没有tomcat高。

各大IT公司用的微服务架构有那些

阿里Dubbo/HSF

阿里前面用的是Dubbo,后面很可惜dubbo从2012年开始停止更新了5年。因为梁飞团队被打散,梁飞Dubbo的主要负责人目前已经在天猫服务,其他人走的走散的散,Dubbo就停更了。2017年,阿里又重启了对Dubbo的维护,正因为停更5年,它睡大觉,给springcloud社区极好的不是趁虚而入的时间,5年呀5个月都会发生多少框架的改变,springcloud直接异军突起,之后dubbo能不能追上,不大明白,现在搞得我们java程序员很难受,如果Dubbo一直坚守,我们就不用学习springcloud了。但现在没办法,只好两个框架都学,到公司用springcloud还是dubbo你都能做。

梁飞团队被打散后,阿里用的是HSF(High Speed Framework),分布式的高速框架,可以理解为第二代的Dubbo,江湖人称好舒服。阿里的很多框架都喜欢用首字母拼,比如TDDL数据库,江湖人称头都大了

京东JSF

阿里的人被京东挖了一堆,京东几乎是对标阿里的,这年头敢跟马爸爸叫板的是不是也就强哥大强子了。它们也要做一套分布式的服务治理框架,这个时候就是JD SF ,江湖人称京舒服。

新浪微博Motan

取名达摩魔毯,后来改名魔毯

当当网DubboX

不用说,也知道当当网当时是借鉴了阿里的Dubbo框架出了自己的DubboX,但是很可惜当当网的老大Lisa已经把当当网给卖了,所以在社区上当当网给DubboX的维护我个人是不看好,因为公司都被卖了。

有同行认为现在能够异军突起的,就是2017年Dubbo重启后的3.0和目前的springCloud之争。两个就好比华山派的剑宗和气宗之争,谁能胜出那么就要看二者大战结果了。

各微服务框架对比

为什么springcloud会脱颖而出?这个东西不是说背书依靠spring有强大的社区,怎么样怎么的就牛,不是这样滴,我们看下服务对比
一个微服务要满足很多种微服务的落地维度,是否支持Rest、支持RPC、负载均衡。。。要是一个好的微服务框架,就要满足这么多维度,第一看看你是否满足,第二看看如何满足,什么叫如何满足呢?第一种叫自力更生——满足这些微服务都是自己的东西,第二种叫借用第三方技术。我们收集了市面上的几个微服务框架,做了对比

功能点/服务框架 Netflix/Spring cloud Motan gRPC Thrift Dubbo/DubboX
功能定位 完整的微服务框架 RPC框架,但整合了ZK或Consul,实现集群环境的基本的服务注册/发现 RPC框架 RPC框架 服务框架
支持Rest 是 Ribbon支持多种可插拔的序列化选择
支持RPC 是(Hession2)
支持多语言 是(Rest形式)
服务的注册/发现 是(Eureka) Eureka服务注册表,Karyon服务端框架支持服务注册和健康检查 是(zookeeper/consul)
负载均衡 是(服务端zuul+客户端Ribbon) Zuul-服务,动态路由 云端负载均衡 Eureka(针对中间层服务器) 是(客户端) 是(客户端)
配置服务 Netflix Archaius Spring cloud Config Server 集中配置 是(zookeeper提供)
服务调用链监控 是(zuul)Zuul提供边缘服务,API网关
高可用/容错 是(服务端Hystrix+客户端Ribbon) 是(客户端) 是(客户端)
典型应用案例 Netflix Sina Google Facebook
社区活跃度 一般 一般 已经不维护了(2017年以前)
学习难度 中等
文档丰富度 一般 一般 一般
其他 Spring Cloud Bus为我们的应用程序带来了更多管理端点 支持降级 Netflix内部在开发集成gRPC IDL定义 实践的公司比较多

说明:

  1. 支持Rest维度,springcloud外其它几种都是否,为什呢?spring家族里前端springmvc干翻了struts2,大家都知道struts2因为安全漏洞的问题被各大IT公司所抛弃,连它自己都不用了,被前端用Rest springmvc来代替。
  2. 我们主要将springcloud和dubbo做对比,就是为什么springcloud被选出来了。两句话,Dubbo睡觉睡了5年,这个东西人家springcloud可不是龟兔赛跑,springcloud可是猎豹,你睡了5年,那不会给你机会的。现在来说,老系统用dubbo的多,新系统用springcloud的多,在公司里上班,我个人觉得springcloud是一定要掌握的。
  3. 落地微服务架构的技术维度,springcloud都几乎满足,所以springcloud牛不是吹牛皮的,不是背靠spring大背书,而是自身确确实实能够凭借一己之力满足微服务架构的技术维度要点。

你可能感兴趣的:(微服务springcloud)