发布网友 发布时间:2022-04-21 10:15
共1个回答
热心网友 时间:2023-10-17 23:11
根据实际使用的经验,我的一个直接的答案是:可以
详细说一下为什么。首先,Spring Cloud经过这两年的发展,尤其是集成了Netflix OSS的一套微服务框架之后,已经将微服务架构所需要的几乎所有核心概念都变成了极其容易上手的Spring boot单个服务,几乎只要简单的maven/gradle配置,就可以迅速启动类似服务自发现、配置中心、网关服务、熔断服务等关键服务,开发人员就可以将更多的精力放在业务流程的拆解和实现上。(毕竟Spring Cloud是微服务框架,以前的一个很重的大应用,如何拆解为不同的微服务,还是很考验对业务和技术的双重理解的。)
其次,Spring Cloud的社区是很活跃的,在使用Spring Cloud的过程中遇到的大部分问题,其实都能找到现成的解决方案,尤其是对于中小型公司,其实用到的都不会很深,所谓“造轮子”的场景很少,大部分是使用别人现成的“轮子”,如果开发人员的英文尚可,懂得英文的搜索和解决问题的技巧,就更容易搜索到相关资料了。
再者,做Java开发的开发者现在基本都会Spring Boot的一些基本知识,Spring Cloud下每个服务本身就是Spring Boot,几乎可以无缝上手,对于负责一个业务模块微服务的人来说,他只需要关心他的服务如何实现,跟以前开发单个的应用没有太多区别。
当然,还是有一些坑的,如果这些坑对你来说是很大的挑战,我建议不要轻易尝试:
对于持续集成(CI)和持续部署(CD)以及容器化(Dockerize)等概念最好熟悉,部署一套微服务比以前部署一个的jar/war/ear包是复杂许多的。
业务的拆分和抽象能力。如果这些能力不够好,微服务之间依赖性就会很强,大量的微服务间互相的通信会带来更高复杂度和更多出错的可能。
影响不大,但是还是值得一提。对于绝大多数中小型公司,部署一套微服务所需要的硬件资源(虚拟机资源),肯定大于全部写在一个应用里,所以考虑好这个成本。
开发进度上,如果是很小的团队,需要快速上项目的,肯定是单体应用快,对很多开发来说也有一些学习曲线(虽然不高)。所以也要结合项目的实际情况考虑。
希望这些对你有帮助。