SpringCloud微服务全栈实战讲解 - 公开课笔记
webservice使用xml,服务之间的依赖比较强,数据包比较大,编译和解析因为xml的递归解析形式,性能不好
dubbo、hsf是基于RPC,dubbo强语言依赖,发送方是什么语言写的,服务方就要用什么语言解析。dubbo就是在两端开websocket,用于建立两点之间的通信,传的是序列化好的对象。
Dubbo 底层原理
分布式系统调用:
把服务放在另一个节点上计算,减轻当前节点上的运算压力。
相当于提供方将接口文档打一个jar包,提供给调用方
网络发包只能发byte数组,所以要序列化成二进制
SpringCloud
SpringCloud和Dubbo的区别
Dubbo是远程服务中的RPC,长连接,是自定义的协议
SpringCloud是Http协议,
rpc和http相比,rpc的效率更高。但rpc要求请求双方实现语言相同。而http的序列化和反序列化是基于字符串的,使用json传递。好处是跨语言。
http要发心跳包,所以要耗费一些资源,但是相比语言的解耦,这些资源消耗是可以接受的。
示例
Consumer
Provider
UserAPI接口被Consumer项目实现。可以提供给Consumer
OpenFeign用来读懂API的SpringMVC的注解
Feign可以通过声明式(自己定义)远程服务调用的方式,在调用方的代码
测试效果
SpringCloud提供了一套服务降级的服务框架Hystrix,包括:服务降级、服务熔断、资源隔离
服务降级
所有服务都调不通,就降低服务标准,但仍然能提供服务,而不是直接调用失败,抛出异常。
服务熔断
如果每一次都调用失败,这段时间内就不再进行这个服务的调用了,直接去调用别的服务。
服务的上下线(对于注册中心来说)
如果能提供服务,会在注册中心列表中标记,标记的是网络状态。注册中心进行定时的心跳包检测。
如果服务虽然在,但无法提供服务,可以主动上报
如果调用失败,不应该从注册中心列表中剔除。可能只是网络抖动、网络分区造成的调用失败。
(CAP中的P:分区容错性)
重试策略:默认6秒,记录在调用方,而不是记录在注册中心。
示例
再加入一个91的服务
隔离
限制调用次数。可以使用线程池。
Hytrix怎么实现的?
try{// 调用服务
}catch{//熔断降级/资源隔离/加入不调列表,设置一个超时时间; //调用降级方法;
}
ribbon
来帮我们选择服务器,内置了选取策略
其它
微服务目前很火,可能慢慢会被servicemesh取代,因为只需要关注业务逻辑,不用关注服务治理
SpringCloud微服务全栈实战讲解 - 公开课笔记相关推荐
- 福利继续:赠书《Spring Cloud微服务-全栈技术与案例解析》
<Spring Cloud微服务-全栈技术与案例解析> 在互联网时代,互联网产品的最大特点就是需要快速发布新功能,支持高并发和大数据.传统的架构已经慢慢不能支撑互联网业务的发展,这时候微服 ...
- 学习笔记:SpringCloud 微服务技术栈_实用篇①_基础知识
若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 前言 学习视频链接 SpringCloud + RabbitMQ + Docker + Redis + 搜 ...
- 学习笔记:SpringCloud 微服务技术栈_高级篇⑤_可靠消息服务
若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 前言 学习视频链接 SpringCloud + RabbitMQ + Docker + Redis + 搜 ...
- 学习笔记:SpringCloud 微服务技术栈_实用篇②_黑马旅游案例
若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 前言 学习视频链接 SpringCloud + RabbitMQ + Docker + Redis + 搜 ...
- 学习笔记之Python全栈开发/人工智能公开课_腾讯课堂
Python全栈开发/人工智能公开课_腾讯课堂 https://ke.qq.com/course/190378 https://github.com/haoran119/ke.qq.com.pytho ...
- 详解springcloud微服务技术栈(一)
1.微服务技术栈 2.认识微服务 2.1.微服务架构演变 2.2.springcloud(Spring Cloud) SpringCloud和SpringBoot的版本兼容关系如下: 2.3.微服务拆 ...
- 尚硅谷_谷粒学苑-微服务+全栈在线教育实战项目之旅
SpringBoot+Maven+MabatisPlus+Vue 底层原理 图解 idea快捷键 SpringBoot,SpringMVC和Spring的关系 VUE+SpringBoot运作过程 编 ...
- 秒杀全网!SpringCloud微服务电商实战项目(全套源码+视频+文档)
写文章很久了,听到粉丝问的最多的问题就是:有没有新的完整的项目,因为现在很多流传的项目都太老了,实战意义不是很强.很多程序员每项技术单独拿出来有可能很厉害,例如:springcloud.springb ...
- 叹服!阿里自述SpringCloud微服务:入门+实战+案例
SpringCloud自述 微服务?Spring?SpringBoot?SpringCloud?......作为一名Java开发人员,对于这些字眼,是否有一种既熟悉又陌生的感觉.你见过,了解过,知道它 ...
最新文章
- 【6】font-size 字体属性
- C# IPGlobalStatistics获取本机网络流量信息
- 安卓开发 adb命令使用
- 安装python的redis模块
- 入门之路:“机器学习初学者”公众号2019年的精选原创文章
- LNCS用户写作指南【 Springer Computer Science Proceedings 】
- Microsoft Team Foundation Server 2010安装指南
- python与h5结合实例_使用h5py合并所有h5文件
- 《深入理解Android:卷III A》一一第3章 深入理解AudioService
- 使用MySQLMTOP监控MySQL性能(二)
- Atitit usrqbg1821 Tls 线程本地存储(ThreadLocal Storage 规范标准化草案解决方案ThreadStatic
- mysql给用户授权_mysql创建用户与授权(实例)
- Linkedin领英如何避免封号
- 2018计算机一级选择题知识题库,计算机二级选择题题库 2018年计算机一级《WPS》选择题练习及答案...
- 【个人经验】3个步骤教你拿到软件著作权证书
- 步步为赢,做好数据分析的7个步骤
- 人力资源数据分析师前景_转行做HR数据分析师 ,工资居然翻了三倍!
- OTC(Open Telekom Cloud)与AWS对比之VPC
- android 键盘使用教程,用鼠标键盘控制你的Android手机完整图文教程
- python程序运行时间的几种分析方法
热门文章
- POJ - 3565 Ants(二分图最小权匹配+KM+思维)
- CodeForces - 859C Pie Rules(dp+博弈)
- NKU两题简单题解析(递归分析与位运算技巧)
- 大量的QT控件及示例发放
- masm中常用的伪指令
- SSL 证书变革之时已至,这些变化你都清楚吗?
- Linux中进程间传递文件描述符的方法
- 好文推荐 | 缓存与数据库一致性问题深度剖析 (修订)
- 这代码写的跟狗屎一样!怎么优化?
- 使用VMware VSphere WebService SDK进行开发 (一)——基本信息阐述