1.微服务架构介绍

1.1系统架构的演进历史

1.单体架构

2.垂直应用架构

按照业务线垂直划分

3.分布式架构

抽出与业务无关的公共模块

4.SOA架构

面向服务

5.微服务架构

彻底的服务化

5.1微服务架构概览

网关服务配置和治理链路追踪和监控

1.2微服务架构的三大要素

1.服务治理

2.可观测性

3.安全

2.微服务架构原理及特征

2.1微服务架构中的基本概念及组件

把HDFS看做一组微服务

2.2服务间通信

RPC、HTTP

2.3服务注册及服务发现


问题

hardcode 的方式指定下游实例地址有什么问题?

回答

服务有多个实例,没法 hardcode(记住一个服务的所有实例都是运行同一份代码)
服务实例 ip port 本身是动态变化的

![在这里插入图片描述](https://img-blog.csdnimg.cn/1dcc63788f4742128e323dd5dbce8335.png


了解了服务发现的基本机制,我们来看看如何基于服务发现来实现平滑无损的服务实例上下线流程

假设系统管理员需要下线 service B 的 实例-3

不能直接下线,因为还有流量

2.3流量特征

3.核心服务治理功能

3.1服务发布

1.服务难点
服务不可用

服务抖动

服务回滚

蓝绿部署


灰度发布(金丝雀发布)

3.2流量治理

3.3负载均衡


3.4稳定性治理

与正确性无关。

稳定性治理功能:
限流

熔断

过载保护

降级

3.5字节跳动服务治理实践

请求重试的意义

本地函数调用基本没有重试的意义

2.请求重试的难点

幂等性
重试风暴
3.重试策略
重试只有在大部分请求都成功,只有少量请求失败时,才有必要

如果大部分请求都失败,重试只会加剧问题严重性

因此,可以定义,比如重试次数不能超过正常成功请求次数的 1%
防止链路重试

链路层面的防重试风暴的核心是限制每层都发生重试,理想情况下只有最下一层发生重试。
可以返回特殊的 status 表明“请求失败,但别重试”。
Hedged requests
对于可能超时(或延时高)的请求,重新向另一个下游实例发送一个相同的请求,并等待先到达的响应
实际验证经过上述重试策略后,在链路上发生的重试放大效应。

来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

【字节青训营】微服务架构原理核心服务治理与具体实践相关推荐

  1. 字节青训营第三课之高质量编程与性能调优实战的笔记和总结

    这是字节青训营第三课:高质量编程与性能调优实战的笔记和总结 概要 准备 尝试使用 test 命令,编写并运行简单测试 尝试使用 -bench参数,对函数进行性能测试 推荐阅读Go代码Review建议. ...

  2. 字节青训营第一课之go语言入门的笔记和总结

    有幸参加了字节跳动举办的青训营活动,主要是go语言的编程实践,我将会整理课程的笔记和总结,欢迎关注! 1Go语言简介 由于Go语言有语法简单.高性能等特点,因此国内外各大公司如谷歌.腾讯.字节等都在使 ...

  3. 三个小项目入门Go语言|字节青训营笔记

    前言 这是青训营的第一课,今天的课程比较快速的讲解了go语言的入门,并配合三个小的项目实践梳理所学知识点,这里详细回顾一下这三个项目,结合课后作业要求做一些代码补充,并附上自己的分析,青训期间的所有课 ...

  4. 微服务架构与领域驱动设计应用实践

    本篇文章一共分为三个部分,分别是微服务架构的演进过程.具体实践微服务的应用技术和领域驱动设计的意识转变.微服务架构已经渗透到互联网应用的方方面面,而领域驱动设计也逐渐被业界所接收. 微服务架构几乎都是 ...

  5. 字节青训营抖音APP

    You just work hard, the rest is up to time GitHub地址:https://github.com/xiaodainiao/TikTokLite TikTok ...

  6. 字节青训营第十三课之深入浅出RPC框架的笔记与总结.md

    基本概念 本地函数调用 函数调用完整过程如图,藏实际上编译器经常优化,参数和返回值少时直接将其存在寄存器,不需操作栈,直接online不需call: 将a和b的值入栈 经函数指针找到calculate ...

  7. 微服务架构原理与开发实战

    内容简介 最近几年软件开发方法层出不穷,微服务作为一种主流的架构模式一直热度不减.为了帮助广大程序员们更好更快地理解微服务的概念,学习微服务在项目中的实践,本书全面阐述了微服务架构模式的特点.架构思路 ...

  8. 【2018可信云大会】太平洋保险丰隽玮:微服务架构实施与治理

    丰隽玮:非常荣幸就我们在微服务架构上的实践和大家做交流,主要内容是这几个部分,一是我们目前对微服务这套体系的理解,二是我们在微服务架构设计上有哪些思考,三是我们在微服务落地方面的实践,四是我们基于微服 ...

  9. 企业级微服务架构统一安全认证设计与实践!

    来源:mars | https://juejin.cn/post/6906149001520037902 名词定义 Third-party application:第三方应用程序,本文中又称" ...

最新文章

  1. 工作中 99% 能用到的 Git 命令
  2. 分区硬盘Lvm 折腾小记
  3. opencv补全边缘_为什么OpenCV中绘制的轮廓不能填充图像边缘的轮廓?
  4. java 能不能回收 文件流_Java文件流关闭和垃圾回收机制
  5. .NET中的Command(命令)模式
  6. 【数据结构与算法】之深入解析“二叉搜索树中的插入操作”的求解思路与算法示例
  7. DOS Network一月项目月报
  8. zabbix php 5.6 安装配置,CentOS 5.6下Zabbix 1.8.5 服务端安装部署
  9. 2.2基本算法之递归和自调用函数_7592 求最大公约数问题
  10. 用脚本判断用户传参的参数是否有对应的进程在运行并把结果显示给用户
  11. Leetcode每日一题:1248.count-number-of-nice-subarrays(统计[优美子数组])
  12. 放射性核废料处理matlab模型,放射性废物处理问题
  13. 计算机office demo,办公软件应用(Office2007)中级_DEMO盘-2013
  14. 产品读书《定位:有史以来对美国营销影响最大的观念》
  15. excel2007打开后是显示为灰色解决办法
  16. JSPlumb文档翻译
  17. Windows系统提示应用程序无法正常启动(0xc0000142)解决方法
  18. Hive的安装与配置
  19. 几种遍历数组的方法原理
  20. 这或许是全网最全时间序列特征工程构造的文章了

热门文章

  1. 随机森林 c语言,随机森林算法有哪些优缺点
  2. 进去springstrap显示无响应_勉强算是比较详细的游戏显示器推荐
  3. python如何创建子程序_Python中生成器与子程序的并发控制
  4. 026 [转载]冰血大哥的一篇学习计划
  5. 李彦宏开产品发布会被当众泼水,百度AI怎么了?
  6. 使用FloatingActionButton滑动消失后不再显示
  7. error: (-2:Unspecified error) The function is not implemented.
  8. 关于字节,半字,字到底有多多少位
  9. 安装在电脑上的网络测试软件,怎么测试电脑网速,教你网速测试的几个方法(图文)...
  10. 智力大冲浪 【贪心】