首页 > 其他分享 >云原生微服务(1):后台基础架构发展史

云原生微服务(1):后台基础架构发展史

时间:2023-05-21 12:11:05浏览次数:31  
标签:原生 存储 服务 数据库 基础架构 拆分 后台 架构

​后台技术架构发展史:总体上经历了单体应用,分布式系统时代,和云原生时代的发展演进过程。

1.单体应用:这种架构通常是基于传统的三层结构(表示层、业务逻辑层和数据访问层),并使用关系型数据库进行数据存储和管理。单体应用的性能和可扩展性开始受到限制。

2.垂直架构:服务器负载很高的情况下,拆分和单独部署应用服务器和数据库服务器。

3.数据库主从架构:数据库拥堵和慢查询的情况下,mysql主从模式,增加数据库服务器,一主多从,主库写从库读。程序修改:1是需要增加mysql的从库,2是需要把数据库实例改为读和写实例,3是数据查询的地方要改用读实例。 重点:处理好主从读写分离的同步延时,数据一致性问题。解决方法:

 

分布式系统:在高并发问题的情况下,后台基础架构开始向分布式系统转变,采用微服务和消息队列。

4.分布式应用架构:在每台服务器上都部署业务系统,且部署一个负载均衡服务器,比如使用Ngix作为统一的接入层。重点:本地文件存储和共享问题。解决方式:NFS,RPC,DNS

 

 

 

5.分布式缓存架构:在分布式应用架构的基础上,在数据库慢查询越来越多的情况下使用。重点:引入缓存,解放数据库。(下图以redis为例)例如:使用redis集群,reids服务单机可以支持10w的并发,而mysql可以支持1000,可见redis缓存比mysql数据要快100倍。可以把一些耗时几百毫秒的慢查询的结果缓存起来,缓存查询耗时只有1-2ms,性能提升了上百倍。

6.数据库拆分,分表分库:

对于数据规模越来越大的情况,重点是进行水平拆分和垂直拆分。问题:文章表和评论表的数据总量都超过千万规模时,虽然加入了分布式缓存,但是,只要涉及到数据库的查询、批量更新等操作时,又会变得很慢,再次成为整个系统的瓶颈。解决思路;单表的数据量太大,可以考虑对数据表进行分表,让单张表的数据规模控制在百万的规模。分为两种:水平拆分和垂直拆分。​编辑

 

7.微服务架构:在应用越来越多越来越复杂的情况下使用。重点:注意垂直拆分的服务边界。微服务架构就是对一个大的应用进行垂直拆分,而服务拆分的依据就是各个服务的数据尽量独立。(应用程序被拆分成多个小型服务,每个服务都专注于处理特定的业务逻辑,并通过API接口进行通信和交互。每个服务都可以独立地进行开发、部署和维护,从而提高了系统的可扩展性和可维护性)。比如:博客系统,可以考虑把文章系统、评论系统、图片文件系统、浏览收藏点赞统计系统等进行拆分。

 

*过去十几年比较盛行的SOA系统:面向服务的架构。SOA架构逐渐显现出一些局限性和不足之处,例如服务的粒度过大、服务间的依赖关系过于复杂、集中式管理和控制等。因此,越来越多的企业开始将SOA架构升级为微服务架构,以应对快速变化的业务需求和更高的技术要求。目前,许多银行、保险、电信等传统行业的业务系统正在进行微服务架构的转型和升级。

8.K8s容器化:在微服务太多,管理难度太大的情况下使用。重点:devOPs管理平台和持续集成和部署等能力

 

9.云原生时代:云原生是一种基于容器、微服务和自动化管理的方式来构建和运行应用程序的方法,它可以实现更高的弹性、可靠性和可扩展性。

1)容器化技术,隔离环境、可移植、高扩展,方便实现交付标准化

2)微服务架构:松耦合式系统架构,高内聚,各个服务独立部署,独立演进,按需扩展

3)自动化管理:管理容器、监控应用程序和自动化运维。例如阿里云的EDAS,K8s和SLS等

4)云原生存储:例如分布式存储和数据库服务。阿里云采用阿里云分布式存储服务(OSS)OSS支持多种存储类型和多种数据访问方式,例如对象存储、文件存储、块存储等,可以满足不同的存储需求。阿里云云原生数据库(ApsaraDB for OceanBase),它是一种分布式、高可用、高性能的云原生数据库服务。ApsaraDB for OceanBase支持多种存储引擎和多种数据访问方式,例如关系型数据库、分布式事务等,可以满足不同的数据库需求。

标签:原生,存储,服务,数据库,基础架构,拆分,后台,架构
From: https://www.cnblogs.com/nuszhiqinghublog/p/17418423.html

相关文章

  • Django后台 + Wordpress主题,只要自己看上的主题都可以让它变成自己的
    既然学习了PythonWeb怎么能没有自己的一个小站呢?没有自己精心打造的一个小站怎么敢说自己学习过PythonWeb呢?说的再多不如直接干,我的个人网站也已经部署上线。Django后台+Wordpress主题,只要自己看上的主题都可以让它变成自己的为什么要选择Wordpress主题呢?自己在刚开始学习P......
  • 云原生之使用Docker部署etherpad文档编辑器
    (云原生之使用Docker部署etherpad文档编辑器)一、Etherpad介绍1.Etherpad简介Etherpad是一个高度可定制的开源在线编辑器,提供真正实时的协作编辑。2.Etherpad特点Etherpad允许您实时协作编辑文档,就像在浏览器中运行的实时多人编辑器一样。与您的朋友、同学或同事一起撰写......
  • perf火焰图原生分析Linux cpu性能
    perfrecord-a-g-p16787--sleep30会生成perfdata在当前目录下:-rw-------1rootroot1068092May2118:11perf.datayum-yinstallgitgitclonehttps://github.com/brendangregg/FlameGraph.git生成火焰图perfscript-iperf.data&>perf.unfo......
  • 云原生之使用docker部署TestLink测试平台
    (云原生之使用docker部署TestLink测试平台)一、TestLink介绍TestLink是基于web的测试用例管理系统,主要功能是测试用例的创建、管理和执行,并且还提供了一些简单的统计功能。二、TestLink的特点测试需求管理测试用例管理测试用例对测试需求的覆盖管理测试计划的制......
  • Linux基础22 进程的优先级nice, 后台进程管理, 系统平均负载, 系统启动流程
    进程的优先级:nice值越高:表示优先级越低,例如19,该进程容易将CPU使用量让给其他进程。nice值越低:表示优先级越高,例如-20,该进程更不倾向于让出CPU。#以设定的优先级启动nice-n-10tail-f/var/log/messages#重新设置一个进程的优先级(调整sshd的优先级)[root@oldboyedu~]#......
  • 聊聊原生拖拽API
    拖拽api是我们前端非常常见的api了,比如拖拽排序,拖拽上传文件,树形结构的生成等等都会用到拖拽api,拖拽api本身不复杂难得是在应用上,下面用一个例子来简单使用下这些api先实现布局如下第一步:我们需要把左侧的元素变成可拖拽的,我们可以使用html属性给元素加一个draggable属性把它......
  • 行云流水| CI 3.0 云原生构建全新上线
    研发过程中,如何直观且准确地获悉代码提交后的质量状态?引入持续集成,可以自动化的对代码进行代码检查、单元测试、编译构建、甚至部署与发布,大幅提升开发人员的效率。腾讯云CODING推出CI3.0——云原生构建,是一款基于代码仓库的构建工具,采用全新的设计理念。可用于持续集......
  • 【解决方法】家用路由器的复位/重置(reset)操作,解决管理员后台密码遗忘
    环境:工具:家用路由器系统版本:Windows10问题描述:描述:用户是有线连接到路由器,因为网络出现问题,需要登录到后台,在登录路由器后台时,密码不对,故需要进行重置操作解决方法-视频与文字教程:视频教程:文字教程:1.找到路由器,并查看复位(reset)按钮,路由器复位键有两种类型:RESET按......
  • magento后台发布产品前台缺搜索不到
    magento后台发布产品前台缺搜索不到未完待续1.缓存2索引3建目录的时候,注意建店铺的目录而不是总站的目录4添加商品的时候,注意添加到店铺的目录5商品库存6店铺设置为启用---------------------------------------------------------------------------视频教程http://www.soku......
  • 管理后台
    负责的功能 课程模块 主要包括老师的课程和学生的课程管理,因为数据库有老师和学生的数据老师需要安排学生上课所以会有一个课程表,可能会问到数据库表是怎么设计的,简单列一下主要的字段 课程表(从开发的角度来看,课程表不应该跟老师、班级、学生绑定,仅仅属于一个单独的表......