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知识库 -> 1、微服务技术的发展 -> 正文阅读

[Java知识库]1、微服务技术的发展

? ?在了解微服务技术之前,我们先回顾一下架构的发展演进。

1.单体架构(将其业务的所有功能集中在一个项目中开发,打成一个包部署)

架构简单,部署成本低,但是耦合度高,造成维护困难,升级困难。

2.分布式架构(根据业务功能对系统做拆分,每个业务功能模块作为独立项目开发,称为一个服务。)

降低服务耦合,有利于服务升级和拓展。

缺点:服务调用关系错综复杂,服务炒粉也有很多问题需要思考,需要制定一套标准来约束分布式架构:

  • 服务拆分的粒度如何界定?
  • 服务之间如何调用?
  • 服务的调用关系如何管理?

3.微服务

微服务的架构特征:

  • 单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责
  • 自治:团队独立、技术独立、数据独立,独立部署和交付
  • 面向服务:服务提供统一标准的接口,与语言和技术无关
  • 隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题

微服务的上述特性其实是在给分布式架构制定一个标准,进一步降低服务之间的耦合度,提供服务的独立性和灵活性。做到高内聚,低耦合。

因此,可以认为微服务是一种经过良好架构设计的分布式架构方案?。

其中在 Java 领域最引人注目的就是 SpringCloud 提供的方案了。

SpringCloud

SpringCloud 是目前国内使用最广泛的微服务框架。官网地址:Spring Cloud

SpringCloud 集成了各种微服务功能组件,并基于 SpringBoot 实现了这些组件的自动装配,从而提供了良好的开箱即用体验。

其中常见的组件包括:

另外,SpringCloud 底层是依赖于 SpringBoot 的,并且有版本的兼容关系,如下:

内容知识

需要学习的微服务知识内容

? ? ? ? 服务集群:会根据业务功能模块,把一个单体的项目 拆分成若干个独立的项目,每个项目完成一部分功能,将来进行独立开发和部署,把一个单独的项目称之为服务。一个大型项目会包含上百甚至上千个服务,终于形成一个服务集群。

????????注册中心:当服务调用的关系越来越复杂的时候,单靠人去记录和维护是不可能的,所以需要依靠注册中心,它会记住每个微服务的端口 IP,去它那里拉取服务的信息。

????????配置中心:统一管理所有服务的配置,去配置中心进行配置的更新。

????????服务网关:拦截非法请求,并且进行请求的精准转发给相对应的微服务。

????????分布式缓存:数据库无法抗住众多用户高的并发,所以需要缓存,缓存数据是放在内存中,所以访问速度快。所以数据库以后就做写操作,和事务较高的一些数据存储。

????????分布式搜索:业务中还有复杂的搜索和海量数据的统计和分析

????????消息队列:在微服务中还需要一种异步的消息队列组件,如果用户请求来了,服务A调用B,B调用C 这样链路长了,耗时就特别久,如果使用异步消息队列,用户请求来了服务A往消息队列发送一条消息 通知服务B和C赶紧做事,A就结束了,这样耗时就会减少很多,吞吐量就会增大很多。异步消息队列能够大大增加服务的并发

分布式日志服务:如此庞大和复杂的一个服务,在运行的过程当中,如果出现了什么问题,不好排查,所以在微服务运行中我们会引入两个新的组件,来解决这种服务的异常定位,第一个是分布式日志服务,它可以统计每个服务运行的成千上百的日志,统一的进行存储和统计分析

????????链路追踪:实时监测每个服务节点的运行状态,CPU的负载,内存的占用,等等情况,一旦出现问题,能够精准的定位到某一个方法和栈信息。那么你就能够很快速的定位到异常所在了。

? ? ? ? (贴一个网上一个项目的架构图,更深入了解一下微服务架构)

?微服务所需要的技术点

?以及自动化部署(成千上百个微服务不可能使用人工部署,需要用到自动化部署)

微服务框架对比

SpringCloud常用组件有哪些?


SpringCloud包含的组件很多,很多功能都是重复的。其中最常用组件包括:

1、注册中心组件:Eureka、Nacos等

2、负载均衡组件:Ribbon

3、远程调用组件:OpenFeign

4、网关组件:Zuul、Gateway

5、服务保护组件:Hystrix、Sentinel

6、服务配置管理组件:SpringCloudConfig、Nacos

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-10-08 11:39:38  更:2021-10-08 11:39:40 
 
开发: 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/27 11:11:34-

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