内容简介
- 传统服务架构的演变
- 微服务与springcloud
- 开发环境准备
1.1 传统服务架构的演变
1.1.1 单体应用
单体应用将所有的服务放在打包为一个war包,随着企业业务的发展,模块的耦合与系统的维护越来越麻烦

1.1.2 SOA面向服务的架构
采取SOA架构,将原来的一个模块按照服务功能划分为多个模块.同时采取数据库读写分离

1.1.3 ESB企业服务总线
引入ESB企业服务总线,各个模块将服务发布到ESB中,各个模块与ESB之间采取SOAP(简单对象访问协议)进行通信

1.1.4 Nginx负载均衡
随着访问客户端访问的用户增多,为了保证前端的正常运行,采取了Ngnix做负载均衡

假设系统的模块进一步增加,ESB服务总线会存在性能瓶颈,同时系统的运维工作也将提升
1.2 微服务与springcloud
1.2.1 微服务与SOA的区别
微服务是一种架构风格,将单体应用拆分为多个服务组件,组件之间使用Http的API进行通信,服务的划分粒度更小
SOA则侧重于将单体应用集成到ESB上

1.2.2 springcloud与netflix
netflix开源了几大组件,这些组件很好的实现了微服务的理念.springcloud基于springboot通过自动配置的方式对netflix的开源组件进行了封装,简化了框架的使用.netflix开源的5大组件.
组件名称 | 组件介绍 |
---|---|
Eureka | Rest分布式服务注册中间件 |
Hystrix | 服务容错框架 |
Fegin | Rest客户端 |
Ribbon | 负载均衡框架 |
Zuul | 提供代理,路由网关等 |
springcloud的所有组件https://spring.io/projects/spring-cloud
springcloud的几大重要组件
组件名称 | 组件介绍 |
---|---|
config | 管理集群的配置文件 |
Sleuth | 服务追踪框架 |
stream | 构建消息驱动的框架 |
bus | 整合rabbitMq,kafka 的集群消息服务总线 |
1.3开发环境准备
- maven3.0.5+
- jdk1.8+
- idea2018Ulimate
- springcloud Greenwich.SR2
网友评论