微服务:经过良好架构设计的分布式架构方案。都是为了实现 高内聚 低耦合
微服务架构特征:
单一职责
面向服务
自治:团队独立,技术独立,数据独立,部署独立
隔离性强
微服务结构落地技术: springcloud 和 阿里的 dubbo
企业需求:
1)SpringCloud+Feign:
使用springcloud技术栈
服务接口使用restful风格
服务调用采用Feign方式
2)SpringCloudAlibaba+Feign
使用SpringCloudAlibaba技术栈
服务接口使用restful风格
服务调用采用Feign方式
3)SpringCloudAlibaba+Dubbo
使用springcloud技术栈
服务接口使用Dubbo协议标准
服务调用采用Dubbo方式
4)Dubbo原始模式
使用基于Dubbo老技术栈
服务接口使用Dubbo协议标准
服务调用采用Dubbo方式
SpringCloud:目前国内使用最广泛的微服务框架,集成了各种微服务功能组件,并基于springboot实现了致谢组件的自动装配,从而提供了良好的开箱即用体验:
服务注册发现:Eureka Nacos Consul
服务远程调用:OpenFeign Dubbo
服务链路监控:Zipkin Sleuth
统一配置管理:SpringCloudConfig Nacos
统一网关路由:SpringCloudGateway Zuul
流控,降级,保护:Hystix Sentinel
服务拆分及远程调用:
拆分原则:
不同微服务,做到单一职责,不要重复开发相同业务
微服务数据独立,不要访问其他微服务的数据库
微服务可以将自己的业务暴漏为接口,供其他微服务调用
远程调用:
1 注册RestTemplate
2 服务远程调用RestTemplate