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微服务全栈实战讲解 - 公开课笔记相关推荐

  1. 福利继续:赠书《Spring Cloud微服务-全栈技术与案例解析》

    <Spring Cloud微服务-全栈技术与案例解析> 在互联网时代,互联网产品的最大特点就是需要快速发布新功能,支持高并发和大数据.传统的架构已经慢慢不能支撑互联网业务的发展,这时候微服 ...

  2. 学习笔记:SpringCloud 微服务技术栈_实用篇①_基础知识

    若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 前言 学习视频链接 SpringCloud + RabbitMQ + Docker + Redis + 搜 ...

  3. 学习笔记:SpringCloud 微服务技术栈_高级篇⑤_可靠消息服务

    若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 前言 学习视频链接 SpringCloud + RabbitMQ + Docker + Redis + 搜 ...

  4. 学习笔记:SpringCloud 微服务技术栈_实用篇②_黑马旅游案例

    若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 前言 学习视频链接 SpringCloud + RabbitMQ + Docker + Redis + 搜 ...

  5. 学习笔记之Python全栈开发/人工智能公开课_腾讯课堂

    Python全栈开发/人工智能公开课_腾讯课堂 https://ke.qq.com/course/190378 https://github.com/haoran119/ke.qq.com.pytho ...

  6. 详解springcloud微服务技术栈(一)

    1.微服务技术栈 2.认识微服务 2.1.微服务架构演变 2.2.springcloud(Spring Cloud) SpringCloud和SpringBoot的版本兼容关系如下: 2.3.微服务拆 ...

  7. 尚硅谷_谷粒学苑-微服务+全栈在线教育实战项目之旅

    SpringBoot+Maven+MabatisPlus+Vue 底层原理 图解 idea快捷键 SpringBoot,SpringMVC和Spring的关系 VUE+SpringBoot运作过程 编 ...

  8. 秒杀全网!SpringCloud微服务电商实战项目(全套源码+视频+文档)

    写文章很久了,听到粉丝问的最多的问题就是:有没有新的完整的项目,因为现在很多流传的项目都太老了,实战意义不是很强.很多程序员每项技术单独拿出来有可能很厉害,例如:springcloud.springb ...

  9. 叹服!阿里自述SpringCloud微服务:入门+实战+案例

    SpringCloud自述 微服务?Spring?SpringBoot?SpringCloud?......作为一名Java开发人员,对于这些字眼,是否有一种既熟悉又陌生的感觉.你见过,了解过,知道它 ...

最新文章

  1. 【6】font-size 字体属性
  2. C# IPGlobalStatistics获取本机网络流量信息
  3. 安卓开发 adb命令使用
  4. 安装python的redis模块
  5. 入门之路:“机器学习初学者”公众号2019年的精选原创文章
  6. LNCS用户写作指南【 Springer Computer Science Proceedings 】
  7. Microsoft Team Foundation Server 2010安装指南
  8. python与h5结合实例_使用h5py合并所有h5文件
  9. 《深入理解Android:卷III A》一一第3章 深入理解AudioService
  10. 使用MySQLMTOP监控MySQL性能(二)
  11. Atitit usrqbg1821 Tls 线程本地存储(ThreadLocal Storage 规范标准化草案解决方案ThreadStatic
  12. mysql给用户授权_mysql创建用户与授权(实例)
  13. Linkedin领英如何避免封号
  14. 2018计算机一级选择题知识题库,计算机二级选择题题库 2018年计算机一级《WPS》选择题练习及答案...
  15. 【个人经验】3个步骤教你拿到软件著作权证书
  16. 步步为赢,做好数据分析的7个步骤
  17. 人力资源数据分析师前景_转行做HR数据分析师 ,工资居然翻了三倍!
  18. OTC(Open Telekom Cloud)与AWS对比之VPC
  19. android 键盘使用教程,用鼠标键盘控制你的Android手机完整图文教程
  20. python程序运行时间的几种分析方法

热门文章

  1. POJ - 3565 Ants(二分图最小权匹配+KM+思维)
  2. CodeForces - 859C Pie Rules(dp+博弈)
  3. NKU两题简单题解析(递归分析与位运算技巧)
  4. 大量的QT控件及示例发放
  5. masm中常用的伪指令
  6. SSL 证书变革之时已至,这些变化你都清楚吗?
  7. Linux中进程间传递文件描述符的方法
  8. 好文推荐 | 缓存与数据库一致性问题深度剖析 (修订)
  9. 这代码写的跟狗屎一样!怎么优化?
  10. 使用VMware VSphere WebService SDK进行开发 (一)——基本信息阐述