Java未来也许不再是一个电商首选语言了

其他领域,Java早就不是首选了,开发繁琐,包体积大、运行时开销大等等,都不适合创业

对于互联网电商来说,前面有阿里、京东全线转型Java技术栈的案例,后面像饿了么这样的新兴电商也慢慢的从Python转向Java,示范作用很强

电商软件提供商,也曾把整体是Java架构当做卖点之一

Java的卖点主要是JVM运行时强大、工具链成熟,以Spring为首的庞大的生态提供了完善的开发体验

电商的双十一高并发、大容量场景下,有dubbo、Spring Cloud这样的服务治理框架,不管是Go、Python、Php,都没有类似的框架可以对比,其他开发语言想追上这样的生态环境不是一件简单的事情

对于目前电商公司来看,Java技术栈是不二的选择

降维打击

但是正像三体中的降维打击概念,打败你的人不是你同维度的,而是来自其他的领域。Service Mesh(服务网格),这个来自底层云平台基础设施正在向上入侵原有的开发框架的领域

Service Mesh之前就有运维维护nginx的配置,做服务之间的调用代理,但是这个是很原始的状态

随着k8s在运维层面一统江山,基于k8s的linkerd、envoy、Istio一系列Service Mesh解决方案发展非常迅速

对应用程序透明这几个字要画重点,以后再也不需要在开发层面关注负载均衡、路由、熔断、限流、服务注册发现、分布式跟踪等等一系列的服务治理内容了,这些都由运行的底层设施来完成了

Service Mesh

哪些技术栈可能由于Service Mesh的发展而被抛弃掉?

eureka,config server,open tracing,netflix Ribbon,zuul hystrix

在这种情况下Java以引为傲的框架都无用武之地了,未来的标准不一定是开发者引导的,运维可能会制定所谓的Cloud Native标准,要求满足标准的,才能上平台进行运行和调度

多语言在Service Mesh中一视同仁,很可能用Go来开发网络服务,用Php来做Web,用Node来做网关API,用Java做业务逻辑,服务之间的通讯就交给Service Mesh来统一处理,而整个庞大的微服务体系交由k8s这样的平台来调度和编排

Java 的机会

开发体验、工程化方面要继续强化。Java8+Spring boot+Lombok让人感觉不到在写繁琐的Java

微服务的领域驱动设计特别重要,而在领域驱动设计实现中Java是主流,目前还没有太好的替代语言

强化目前的JVM上的语言生态,包括Kotlin、Scala等,也许会有下一个杀手应用出现,抓住类似AI这样的风口机会