springcloud 相关
架构演变过程
**单体应用**
存在的问题
编译难 部署难 测试
技术选型难
拓展难
**分布式**
分散服务器压力:将应用做集群分别部署
**soa**
面向服务
**微服务**
分散能力:将一个项目拆分成为多个可以独立开发 独立部署 独立技术选型的多个子项目,是一种架构思想
**服务网格**
微服务之间调用方式
rpc
基于tcp协议 数据格式多 效率高 使用成本相对较高
restful api
基于http协议 规定数据交互格式 使用简单
服务治理框架
springcloud netfilx
其中五大组件:
eureka
注册中心:用来维护服务的ip和端口信息
ribbon/feign
ribbon实现负载均衡
feign服务调用 底层还是ribbon
hystrix
服务熔断:保护服务
zuul
统一的入口:鉴权 限流。。。
config
统一配置中心
bus
服务消息总线:传播服务状态
springcloud alibaba
项目demo
父项目
统一限定springboot与springcloud版本
provider继承父项目
consumer继承父项目
公共依赖模块
注册中心eureka
服务注册:管理注册服务的ip和端口等通信地址
服务发现:消费者从注册中心拉取服务列表缓存到本地 不定期的去获取最新的
服务续约:向eureka报告服务健康状况 是否需要踢出列表 通过心跳机制
eureka注册中心实现
1.创建一个springboot项目继承parent
2.导入eureka服务端的jar依赖
3.配置yml文件(注册的地址)
4.启动类上标明服务端 @EnableEurekaServer
生产者和消费者注册eureka
1.导入eurekaclient客户端jar包依赖
2.yml配置注册地址
3.启动类标明客户端@EnableEurekaClient
消费从注册中心拉取列表
1.注入服务发现对象DiscoveryClient
2.通过服务名称获取服务列表
3.获取服务的uri拼接url
4发起调用
eureka集群
1.为了解决注册中心单点故障
2.通过不同的端口启动多个服务
生产者集群
集群操作同上