最近要做一个微服务的项目,项目中要用到高可用,高并发。
在网上找了下,合适的技术主要有2个。一个是阿里开源的dubbo框架,另一个就是spring家族的spring cloud。
这个系列我记录下整个spring cloud中用到的各个模块。
Spring Cloud系列(2):Spring Cloud Config
Spring Cloud系列(3):Spring Cloud Eureka
Spring Cloud系列(4):Spring Cloud zuul
Spring Cloud系列(5):Spring Cloud Hystrix
Spring Cloud系列(6):Spring Cloud Ribbon
Spring Cloud系列(7):Spring Cloud Bus
Spring Cloud系列(8):Spring Cloud Sleuth
为什么要用微服务?
微服务架构的优势主要有:
1.可扩展性。
传统单一应用的架构,在新增业务功能时,需要在原来的代码结构基础上做很大的调整,对原有的代码入侵程度很高。而微服务架构下,只需要新增微服务节点,并调整下与之相关联的其他服务节点即可。在对之前的业务功能进行扩容时,传统的单一应用需要整体扩容,而微服务架构下,只需要对要进行扩容的那个单一服务进行扩容和修改的。
2.容错性
在发生系统故障时,单一应用架构需要进行整个系统的修复,涉及到代码的替换和平台的重启,而微服务架构仅仅需要对有问题的服务进行替换和重启。其他服务可通过重试,熔断等机制实现应用层面的容错。
3.开发效率高
各个开发团队只需要专注于对应功能的模块开发,每个微服务可由一个小团队或个人来完全支撑,保证了高效率。
4.技术选型灵活
各个微服务都是相互独立的模块,可以选择适合的技术栈。即使是对单个的微服务进行重构,开发成本也很低。
什么是Spring Cloud?
Spring Boot 可用于简化Spring应用繁琐的初始搭建以及开发过程。它采用的特定的基于注解的方式来进行应用系统的配置,使得开发人员不用耗费大量的精力在系统的配置上。
开发人员可以基于Spring Boot快速开发单个微服务,它专注于快速、方便的集成单个微服务。
Spring Cloud是基于Spring Boot实现的服务治理工具包,专注于全局的服务治理。