这篇文章主要介绍Java中Spring Cloud框架选型的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
项目采用maven作为软件包管理工具,Spring boot+Spring Cloud作为项目基础架构,设有配置中心、服务发现中心、网关中心和链路追踪中心以及服务集群,其中服务集群之间添加链路熔断和负载均衡机制。
当然,目前参照了几个系统都按照这种逻辑搭建的框架,所以我们大致上也参考了这个模型。具体如下图:
这里大概介绍一下,我在实践中选用的技术组件,选用这些技术没多少原因,很大程度上考虑到团队喜好以及后续维护的方便,还有就是官方团队的维护上考虑。
Maven 翻译为"专家"、"内行",是 Apache 下的一个纯 Java 开发的开源项目,我主要用来进行包管理。老开发大多都知道如果一个项目使用了大量的三方包,如果没有统一的三方包管理就会出现三个人可能会引用四个版本的同一个包,这对于项目协同来说简直就是噩梦。所以Maven诞生了,从此Javaer有了一个进行包管理的神器。再次声明一下哈,maven不只是用来做包管理的,只是我使用的基本想法。当然还有编译、批量测试等功能。
Spring Boot被誉为是Spring的一个跨时代发明,一度被认为是“不能更好了”的技术。Spring Boot解决了开发一个Web网站必须启动一个Tomcat或者其他的服务器才能进行调试的问题;又解决了Spring之前需要大量xml文件配置;Spring Boot集成了很多常见的Bean组件,在开发过程中只需要设置对应的参数值就可以了。
Spring Boot创建了Spring Boot maven的pom文件,这个文件里设置了大量java三方库的版本,依赖于一个Spring Boot的pom文件就可以统一的使用对应版本的java三方库。
Spring Cloud,嗯,怎么说呢。Spring Cloud可以说是一系列框架的有序集合,利用Spring Boot简化了基础设施的开发。Spring Cloud是实现微服务的一个有力的武器,我们利用Spring Cloud搭建服务发现注册、配置中心、消息总线、负载均衡、断路器和数据监控等。
总而言之,这是一个很神奇的项目。
Nacos,阿里巴巴又一个“KPI”产品。最开始的时候,很多人都说又是阿里的一个KPI产品。但实际上Nacos现在成长为业内一个很强的技术框架,它集成了服务发现、配置管理等功能。
以下是我从nacos官方扒的图,有兴趣的小伙伴可以看看。
Feign的英文是“伪装、变形”等意思,是一种HTTP调用框架。它使Http调用变成了一种接口式的调用,而不用写一堆Http请求的代码。在Spring Cloud中,对Feign进行了加强,使得在各个服务之间可以通过定义Interface来调用其他服务的代码。与此同时,Spring Cloud Feign 集成了Ribbon作为负载均衡组件,Hystrix 作为链路熔断组件。
具体为什么要使用负载均衡和链路熔断可以参考该系列的Feign配置篇。
之所以使用链路追踪系统,主要是为了跟踪各服务之间的调用信息。跟踪之后,可以通过链路信息确认各服务之间的调用关系;可以在发生错误的时候,通过链路追踪定位具体的错误;可以根据链路信息确认服务之间的负载是否均衡,是否满负荷是否超负荷等。
而Zipkin正是链路追踪系统中的佼佼者,项目中选型选中了Zipkin,让我们欢呼吧。
在使用了链路追踪之后,每次都会启动大量的链路数据,所以就需要一个数据库,为了方便查找然后选中了ElasticSearch。那么什么是ElasticSearch呢?
暂且抛开官网中的Elastic Stack,因为我也不知道它说的是啥。简单来讲,ElasticSearch是一种文档型的数据引擎或者数据库。我们可以通过ElasticSearch实现全文检索功能。
项目还集成了Spring Boot Admin,计划集成ELK、jwt这些框架。不过业务暂时没有其他方面的需求,所以暂时没有加入其他组件。后续如有变更会更新到该系列中。
以上是“Java中Spring Cloud框架选型的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。