尚硅谷-Dubbo篇
参考链接:https://www.bilibili.com/video/BV1ns411c7jV?p=30&vd_source=510ec700814c4e5dc4c4fda8f06c10e8
目录
🔥1. 基础知识
1.1. 分布式基础理论
1.1.1 基本概念
分布式系统就是各个计算机的集合。发展流程就是ORM ->MVC-> RPC->SOA
RPC:远程过程调用,就是客户端服务端之间建立socket连接,双方都要编写代码,然后客户端就能正常调用本机代码一样调用服务器的代码对象返回。应用点就是dubbo
Dubbo:就是为了解决分布式系统下,各个服务远程过程调用而产生的框架,zk就是dubbo名下的注册中心,用于注册各个服务。还有monitor的监控中心
![image-20220812103722248](https://1-1257837791.cos.ap-nanjing.myqcloud.com/202208121037303.png
1.1.2 基本使用
1.1.2.1 启动步骤
- 启动zkServer.cmd(注册中心)
- 启动dubbo-admin(监控中心)
- 提供者提供接口和类型,消费者也要定义消费的接口和类型
1.1.2.2 SpringBoot整合
1. 配置dubbo-starter, @EnableDubbo
1. 服务者和消费者写各种配置文件
1. 服务者用dubbo的@Service,
1. 消费者用dubbo的@Reference,Spring的@Service
1.2 高可用
1.2.1 ZK宕机
本身ZK注册中心就只是一种保存生产者、消费者地址的,如果宕机了生产者消费者保存本地缓存地址也能进行访问
1.2.2 服务降级
手动把某个服务关掉,降低系统消耗,返回NULL对象即可
1.2.3 服务容错
A调用B,如果调用失败了,立即返回或者重试多少次,或者保存记录稍后再重试。Hystrix就是用来保证分布式系统下出错了返回什么信息,进行什么处理
1.3 原理分析
1.3.1 RPC原理
Dubbo底层就是RPC。RPC原理就是
1. 客户端先发起请求,通过注册中心找到服务器
1. 服务端收到消息后解码,然后发数据发给客户端
1. 客户端解码收到的结果
1.3.2 Netty原理
RPC实现客户端和服务端通信原理就是Netty
1.3.3 框架源码分析(略)
1.3.4 个人总结
我曾七次鄙视自己的灵魂:
第一次,当它本可进取时,却故作谦卑;
第二次,当它在空虚时,用爱欲来填充;
第三次,在困难和容易之间,它选择了容易;
第四次,它犯了错,却借由别人也会犯错来宽慰自己;
第五次,它自由软弱,却把它认为是生命的坚韧;
第六次,当它鄙夷一张丑恶的嘴脸时,却不知那正是自己面具中的一副;
第七次,它侧身于生活的污泥中,虽不甘心,却又畏首畏尾。