1.什么是spring-cloud
spring-cloud是spring提供的微服务整合开发框架。Spring Cloud 为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性 Token、全局锁、决策竞选、分布式会话和集群状态)操作的开发工具。使用 Spring Cloud 开发者可以快速实现上述这些模式。
2.为什么使用spring-cloud
- 经历过netflix业务考验,国外大规模使用
- 入门门槛低,国内大批量使用spring
- 快速搭建
3.spring-cloud快熟搭建入门
1. eureka 服务注册组件
下载 https://github.com/mykite/eureka-server.git
编译后直接运行即可,或 mvn clean install 后直接运行jar包后访问
部署后:
2. configServer
对配置的集中管理,使用svn or git
https://github.com/mykite/configserver.git
编译后直接运行即可,或 mvn clean install 后直接运行jar包后访问
|
|
3. ribbon
ribbon用以实现负载均衡;实现软负载均衡,核心有三点:
- 服务发现,发现依赖服务的列表
- 服务选择规则,在多个服务中如何选择一个有效服务
- 服务监听,检测失效的服务,高效剔除失效服务
服务选择规则,其中包括:
- 简单轮询负载均衡
- 加权响应时间负载均衡
- 区域感知轮询负载均衡
- 随机负载均衡
4. hystrix
断路器
5. zuul
类似nginx,提供反向代理的功能
项目搭建
项目结构
springcloud-server 提供的服务
springcloud-client 通过feginClient调用服务
springcloud-feginclient 通过feginClient调用server
springcloud-parent maven父项目
parent
pom.xml
|
|
server
pom.xml
|
|
提供的服务
|
|
启动类
|
|
feginClient
pom.xml
|
|
feginClient提供接口
|
|
cliet
pom.xml
|
|
client 调用服务类
|
|
client 启动类
|
|
调用流程图
应用实例:
在具体的微服务用力中我们一般采用json来作为数据传输格式,通过feginClient来对服务调用来做一层封装hystrix在对feginClient调用时对依赖失败做隔离,ribbon做负载均衡(使用feginClient时已经默认集成ribbon)