微服务
微服务架构的系统是个分布式系统,按业务领域划分为独立的服务单元,能够解决传统单体架构的痛点,同时也能满足越来越复杂的业务需求。
- 单体架构的不足
- 随着业务的扩大,单体应用的代码量扩大,代码的可读性,可维护性和可扩展性下降,
- 随着用户的扩大,程序的并发越来越高,单体应用的并发能力有限
- 测试难度越来越大,随着业务的扩展,对单体应用的修改变得越来越复杂
- 微服务
将一个大的应用,拆分成多个小的模块,每个模块都有自己的功能和职责,每个模块可以进行交互,
这就是微服务。
微服务就是将单一程序开发成一个微服务,每个微服务运行在自己的进程中,并使用轻量的通信机制,通常是HTTP RESTFUL API. 这些服务围绕业务能力来划分构建的,并通过完全自动化的部署机制来独立部署这些服务可以使用不同的编程语言,以及不同数据存储技术,以保证最低限度的集中管理。
每个服务只需要对外提供请求接口就可以。
微服务的自动化部署
微服务项目部署的时候,有很多模块需要部署,
搭建CI/CD持续集成持续交付环境
SpringCloud
Springcloud是微服务的一种具体实现方案,SpringCloud管理微服务的方方面面,依赖于Spring Boot
SpringCloud 和Spring Boot有对应版本问题。
springcloud alibaba 官网 github.com/alibaba/spr…
不能混着用springcloud 和 springboot,需要对应匹配的版本。
- 常用的组件表
1.服务的注册和发现:eureka.nacos,consul
2.服务的负载均衡:ribbon,dubbo
3.服务的相互调用:openFeign
4.服务的容错:hystrix,sentinel
5.服务网关:gataway,zuul
6.服务的统一管理:config-server,nacos
// 7.服务的消息总线:bus
8.服务安全组件:security,Oauth2.0
9.服务监控:admin
10.链路追踪:sleuth+zipkin