当前位置: 首页 > news >正文

微服务介绍

微服务

微服务架构发展

  • 微服务这个概念最早是在2011年5月威尼斯的一个软件架构会议上讨论提出的,用于描述一些作为通用架构风格的设计原则;
  • 2012年3月在波兰举行的Degree Conference大会,james lewis做演讲,讨论了微服务一些原则与特征,如单一职责、康威定律,自动扩展,DDD等;
  • 微服务架构则是2012年的一次技术大会Fred George提出的,演讲如何拆分服务以及利用MQ进行服务解耦;这是微服务雏形;
  • Martin Fowler在2014年发表微服务文章
  • 2016年4月 LightBend公司创始人,akka的作者jonas发布响应式微服务架构;

发展趋势

在这里插入图片描述

单体架构

在这里插入图片描述

单体架构开发和维护简单,我们单体的spring boot项目使用到tomcat服务器、访问数据库等就是单体架构;

垂直架构

单体架构业务耦合度高,于是部署多个系统解耦,如用户、订单、商品子系统;

通过nginx负载均衡来调度;

在这里插入图片描述

SOA架构

在这里插入图片描述

在这里插入图片描述

为了提高复用性,又采用了SOA架构,通过抽象服务来实现功能复用;用户系统的服务可由多个子系统提供;

微服务架构

在SOA架构思想上提炼,服务治理和交付链不断完善

在这里插入图片描述

优点

独立开发 – 所有微服务都可以根据各自的功能轻松开发

独立部署 – 基于其服务,可以在任何应用程序中单独部署它们

故障隔离 – 即使应用程序的一项服务不起作用,系统仍可继续运行

混合技术堆栈 – 可以使用不同的语言和技术来构建同一应用程序的不同服务

粒度缩放 – 单个组件可根据需要进行缩放,无需将所有组件缩放在一起

常见概念

服务治理

服务治理就是服务的自动化管理,最核心就是服务的自动注册和发现

服务调用

微服务架构,常需要进行服务间的远程调用;

主流的有基于Http的Restful接口,基于TCP的rpc协议;

服务网关

随着服务的不断增多,不同的微服务有不同的网络地址,外部客户端可能需要调用很多个服务接口才能完成一个业务需求,如果让客户端直接与各个服务通信可能会出现问题:

每个微服务需要单独的身份权限认证;

在一定的场景下,存在跨域问题;

服务容错

微服务中,一个请求通常需要调用多个服务,如果调用链中的服务出现问题,那么其他的服务也会受到影响,我们不能避免发送,能做的是在出现问题时容错;

链路追踪

一次请求跨越多个服务,我们需要对一条请求的服务链进行链路追踪,记录日志,监控性能;

http://www.lryc.cn/news/36949.html

相关文章:

  • 搭建SpringBoot多模块微服务项目脚手架(三)
  • 对vue3中reactive、toref、torefs、ref的详细理解
  • C++ Primer Plus 第6版 读书笔记(6) 第 6 章 分支语句和逻辑运算符
  • Java Class 加密工具 ClassFinal
  • 【蓝桥杯集训·每日一题】AcWing 3555. 二叉树
  • 【JavaScript运行原理之V8引擎】V8引擎解析JavaScript代码原理
  • C++11:智能指针
  • ccc-pytorch-RNN(7)
  • docker安装(linux)
  • 【数据库概论】10.1 事务及其作用
  • 通讯录(C++实现)
  • 轻松掌握C++的模板与类模板,将Tamplate广泛运用于我们的编程生活
  • pandas 数据预处理+数据概览 处理技巧整理(持续更新版)
  • mmdetectionV2.x版本 训练自己的VOC数据集
  • Shell - crontab 定时 git 拉取并执行 maven 打包
  • 408考研计算机之计算机组成与设计——知识点及其做题经验篇目3:指令的寻址方式
  • 前端包管理工具:npm,yarn、cnpm、npx、pnpm
  • 推荐系统 FM因式分解
  • Maven基础入门
  • 传输层协议 TCP UDP
  • 一点就分享系列(实践篇6——上篇)【迟到补发】Yolo-High_level系列算法开源项目融入V8 旨在研究和兼容使用【持续更新】
  • buu RSA 1 (Crypto 第一页)
  • Python 二分查找:bisect库的使用
  • 性能优化之HBase性能调优
  • 图像金字塔,原理、实现及应用
  • 08-Oracle游标管理(定义,打开、获取数据及关闭游标)
  • Python判断字符串是否包含特定子串的7种方法
  • aop实现接口访问频率限制
  • Hive---窗口函数
  • JavaSe第7次笔记