
Spring Cloud Kubernetes微服务实战与源码分析 专栏收录该内容,点击查看专栏更多内容原创 吴就业 326 0 2020-06-17
本文为博主原创文章,未经博主允许不得转载。
本文链接:https://wujiuye.com/article/69688b06a4d140178ad2bc351e9f9c4c
作者:吴就业
链接:https://wujiuye.com/article/69688b06a4d140178ad2bc351e9f9c4c
来源:吴就业的网络日记
本文为博主原创文章,未经博主允许不得转载。
本篇文章写于2020年06月17日,从公众号|掘金|CSDN手工同步过来(博客搬家),本篇为原创文章。

GitHub:https://github.com/spring-cloud/spring-cloud-kubernetes
“Spring Cloud Kubernetes提供使用Kubernetes原生服务的Spring Cloud公共接口实现。此代码仓库中提供的项目是促进在Kubernetes中运行的Spring Cloud和Spring Boot应用程序的集成“,这是官方的介绍。
了解Spring Cloud Alibaba的朋友就很容易理解这句话。简单说,Spring Cloud Alibaba就是为快速搭建集成Dubbo、Nacos等阿里开源的生态服务的微服务项目提供的脚手架。而Spring Cloud Kubernetes就是帮助大家更快的搭建使用Kubernetes原生服务的微服务项目,并与Spring Cloud集成。
比如使用Kubernetes的原生etcd服务实现服务的发现与注册、配置中心,而不需要使用第三方服务注册中心、配置中心。
其实,在社区的贡献下,Dubbo也提供了使用etcd做服务注册中心和配置中心的支持,但估计很少人会去使用。
Dubbo的服务注册、发现、调用都依赖IP,且Dubbo的服务注册是以接口为维度的,而不是以进程为维度,因此Dubbo的服务注册发现模型与Kubernetes的服务注册发现模型不是很匹配,这些都使得将一个Dubbo项目迁移至Kubernetes容器变得困难,需要对原有Dubbo项目作出一些改变,这也是我们在做新项目技术选型时需要考虑的问题。好消息是,Dubbo将在3.x版本提供服务级别的注册和发现功能,Dubbo也在向云原生靠拢。

上图为Spring Cloud Kubernetes的源码框架截图,后续我们将会使用到的模块有:实现服务注册和发现的discovery模块、实现配置中心的config模块。
spring-cloud-kubernetes的1.1.3.RELEASE对应spring cloud版本为Hoxton.SR5。Spring Cloud每个版本依赖的Spring Boot版本,官网都有给出说明。关于版本,我们也可以从pom.xml文件中获取到。

在了解Spring Cloud Kubernetes是什么之后,我们再讨论下为什么要选择Spring Cloud Kubernetes?
选择Spring Cloud Kubernetes意味着我们想要将服务部署到Kubernetes集群,Spring Cloud Kubernetes为我们实现了Spring Cloud的一些接口,让我们可以快速搭建Spring Cloud微服务项目框架,并能使用Kubernetes云原生服务。
Kubernetes提供服务注册和发现、以及配置中心的实现,我们完全没有必要再自己部署一套注册中心、配置中心,因此Spring Cloud Kubernetes为我们提供使用这些原生服务的接口实现。除注册中心和配置中心之外,如果我们还想使用istio,Spring Cloud Kubernetes也提供了支持,这些无非就是解释文章开头的那句话“Spring Cloud Kubernetes提供使用Kubernetes原生服务的Spring Cloud公共接口实现”。
除此之外,我们依然可以使用Spring Cloud生态的各种第三方框架的快速集成starter,如网关Spring Cloud Gateway、限流熔断组件Sentinel。
下一篇我们开始使用Spring Cloud Kubernetes搭建一个Demo级别的微服务项目。
声明:公众号、CSDN、掘金的曾用名:“Java艺术”,因此您可能看到一些早期的文章的图片有“Java艺术”的水印。

如果指定了URL,那么getOptional方法不会返回null,且返回的Client是LoadBalancerFeignClient,但不会抛出异常。如果不指定URL,则走负载均衡逻辑,走的是loadBalance方法,且抛出异常。
本篇我们将从一个简单的demo上手Spring Cloud kubernetes,当然,我们只用到Spring Cloud kubernetes的服务注册与发现、配置中心模块。
作为开发者,只有足够了解容器技术,才能做好技术选型,以及开发部署在Kubernetes容器服务之上的应用应该要注意哪些问题。如果运维不了解代码,开发也不了解Kubernetes,谁能解决将服务迁移到Kubernetes上遇到的各种问题呢?
订阅
订阅新文章发布通知吧,不错过精彩内容!
输入邮箱,提交后我们会给您发送一封邮件,您需点击邮件中的链接完成订阅设置。