分布式:

RPC可以提高系统稳定性,比如说,我们的订单服务程序更新出BUG,导致内存溢出,是这台服务器宕机了,但是它只会影响的整个系统的订单业务部分,对于用户注册登录等业务没有影响,同样对于系统的日志记录也没有影响。

RPC:

注册中心:服务端会把它的服务注册到注册中心中,包括服务名称、服务调用的ip地址、端口、协议、还有调用路径等等。

RMI:

RMI接口和实现类不灵活,RMI必须继承和实现Remote接口之类的。

动态代理:

动态代理,两个概念,一个是代理,一个是动态。

代理的本质就是代理模式,代理模式一定要有这三个要素:接口,提供服务的真实对象,代理对象。

三个要素之外还有重要的两个动作,

首先是真实对象以及代理的对象都必须同时继承一个指定的接口。

第二个,这个代理对象必须包含这个真实的对象。

Java实现:

第一个小伙伴,Proxy, 它就是一个调度器,这个是专门调度人.

第二个小伙伴就是Invocationhandler,这个是一个增强器,专门做增强的.

Invocationhandler的源码,这个代码就只有一个方法,我们把这个方法实现了就可以了。

代理模式里面一个重点,代理模式一定要把真实对象包进来。

为什么在RPC中用动态代理增强?-----增强了网络远程调用功能。

ObjectOutputStream和ObjectInputStream结合Socket通讯就是我们实现的网络增强部分的组成.

请配合ppt观看:

链接:https://pan.baidu.com/s/1U6MgOtFOvAn7cEyA0gM6IQ
提取码:hrtv
复制这段内容后打开百度网盘手机App,操作更方便哦

最新文章

  1. Python抓取页面中超链接(URL)的三中方法比较(HTMLParser、pyquery、正则表达式) <转>
  2. 启动外部exe程序
  3. pod出现include of non-modular header inside framework module 错误
  4. HDU2089 暴力打表
  5. Web前端学习(4):显示图片、url与文件路径
  6. Beta Scrum Day 4
  7. 【Unity Shaders】Using Textures for Effects——让sprite sheets动起来
  8. springboot+jwt做api的token认证
  9. ES6系列之解构
  10. css美化滚动条
  11. Supervisor(Linux/Unix进程管理工具)安装与配置
  12. grafana+influxdb安装
  13. iframe中的历史记录问题汇总及解决方案[转]
  14. IE浏览器中,设置指定程序查看源文件
  15. Java使用POI导出excel(下)——实例与小技巧
  16. [ python ] 接口类和抽象类
  17. JDBC(6)事务处理&批量处理
  18. PCA 降维算法详解 以及代码示例
  19. [比赛|考试]nowcoder NOIPpj组第二场
  20. web开发学习之路是否有尽头

热门文章

  1. MAC 下编译 ANDROID P 源码 提示 internal error: Could not find a supported mac sdk: ["10.10" "10.11" "10.12" "10.13"]
  2. git 基础学习笔记
  3. 初始化一个static的Map变量
  4. php session目录找不到的错误 Error session_start(): open(/var/lib/php/session error
  5. c++的关联容器入门(map and set)
  6. I.MX6 Android mmm convenient to use
  7. 《DSP using MATLAB》Problem 2.6
  8. python eval, exec. compile
  9. Ant build.xml相关属性详解
  10. django 模板关闭特殊字符转化