java微服务开发最适合使用spring boot吗?

此时花盛开


那今天就不谈微服务是使用Dubbo还是Spring Cloud,也不讨论是使用RPC还是Restful API,只单独说一说为什么大多数的Java微服务会使用Spring Boot。文中会有不少我个人的主观看法,如果大家有不赞同的地方,可以留言讨论。


首先,需要了解一下为什么需要做微服务。

微服务架构是将整个应用程序分割成更小的独立的服务,每个服务实现了一组独立的功能,微服务通过API暴露自己的功能实现,再通过服务治理和服务编排等,完成系统的完整功能。

每个服务都是独立并且微小的(其实这个【小】是很有争议的,不在这里展开讨论),一个微服务由一个团队负责管理,包括需求、开发、运维,可以自由选择技术,不过要求遵守一定的规范;每个微服务都需要快速迭代和部署;总的来说,微服务架构突出了一个【快】字。

那么在回到题目中的问题,微服务的开发是否适合使用Spring Boot。个人认为,答案是肯定的,Spring Boot适合使用在微服务的架构中。

Spring Boot在最初设计的初衷,就是为了简化Spring应用工程的搭建,其实Spring Boot并没有引入什么新的东西,本质上它是在Spring和第三方框架的基础上进行了整合;Spring Boot通过定义的注解替代了xml配置文件,内嵌应用服务器;“约定大于配置”的思想;

总之,Spring Boot让服务的搭建、开发、部署、认证鉴权、监控都变得更加的简单。

所以结合上面两点,微服务注重项目粒度的划分,一个项目会被分成多个子项目,子项目(微服务)之间独立部署并通过协议进行数据交互,每个微服务都需要【快速】的迭代和部署;而Spring Boot的最大特点就是让应用开发过程变得【更快】,因此在微服务架构中,Spring Boot是非常适合的。

当然开发框架只是【快速】开发的一部分,微服务框架也不是单指应用服务的微和快,举个例子来说,如果你们的技术团队依然是需求、开发、测试分开的,每一次业务提了需求,需要需求人员进行需求评审,然后给开发人员讲解需求,开发人员开发完成之后,部署测试环境,测试人员开始进行测试;测试通过之后,提交上线申请,找一个上线节点,运维人员部署开发环境...

这样是快不起来的...

我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。


会点代码的大叔


现在国内JAVA开发微服务主要有springboot(springCloud),dubbo,两个框架我都用过,就我个人而言,我觉得还是springboot更好一点!


springboot的理念是轻配置,自动化配置,内部集成,易部署,易监控!

springboot提供的starter启动类系列可以让开发人员进行快速开发,比如权限认证,消息组件,缓存集成等等,只需要简单配置即可使用!

但是springboot只是一个基础框架,在服务注册与发现,监控集成等方面没有提供完善的解决方案,而springCloud基于springboot,提供了一整套更加成熟的企业级的组件!

springCloud提供了服务注册与发现,断路器,客户端负载均衡,网关,调用链监控,分布式配置中心等组件,都是大型分布式系统所必须的特性!



dobbo只是一个rpc框架,而且配置相对来说比较复杂,不过文档比较完善,在国内使用的也比较多!

反正我觉得springCloud好,你们觉得呢?


分享到:


相關文章: