1.什么是微服务
微服务(Microservices)是一种架构风格,一个大型复杂的项目,可以由多个微服务组成。
项目中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注完成自己的业务
2.架构特点
每个服务都有单一的业务职责
每个服务都要相对”独立”
每个服务都要对外暴露Rest风格服务接口API
每个服务都可以是一个独立的开发团队
每个服务都可以是不同的技术栈
每个服务都访问各自的数据库
每个服务都可以单独部署
3.微服务间调用方式
RPC:并发能力强 ,代表框架: dubbo
HTTP:更轻量,更灵活,代表框架: HttpClient、UrlConnection、OkClient
Spring提供了整合: RestTemplate
4.Spring Cloud概述
概述
微服务架构一站式解决方案,基于springboot
核心架构
服务注册中:心eureka nacos
负载均衡:ribbon
熔断器:hystrix ,sentinel
服务调用 feign
api网关 gateway
配置中心 nacos
5.负载均衡的原理
1)请求被LoadBalancerInterceptor拦截
2)获取uri中的host,也就是服务名称
3)交给RibbonLoadBalanceClient的对象,根据服务名称获取服务列表,保存到DynamicServerListLoadBalancer
4)交给IRule,利用负载均衡规则选择一各实例
5)利用真实实例的ip和端口替换url的服务名称,发起请求