微服务实战问题

栏目: 后端 · 发布时间: 4年前

内容简介:对于复杂业务,虽然服务发布时预定义好接口的各种配置,但在引用的服务消费者众多且同时访问的时候,可能会引起网络风暴。这种情况下,比较保险的方式是,把接口的各种配置放在服务引用配置文件里

点击蓝色“ 乔志勇笔记 ”关注我哟

加个“ 星标 ”,第一时间获取推送的文章哦

对应的上篇文章:微服务架构——基本组件

1、服务引用定义配置

对于复杂业务,虽然服务发布时预定义好接口的各种配置,但在引用的服务消费者众多且同时访问的时候,可能会引起网络风暴。这种情况下,比较保险的方式是,把接口的各种配置放在服务引用配置文件里

2、并行订阅服务(rpc服务消费者启动时)

每订阅一个服务就单独用一个线程来处理,这样的话即使遇到个别服务节点连接超时,其他服务节点的初始化连接也不受影响,最慢也就是这个服务节点的初始化连接耗费的时间,最终所有服务节点的初始化连接耗时控制在了30秒以内

3. 批量反注册服务

对于下线机器、节点销毁的场景,通过调用注册中心提供的批量反注册接口,一次调用就可以把该节点上提供的所有服务同时反注册掉,从而避免了“僵尸节点”的出现

4、监控系统选型

ELK加Prometheus

5、服务追踪系统选型

Pinpoint或SkyWalking

6、动态注册中心——心跳机制

心跳开关保护机制— 通知10%

服务变更信息增量更新

服务节点摘除保护机制——不超过20%

7、静态注册中心——客户端摘除机制

人工修改节点时通知

8、负载均衡自适应最优选择算法

做法:每隔一段时间(1分钟)获取客户端同每个服务节点之间调用的平均性能统计

按照这个性能统计对服务节点进行排序,对排在性能倒数20%的那部分节点赋予一个较低的权重(3),其余的节点赋予正常的权重(5)

试用场景:

  • 服务节点数量众多,且性能差异比较大;

  • 服务节点列表经常发生变化,增加节点或者减少节点时有发生;

  • 客户端和服务节点之间的网络情况比较复杂,有些在一个数据中心,有些不在一个数据中心需要跨网访问,而且网络经常延迟或者抖动。

9、服务路由

规则:条件路由、脚本路由

应用场景 : 灰度发布、读写分离、分组调用、流量切换

10、集群故障处理策略

限流、降级、切流量

11 、客户端服务调用处理手段

超时:P99

重试:超时后重试

双发:备份请求,设置P90(不等超时返回的重试),设置最大重试比例为15%

熔断:Hystrix断路器基于滑动窗口算法

隔离:线程池隔离、信号量隔离

12、配置中心

应用场景:资源服务化 、业务动态降级、分组流量切换

选型:Apollo

推荐:胡忠想的从0开始学习微服务

近期文章:

5种分布式锁实现的对比?

Java并发编程学习体系

java8 Stream 史上最全总结

Java 网络编程"初探"

redis 知识点总结

java 核心技术学习总结 (一)

spring中"投机取巧"地限制 用户同时登陆

如果你喜欢本文

请长按二维码,关注 乔志勇笔记

微服务实战问题


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

CSS权威指南(第三版)

CSS权威指南(第三版)

[美] Eric A.Meyer / 侯妍、尹志忠 / 中国电力出版社 / 2007-10 / 58.00

你是否既想获得丰富复杂的网页样式,同时又想节省时间和精力?本书为你展示了如何遵循CSS最新规范(CSS2和CSS2.1)将层叠样式表的方方面面应用于实践。 通过本书提供的诸多示例,你将了解如何做到仅在一处建立样式表就能创建或修改整个网站的外观,以及如何得到HTML力不能及的更丰富的表现效果。 资深CSS专家Eric A.Meyer。利用他独有的睿智和丰富的经验对属性、标记、标记属性和实......一起来看看 《CSS权威指南(第三版)》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

MD5 加密
MD5 加密

MD5 加密工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试