IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 微服务发展过程 -> 正文阅读

[Java知识库]微服务发展过程

微服务发展过程

1、互联网发展

web1.0

用户只能通过网络获取信息,被动获取信息

web2.0

用户与网络互动,用户与用户互动,淘宝,直播,qq等,数据由用户产生

web3.0

网络开始根据人们数据进行预测,比如导航提示哪里堵车,买商铺提示类似商品


2、技术架构演变

单一架构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hnIQgAd2-1638881512453)(微服务架构的前世今生.assets/image-20211207165705381.png)]

优点=方便部署,简单,只需要打一个war包便于测试,便于共享

缺点=不够灵活,维护麻烦,高耦合,可靠性差,技术限制


垂直应用架构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SimFgGzS-1638881512455)(微服务架构的前世今生.assets/image-20211207165727994.png)]

优点:方便水平扩展,负载均衡,架构简单,拆分流量解决并发问题

缺点:相同逻辑功能代码需要不断复制,成本高,容易资源浪费


SOA面向服务架构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ig0WX3o1-1638881512455)(微服务架构的前世今生.assets/image-20211207165928107.png)]

优点:将复用的功能抽离出来作为一个单独的模块,提高了代码复用,高可用提高了开发效率

系统与服务的界限模糊,不利于开发和维护

缺点:抽取力度不好把控,容易耦合性过高,部署困难,测试困难


微服务架构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ATnBmNQn-1638881512456)(微服务架构的前世今生.assets/image-20211207170137371.png)]

优点:服务拆分更细,利于资源复用,一个新成员也能很快加入模块的开发,每个服务都是一个独立的开发团队

缺点:微服务过多导致治理成本高,不利于系统维护


3、微服务设计原则

AKF拆分原则

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vH5D3b9i-1638881512457)(微服务架构的前世今生.assets/image-20211207170632988.png)]


前后端分离原则

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tyNEYrfo-1638881512457)(微服务架构的前世今生.assets/image-20211207170804699.png)]

小公司需要全才,大公司去需要的时术业有专攻,一个人成为全才,反而可能导致没有一个专精的


无服务状态

假设空调与遥控器,假设遥控器与空调都是20度,空调有状态的情况下,遥控器脱离空调范围减一度,再回到空调范围内加一度,此时空调温度是21,空调无状态下,则是20度,无状态的空调状态由遥控器控制


restful风格

基于“无状态通信原则”,在这里我们直接推荐一个实践优选的 Restful 通信风格

,因为他有很多好处:无状态协议 HTTP,具备先天优势,扩展能力很强。例如需要安全加密时,有现成的成熟方案 HTTPS 可用。JSON 报文序列化,轻量简单,人与机器均可读,学习成本低,搜索引擎友好。语言无关,各大热门语言都提供成熟的 Restful API 框架,相对其他的一些 RPC框架生态更完善。


4、CAP 原则与 BASE 理论

CAP原则

CAP 原则又称 CAP 定理,指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼。CAP 由 Eric Brewer 在 2000 年 PODC 会议上提出。该猜想在提出两年后被证明成立,成为我们熟知的 CAP 定理。CAP 三者不可兼得。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XkJ4uHTS-1638881512458)(微服务架构的前世今生.assets/image-20211207171617210.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FyOVkbww-1638881512459)(微服务架构的前世今生.assets/image-20211207171710988.png)]

现如今,对于多数大型互联网应用的场景,主机众多、部署分散,而且现在的集群规模越来越大,节点只会越来越多,所以节点故障、网络故障是常态,因此分区容错性也就成为了一个分布式系统必然要面对的问题。那么就只能在 C 和 A 之间进行取舍。但对于传统的项目就可能有所不同,拿银行的转账系统来说,涉及到金钱的对于数据一致性不能做出一丝的让步,C 必须保证,出现网络故障的话,宁可停止服务,可以在 A 和 P 之间做取舍。而互联网非金融项目普遍都是基于 AP 模式。

总而言之,没有最好的策略,好的系统应该是根据业务场景来进行架构设计的,只有适合的才是最好的。


BASE 理论

最终一致性,BASE:全称 Basically Available(基本可用),Soft state(软状态),和Eventually consistent(最终一致性)三个短语的缩写,来自 ebay 的架构师提出。既然无法做到强一致性(Strong consistency),但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性(Eventual consistency)

?总的来说,BASE 理论面向的是大型高可用可扩展的分布式系统,和传统事务的ACID 是相反的,它完全不同于 ACID 的强一致性模型,而是通过牺牲强一致性来获得可用性,并允许数据在一段时间是不一致的。


  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-12-08 13:41:02  更:2021-12-08 13:42:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 6:17:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码