-
Ribbon负载均衡
- 在类上加上注解:@LoadBalanced 标记以后此类发出的请求会被Ribbon进行拦截处理
- @LoadBalanced 实现原理:通过spring-cloud 中的 LoadBalancerInterceptor类实现ClientHttpRequestInterceptor接口(客户端HTTP请求拦截器)--->调用RibbonLoadBalancerClient接口中的execute()(通过服务名称获取服务列表)得到服务列表,然后根据Ribbon的负载均衡规则进行返回
-
单体架构特点?
- 简单方便,高度耦合,扩展性差,适合小型项目。例如:学生管理系统
-
分布式架构特点?
- 松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如:京东、淘宝
- 微服务:一种良好的分布式架构方案
- 优点:拆分粒度更小、服务更独立、耦合度更低
- 缺点:架构非常复杂,运维、监控、部署难度提高
-
微服务演变
-
微服务拆分注意事项:
- 单一职责:不同微服务,不要重复开发相同业务
- 数据独立:不要访问其它微服务的数据库
- 面向服务:将自己的业务暴露为接口,供其它微服务调用
-
微服务远程调用
-
微服务调用方式:
- 基于RestTemplate发起的http请求实现远程调用
- http请求做远程调用是与语言无关的调用,只要知道对方的ip、端口、接口路径、请求参数即可
- 例子:
-
-
服务调用关系
- 服务提供者:暴露接口给其它微服务调用
- 服务消费者:调用其它微服务提供的接口
- 提供者与消费者角色其实是相对的
- 一个服务可以同时是服务提供者和服务消费者
-
Nacos 启动步骤:
- 启动非常简单,首先进入bin目录,然后进入cmd命令行输入: startup.cmd -m standalone 然后在浏览器输入地址:http://127.0.0.1:8848/nacos即可
-
微服务会从nacos读取的配置文件:
-
[服务名]-[spring.profile.active].yaml,环境配置
-
[服务名].yaml,默认配置,多环境共享
-
优先级:
- [服务名]-[环境].yaml >[服务名].yaml > 本地配置
-