为什么需要Spring Cloud
两种架构模式
Monolith(单体应用)架构
在编译时,这些项目将被打包成为一个个JAR包,并最终合并在一起形成一个WAR包。接下来,我们需要将该WAR包上传到Web容器中,解压该WAR包,并重新启动服务器。在执行完这一系列操作之后,我们对服务的编译及部署就已经完成了。这种将所有的代码及功能都包含在一个WAR包中的项目组织方式被称为Monolith
缺点:
编译难,部署难,测试难
技术选择难
扩展难
MicroService(微服务)架构SOA
使用微服务架构就可以解决单体项目缺点
微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。
优点:
复杂度可控
独立部署
技术选型灵活
容错
扩展
MonolithµSrvice使用场景
在刚开始的阶段,使用Microservice架构模式开发应用的效率明显低于Monolith。但是随着应用规模的增大,基于Microservice架构模式的开发效率将明显上升,而基于Monolith模式开发的效率将逐步下降
Spring Cloud介绍
Spring Cloud是一个基于Spring Boot实现的服务治理工具包,在微服务架构中用于管理和协调服务的
五大神兽
Eureka
提供服务注册和发现
消费客户端
Ribbon负载均衡
提供者 接口 Feign
Feign 接口方式
负载均衡
|——————轮询(默认)
|——————随机
|______权重
集群
Hystrix
断路器
|——————熔断 保护服务
|______降级 给与友好数据
Zuul
路由网关
|——————权限
|——————网路安全 有网
|______日志
Config
分布式配置中心
|——————github/码云
|——————git
|——————server
|______client bootsrarp.yml 优先级最高
分布式事务
2pc两阶段提交提交事务协调器去记录票-都成功才能提交
tcc补偿先都提交,数据状态是删除的标志是0,当每一个提交成功都会想协调器,记录。一旦成功改状态为1
mq最终消息一致先插入,但会等待一段时间消费这个记录
分布式事务常见框架
tcc-transaction
tx-lcn
GTS
GTS比较NB但是不开源,所以选择tx-lcn
来源:oschina
链接:https://my.oschina.net/yhxx/blog/3131951