微服务入门
什么是微服务
开始接触的架构:MVC(SpringMVC)
微服务也是一种架构思想
模块化:All in one。只是把业务拆分成不同的模块部署在不同服务器上,而未更改业务代码。将单一的应用程序划分成一组小的服务。简而言之,微服务就是把传统的一站式应用拆分成不同业务功能的模块,彻底的去耦合。一个业务只做一个功能,就是一种小而独立的过程,类似进程的概念,能够独自运行和销毁,拥有自己独立的数据库
微服务架构四个问题
- 服务很多,客户端该怎么访问?
- 服务很多,服务之间应该如何通信?
- 这么多服务,怎么治理?
- 服务挂了怎么办?
Springcloud和Springboot的关系
Springcloud是一种解决方案,依靠的是Springboot的技术。
- springboot专注于快速方便的开发单个个体微服务 --Jar
- SpringCloud是关注全局的微服务治理的框架,它将SpringBoot开发的一个个单体微服务整合并管理起来,为各个微服务之间提供:配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等集成服务
- Springboot可以离开SpringCloud,但是SpringCloud离不开SpringBoot
总结:springboot专注于快速方便的开发单个个体微服务,而springcloud关注全局的服务治理
三种流行解决方案
- Spring Cloud NetFilx 一站式解决方案!
api网关 zuul组件
Feign —HttpClient — Http通信方式,同步,阻塞
服务注册发现:Eureka
熔断机制:Hystrix
。。。 - Apache Dubbo ZooKeeper 半自动,需要整合别人的
API:没有
Dubbo
ZooKeeper
没有:借助Hystrix - Spring Cloud Alibaba 一站式解决方案!更简单
归纳解决方法
- API网关
- HTTP RPC通信
- 服务的注册与发现
- 熔断机制
springCloud社区
官网:https://springcloud.cc/spring-cloud-netflix.html
中文API文档:https://springcloud.cc/spring-cloud-dalston.html
springcloud中国社区:http://springcloud.cn/
springcloud中文网:https://springcloud.cc