当前位置:首页 » 存储配置 » 为什么要用分布式配置中心

为什么要用分布式配置中心

发布时间: 2022-04-24 15:03:01

① Dubbo的分布式系统需要配置哪些环境

bbo实现了分布式远程调用框架,多运行节点既能提高可靠性,又能提升负载能力。bbo配置主要有注册中心(推荐zookeeper或redis)、提供者provider、消费者consumer,注册中心是第三方实现,所以主要配置好服务提供者和消费者就可以了。实际上服务接口和实现都是需要我们自己设计和实现的,bbo做的事情就是将服务实现发布到注册中心,然后消费者从注册中心订阅服务接口,之后对接口的调用就由bbo调度提供者去执行并返回结果。以下配置都有源码,见右侧“免费资源”。
提供者provider的配置:提供者是独立运行的节点,可以多实例运行,将服务注册到注册中心
必须要有application name,注册中心配置zookeeper,协议bbo,超时6秒失败不重试,提供者加载repository和service层bean,然后发布接口service。

② 集中式数据处理和分布式数据处理的优缺点

集中式数据处理优点:

1、部署结构简单。

2、数据容易备份,只需要把中央计算机上的数据备份即可。

3、不易感染病毒,只要对中央计算机做好保护,终端一般不需要外接设备,感染病毒的几率很低。

4、总费用较低,中央计算机的功能非常强大,终端只需要简单、便宜的设备。

缺点:

1、中央计算机需要执行所有的运算,当终端很多时,会导致响应速度变慢。

2、如果终端用户有不同的需要,要对每个用户的程序和资源做单独的配置,在集中式系统上做起来比较困难,而且效率不高。

分布式数据处理优点:

1、分布式网络中的每台机器都能存储和处理数据,降低了对机器性能的要求,所以不必购买昂贵的高性能机器,这大大降低了硬件投资成本。

2、扩展性极佳。在当前系统存储或计算能力不足时,可以简单地通过增加廉价PC机的方式来增加系统的处理和存储能力。

3、处理能力极强。庞大的计算任务可以在合理分割后由分布式网络中的机器并行地处理

缺点

1、计算程序全负荷运行时仍会对计算机的各个部件造成一定压力。

2、对项目方来说,参加分布式计算的志愿者不是项目方自己的人员,不是全体可信任,因此必须引入一定的冗余计算机制,才能防止计算错误、恶意作弊等。



(2)为什么要用分布式配置中心扩展阅读

分布式计算为信息不只分布在一个软件或计算机上,而是分布于多个软件上,可以用多台或一台计算机同时运行若干个软件,通过网络实现信息的共享。与其他算法相比,分布式算法有明显的优势:

1、共享资源更加方便。

2、能够实现计算负载的平衡,用多台计算机同时处理任务。

3、可以根据实际需要合理选择适当的计算机运行该程序。计算机分布式计算的灵魂是平衡负载和共享资源。分布式计算具有高效、快捷、准确的优势

③ 视频会议采用分布式部署有什么好处

分布式架构一个核心的优势就在于能够平衡负载、提高应用的性能。国内服务商,我知道的全时是采用这种部署的。

全时网络视频会议解决方案采用分布式的系统架构,可以同时部署多个区域运营中心,让企业用户可以以最短路径就近接入,提升音频、视频、数据等多媒体通信的效率,降低数据延迟。

另外,采用分布式的部署架构,还可以带来一个附带价值,即提高网络视频会议的稳定性。基于分布式的系统架构,采用负载均衡、多机热备、故障冗余设计等多种机制,消除单故障点,当个别服务器或分布部署的区域运营中心出现故障时,可将用户自动转入其他服务器或运营中心。

④ 什么是服务器分布式部署

1、什么是数据中心分布式部署

数据中心分布式部署,边缘数据中心是基础,是CDN的更下一层,服务对象是IDC及CDN需求的客户。对于流量大的客户,可多点分布,就近部署。

2、分布式部署的好处

A:在全国没有任何一个数据中心可以覆盖全国的每个角落,数据中心集中在一个点不能更好的服务全国各区域。分布式部署相当于在欧洲很多个国家之间的互联网关系。二三线城市就近布点,三级城市网络品质提升。针对网游、网络视频、网络下载等全国分布节点需求较高的客户,选择分布式节点托管在降低成本的同时还更好的保障了二、三级城市业务的网络运营品质,提升用户体验。
B:二三级城市较低的资源成本直接降低了客户网络资源投入。在良好品质保障的情况下,以更低价格购入,实现良好性价比。

⑤ 什么是分布式服务器

所谓分布式服务器就是指数据和程序可以不位于一个服务器上,而是分散到多个服务器,以网络上分散分布的地理信息数据及受其影响的数据库操作为研究对象的一种理论计算模型服务器形式。分布式有利于任务在整个计算机系统上进行分配与优化,克服了传统集中式系统会导致中心主机资源紧张与响应瓶颈的缺陷,解决了网络GIS
中存在的数据异构、数据共享、运算复杂等问题,是地理信息系统技术的一大进步。

⑥ “分布式”与“集群”的区别是什么

简单说,分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。
例如:
如果一个任务由10个子任务组成,每个子任务单独执行需1小时,则在一台服务器上执行改任务需10小时。
采用分布式方案,提供10台服务器,每台服务器只负责处理一个子任务,不考虑子任务间的依赖关系,执行完这个任务只需一个小时。(这种工作模式的一个典型代表就是Hadoop的Map/Rece分布式计算模型)
而采用集群方案,同样提供10台服务器,每台服务器都能独立处理这个任务。假设有10个任务同时到达,10个服务器将同时工作,10小后,10个任务同时完成,这样,整身来看,还是1小时内完成一个任务!
以下是摘抄自网络文章:
一、集群概念
1. 两大关键特性
集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台。在客户端看来,一个集群就象是一个服务实体,但事实上集群由一组服务实体组成。与单一服务实体相比较,集群提供了以下两个关键特性:
· 可扩展性--集群的性能不限于单一的服务实体,新的服务实体可以动态地加入到集群,从而增强集群的性能。
· 高可用性--集群通过服务实体冗余使客户端免于轻易遇到out of service的警告。在集群中,同样的服务可以由多个服务实体提供。如果一个服务实体失败了,另一个服务实体会接管失败的服务实体。集群提供的从一个出 错的服务实体恢复到另一个服务实体的功能增强了应用的可用性。
2. 两大能力
为了具有可扩展性和高可用性特点,集群的必须具备以下两大能力:
· 负载均衡--负载均衡能把任务比较均衡地分布到集群环境下的计算和网络资源。
· 错误恢复--由于某种原因,执行某个任务的资源出现故障,另一服务实体中执行同一任务的资源接着完成任务。这种由于一个实体中的资源不能工作,另一个实体中的资源透明的继续完成任务的过程叫错误恢复。
负载均衡和错误恢复都要求各服务实体中有执行同一任务的资源存在,而且对于同一任务的各个资源来说,执行任务所需的信息视图(信息上下文)必须是一样的。
3. 两大技术
实现集群务必要有以下两大技术:
· 集群地址--集群由多个服务实体组成,集群客户端通过访问集群的集群地址获取集群内部各服务实体的功能。具有单一集群地址(也叫单一影像)是集群的一个基本特征。维护集群地址的设置被称为负载均衡器。负载均衡器内部负责管理各个服务实体的加入和退出,外部负责集群地址向内部服务实体地址的转换。有的负载均衡器实现真正的负载均衡算法,有的只支持任务的转换。只实现任务转换的负载均衡器适用于支持ACTIVE-STANDBY的集群环境,在那里,集群中只有一个服务实体工作,当正在工作的服务实体发生故障时,负载均衡器把后来的任务转向另外一个服务实体。
· 内部通信--为了能协同工作、实现负载均衡和错误恢复,集群各实体间必须时常通信,比如负载均衡器对服务实体心跳测试信息、服务实体间任务执行上下文信息的通信。
具有同一个集群地址使得客户端能访问集群提供的计算服务,一个集群地址下隐藏了各个服务实体的内部地址,使得客户要求的计算服务能在各个服务实体之间分布。内部通信是集群能正常运转的基础,它使得集群具有均衡负载和错误恢复的能力。
二、集群分类
Linux集群主要分成三大类(高可用集群, 负载均衡集群,科学计算集群)
高可用集群(High Availability Cluster)
负载均衡集群(Load Balance Cluster)
科学计算集群(High Performance Computing Cluster)
具体包括:
Linux High Availability 高可用集群
(普通两节点双机热备,多节点HA集群,RAC, shared, share-nothing集群等)
Linux Load Balance 负载均衡集群
(LVS等....)
Linux High Performance Computing 高性能科学计算集群
(Beowulf 类集群....)
三、详细介绍
1. 高可用集群(High Availability Cluster)
常见的就是2个节点做成的HA集群,有很多通俗的不科学的名称,比如"双机热备","双机互备","双机"。
高可用集群解决的是保障用户的应用程序持续对外提供服务的能力。 (请注意高可用集群既不是用来保护业务数据的,保护的是用户的业务程序对外不间断提供服务,把因软件/硬件/人为造成的故障对业务的影响降低到最小程度)。
2. 负载均衡集群(Load Balance Cluster)
负载均衡系统:集群中所有的节点都处于活动状态,它们分摊系统的工作负载。一般Web服务器集群、数据库集群和应用服务器集群都属于这种类型。
负载均衡集群一般用于相应网络请求的网页服务器,数据库服务器。这种集群可以在接到请求时,检查接受请求较少,不繁忙的服务器,并把请求转到这些服务器上。从检查其他服务器状态这一点上看,负载均衡和容错集群很接近,不同之处是数量上更多。
3. 科学计算集群(High Performance Computing Cluster)
高性能计算(High Perfermance Computing)集群,简称HPC集群。这类集群致力于提供单个计算机所不能提供的强大的计算能力。
3.1 高性能计算分类
3.1.1 高吞吐计算(High-throughput Computing)
有一类高性能计算,可以把它分成若干可以并行的子任务,而且各个子任务彼此间没有什么关联。象在家搜寻外星人( SETI@HOME -- Search for Extraterrestrial Intelligence at Home )就是这一类型应用。这一项目是利用Internet上的闲置的计算资源来搜寻外星人。SETI项目的服务器将一组数据和数据模式发给Internet上参加SETI的计算节点,计算节点在给定的数据上用给定的模式进行搜索,然后将搜索的结果发给服务器。服务器负责将从各个计算节点返回的数据汇集成完整的 数据。因为这种类型应用的一个共同特征是在海量数据上搜索某些模式,所以把这类计算称为高吞吐计算。所谓的Internet计算都属于这一类。按照 Flynn的分类,高吞吐计算属于SIMD(Single Instruction/Multiple Data)的范畴。
3.1.2 分布计算(Distributed Computing)
另一类计算刚好和高吞吐计算相反,它们虽然可以给分成若干并行的子任务,但是子任务间联系很紧密,需要大量的数据交换。按照Flynn的分类,分布式的高性能计算属于MIMD(Multiple Instruction/Multiple Data)的范畴。
四、分布式(集群)与集群的联系与区别
分布式是指将不同的业务分布在不同的地方;而集群指的是将几台服务器集中在一起,实现同一业务。
分布式中的每一个节点,都可以做集群。 而集群并不一定就是分布式的。
举例:就比如新浪网,访问的人多了,他可以做一个群集,前面放一个响应服务器,后面几台服务器完成同一业务,如果有业务访问的时候,响应服务器看哪台服务器的负载不是很重,就将给哪一台去完成。
而分布式,从窄意上理解,也跟集群差不多, 但是它的组织比较松散,不像集群,有一个组织性,一台服务器垮了,其它的服务器可以顶上来。
分布式的每一个节点,都完成不同的业务,一个节点垮了,那这个业务就不可访问了。

⑦ 求java学习路线图

/*回答内容很长,能看完的少走一个月弯路,绝不抖机灵*/

提前预警:本文适合Java新手阅读(老手可在评论区给下建议),希望大家看完能有所收获。

废话不多少了,先了解一下Java零基础入门学习路线:

第一阶段:JavaSE阶段

变量、数据类型、运算符

  • 二进制和十进制的转化

  • 注释、单行注释、多行注释、文本注释、注释内容和字节码的关系

  • 标识符、关键字、驼峰原则

  • 变量的本质、内存画图、变量声明和初始化

  • 变量的分类和作用域(局部变量、成员变量、静态变量)

  • 常量和Final

  • 基本数据类型介绍

  • 整型变量和整型常量

  • 浮点类型、float、double

  • char字符型、转义字符

  • boolean布尔型、if语句使用要点、布尔类型占用空间问题

  • 运算符介绍

  • 算数运算符(二元、自增、自减)

  • 赋值和赋值运算符

  • 关系运算符详解

  • 逻辑运算符、短路运算符详解

  • 位运算符详解

  • 字符串连接符

  • 条件运算符(三元运算符)

  • 运算符优先级问题

  • 自动类型转换详解

  • 强制类型装换详解

  • 基本数据类型装换常见错误、溢出、L问题

  • 使用Scanner获取键盘输入

控制语句

  • 控制语句和实现逻辑对应

  • if单选结构

  • if_elseif_else多选结构

  • switch语句_IDEA更换主题

  • 循环_while

  • 循环_for循环_dowhile

  • 嵌套循环

  • break和continue语句_标签_控制语句底层原理

  • 写一个年薪计算机_网络查问题的秘诀(重要)

  • 个人所得税计算器软件

  • 方法核心详解_天才思维模型教你高手学习思维模式

  • 方法的重载

  • 递归结构讲解_递归头_递归体

面向对象编程-基础

  • 面向过程和面向对象的区别

  • 类和对象的概述

  • 类的属性和方法

  • 创建对象内存分析

  • 构造方法(Construtor)及重载

  • 对象类型的参数传递

  • this关键字

  • static关键字详解

  • 局部代码块、构造代码块和静态代码块

  • package和import详解

  • JavaDoc生成API文档

面向对象编程-进阶

  • 面向对象的三大特性

  • 面向对象之【封装(Encapsulation)】

  • 访问权限修饰符

  • 面向对象之【继承(Inheritance)】

  • Object类

  • 方法重写Override

  • super关键字详解

  • 重写equals()和toString()

  • 继承中对象创建的内存分析

  • 面向对象之【多态(Polymorphism)】

  • 向上转型

  • 向下转型

  • instanceof运算符

  • 编译时和运行时详解

  • final修饰符

  • 抽象类和抽象方法(abstrct)

  • 接口的定义和实现

  • JDK8的接口新特性

  • 接口应用:内部类比较器Comparable

  • 内部类详解

  • Java的内存管理与垃圾回收

异常机制

  • 异常的概述

  • 异常的执行过程与分析

  • try-catch-finally捕捉异常

  • throw抛出异常

  • throws声明异常

  • 异常继承体系

  • 运行时异常和编译异常

  • 自定义异常

Java常用类

Wrapper包装类

  • 自动装箱和自动拆箱

  • 包装类的源码分析

  • String类的使用与内存原理

  • String类的源码分析

  • StringBuffer

  • StringBuilder

  • 字符串处理类性能分析

  • Date类

  • System类

  • DateFormat类

  • Calendat类

  • Math类

  • BigInteger类和BigDecimal类

  • Random类

  • 枚举类

  • File类

  • 常见的面试题讲述与分析

  • 数据结构算法

  • 数据结构的概述

  • 线性表

  • 顺序表

  • 链表

  • 栈和队列

  • 二叉树

  • 二叉查找树

  • 二叉平衡树

  • 黑红树

  • 冒泡排序

  • 选择排序

  • 递归

  • 折半查找

  • 集合(容器)

  • 集合和数组的联系和区别

  • 集合框架体系

  • ArrayList的使用和源码分析

  • 集合中使用泛型

  • LinkedList的使用和源码分析

  • HashSet的使用和源码分析

  • 哈希表及原理

  • TreeSet的使用和源码分析

  • 比较器Comparable和Comparator

  • HashMap的使用和源码分析

  • TreeMap的使用和源码分析

  • Iterator于ListIterator

  • Collections工具类

  • 旧集合类Vector、Hashtable

  • 集合总结和选择依据

  • 泛型接口

  • 泛型类

  • 泛型方法

  • IO流

  • IO流的概念

  • IO流的分类及其原理分析

  • 文件流FlieInputStream、FileOutputStream

  • 缓冲流BufferedInputStream、BufferedOutputStream

  • 数据流ObjectInputStream、ObjectOutputStream

  • 序列化和反序列化

  • 转换流InputStreamReader、OutputStreamWriter

  • 打印流PrintWrite和PrintStream

  • 数组流ByteArrayOutputStream、ByteArrayInputStream

  • 使用IO复制文件夹

  • 多线程

  • 进程和线程

  • 线程的创建与启动

  • 创建线程的三种方式对比

  • 线程的生命周期

  • 线程控制

  • 多线程的安全问题与解决办法

  • 线程的同步:同步代码块

  • 线程的同步:同步方法

  • 线程的同步:Lock锁

  • 线程的死锁问题

  • 线程通信

  • Condition

  • 线程的完整生命周期

  • 线程池ThreadPoolExecutor

  • ForkJoin框架

  • ThreadLocal类

  • 网络编程

  • 计算机网络基础知识

  • 网络通信协议

  • OSI参考模型

  • TCP/IP参考模型

  • 数据的封装与拆封原理解析

  • TCP协议

  • UDP协议

  • IP地址和端口号

  • URL和Socket

  • 使用TCP编程实现登录功能

  • 使用UDP编程实现客服系统

  • 使用TCP编程实现文件上传

  • 集合提升寻训练

  • 手写ArrayList

  • 手写单链表

  • 手写Linkedlist

  • 手写HashMap

  • 手写HashSet

  • 最新并发集合类

  • 多线程提升训练

  • 生产者消费者模式扩展

  • Lock锁和Condition

  • ReadWriteLock

  • BlockingQueue

  • volatile关键字

  • 多线程题目练习

  • JDK新特征

  • 面试题详解

  • 设计模式

  • 设计模式入门

  • 面向对象设计七大原则

  • 简单工厂模式

  • 工厂方法模式

  • 单例模式

  • 原型模式

  • 装饰模式

  • 适配器模式

  • 外观模式

第二阶段:数据库

    Mysql基础

  • 数据库基础知识

  • MySQL基础知识

  • MySQL8新特征

  • 安装和卸载MySQL8

  • 使用navicat访问数据库

  • SQL语言入门

  • 创建数据库表

  • DML

  • 修改删除数据库表

  • 表的完整性约束

  • 表的外键约束

  • DML扩展

  • MySQL 查询语句

  • 基本select查询

  • where子句

  • 函数

  • group by

  • having

  • SQL99-内连接查询

  • SQL99-外连接查询

  • SQL99-自连接查询

  • SQL92-连接查询

  • 不相关子查询

  • 相关子查询

  • 分页查询

  • 数据库对象

  • 索引

  • 事务及其特征

  • 事务的并发问题

  • 事务的隔离级别

  • 存储过程

  • 导入导出数据

  • JDBC

  • JDBC概述

  • 使用JDBC完成添加/更新/删除操作

  • 使用JDBC完成查询操作

  • JDBC常用接口

  • 使用PreparedStatement

  • 使用事务完成银行转账

  • 提取DBUtil工具类

  • 使用Properties读写属性文件

  • 日志框架log4j

  • 开发员工管理系统

第三阶段:JavaEE阶段

      Servlet

    • web开发概述

    • B/S和C/S架构简介

    • HTTP协议

    • HTTP请求头和响应头

    • Tomcat安装使用

    • Tomcat目录结构

    • Servlet概述

    • Servlet快速入门

    • Servlet生命周期

    • 读取配置文件信息

    • HttpServletRequest

    • HttpServletResponse

    • GET和POST区别

    • 解决中文乱码

    • 请求转发与重定向

    • 绝对路径和相对路径

    • Cookie

    • Session

    • ServletContext

    • ServletConfig

    • JSP

    • JSP技术介绍

    • JSP的执行过程

    • scriptlet

    • 表达式

    • 声明

    • JSP指令元素

    • JSP动作元素

    • JSP隐式对象

    • JSP底层原理

    • 九大内置对象

    • 四个作用域

    • Servlet和JSP的关系和区别

    • MVC模式

    • 合并Servlet

    • JavaScript

    • JavaScript概述与特点

    • JS基础语法

    • 函数

    • 数组

    • Math对象

    • String对象

    • Date对象

    • 事件event

    • 浏览器开发者工具

    • console

    • DOM和BOM

    • window

    • location

    • navigator

    • history

    • 认识DOM

    • DOM获取元素

    • jQuery

    • jQuery简介及快速入门

    • jQuery入口函数

    • jQuery对象与DOM对象互相转换

    • 基本选择器

    • 属性选择器

    • 位置选择器

    • 表单选择器

    • 内容选择器

    • jQuery事件

    • jQuery动画效果

    • DOM操作-操作文本

    • DOM操作-操作属性

    • DOM操作-操作元素

    • 直接操作CSS样式

    • 操作CSS类样式

    • 购物车案例

    • 表单验证

    • 正则表达式

    • EL+JSTL+过滤器+监听器

    • EL介绍及使用

    • EL取值原理

    • EL隐含对象

    • EL逻辑运算

    • JSTL介绍-核心标签库

    • JSTL核心标签库

    • JSTL-格式标签库

    • Filter原理

    • Filter生命周期

    • Filter链

    • Filter登录验证

    • Filter权限控制

    • Listener概述及分类

    • Listener监听在线用户

    • Ajax和JSON

    • Ajax异步请求和局部刷新的原理

    • 使用原生Ajax验证用户唯一性

    • jQuery Ajax

    • JSON的格式和使用

    • 主要JSON解析器

    • Jackson的使用

    • Jackson的实现原理

    • 使用jQuery Ajax实现三级联动

    • 使用jQuery Ajax实现自动补全

    • 分页和文件上传/下载

    • 分页的意义

    • 理解分页工具类

    • 实现基本分页

    • 实现带查询的分页

    • 文件上传原理

    • 文件上传API

    • 实现文件上传

    • 文件下载原理

    • 文件下载响应头

    • 实现文件下载

    第四阶段:框架阶段

      MyBatis

    • MyBatis概述

    • MyBatis入门配置

    • 基本的CRUD操作

    • 核心配置文件详解

    • Mapper.xml基础详解

    • 模糊查询

    • 分页的实现及插件PageHelper的使用

    • 动态sql+sql片段的使用

    • 一对多、多对一的关系处理

    • 注解的使用

    • 一级缓存和二级缓存说明及使用

    • generator逆向工程使用

    • Spring

    • Spring框架简介

    • Spring官方压缩包目录介绍

    • Spring环境搭建

    • IoC/DI容器详解

    • Spring创建Bean的三种方式

    • scope属性讲解

    • Spring中几种注入方式

    • 静态代理设计模式

    • 动态代理设计模式

    • AOP详解

    • AOP中几种通知类型

    • AOP两种实现方式

    • 自动注入

    • 声明式事务

    • 事务传播行为

    • 事务隔离级别

    • 只读事务

    • 事务回滚

    • 基于注解式配置

    • 常用注解

    • Spring 整合MyBatis

    • i18n

    • Spring整合Junit

    • SpringMVC

    • MVC架构模式

    • 手写MVC框架

    • SpringMVC简介

    • SpringMVC运行原理

    • 基于配置文件方式搭建环境

    • 基于注解方式搭建环境

    • SpringMVC的跳转及视图解析器的配置

    • SpringMVC和Ajax的交互

    • Spring 参数注入

    • SpringMVC作用域传值

    • 视图解析器

    • 文件下载

    • 文件上传

    • Spring拦截器/拦截器栈

    • 登录状态验证

    • SpringMVC容器和Spring容器介绍

    • 异常处理4种方式

    • SpringMVC5其他常用注解

    • Maven

    • Maven简介

    • Maven原理

    • Linux安装及注意事项

    • Maven项目结构

    • POM模型

    • Maven 中项目类型

    • 创建WAR类型的Maven项目

    • scope属性可取值

    • SSM项目拆分演示

    • Maven的常见插件讲解

    • 热部署

    • BootStrap

    • BootStrap概述

    • BootStrap栅格系统

    • BootStrap常用全局CSS样式

    • 常用组件

    • 常用JavaScript插件

    • RBAC

    • RBAC概述

    • RBAC发展历史

    • 基于RBAC的数据库表设计

    • URL拦截实现

    • 动态菜单实现

    • 密码学

    第五阶段:前后端分离阶段

      Spring Boot

    • Spring Boot简介

    • Spring Boot实现Spring MVC

    • 配置文件顺序及类型讲解

    • Spring Boot项目结构

    • Spring Boot 整合MyBatis

    • Spring Boot 整合Druid

    • Spring Boot 整合PageHelper

    • Spring Boot 整合logback

    • Spring Boot 整合JSP

    • Spring Boot 整合Thymeleaf

    • Spring Boot 开发者工具

    • Spring Boot 异常显示页面

    • Spring Boot 整合Junit4

    • Spring Boot 项目打包部署

    • Spring Boot 整合Quartz

    • Spring Boot 中Interceptor使用

    • Spring Boot Actuator

    • HikariCP

    • Logback

    • Logback简介

    • Logback依赖说明

    • Logback 配置文件讲解

    • Logback 控制台输出

    • Logback 文件输出

    • Logback 数据库输出

    • Spring Security

    • Spring Security简介

    • Spring Security架构原理

    • 什么是认证和授权

    • 基础环境搭建

    • 自定义认证流程

    • UserDetailsService和UserDetails

    • PasswordEncoder

    • 自定义认证结果

    • 授权-访问路径匹配方式

    • 授权-权限管理

    • 基于注解实现权限管理

    • Thymeleaf整合Security权限管理

    • Rememberme 实现

    • 退出实现

    • CSRF

    • Linux - CentOS 8

    • Linux简介

    • VMWare安装及使用

    • Linux安装及注意事项

    • Linux目录结构及路径

    • Linux常用命令

    • VMWare常用配置

    • XShell安装及使用

    • Xftp安装及使用

    • JDK解压版配置步骤

    • Tomcat配置步骤

    • 安装MySQL

    • WAR包部署

    • Docker

    • Docker简介

    • Docker与VM对比

    • Docker特点

    • Docker架构

    • Docker安装与启动

    • 镜像加速器配置

    • Docker镜像操作常用命令

    • Docker容器操作常用命令

    • DockerFile

    • 搭建本地镜像仓库

    • 推送镜像到阿里云及本地仓库

    • Docker容器生命周期

    • Docker数据管理

    • Redis

    • Redis简介

    • Redis 单机版安装

    • Redis 数据类型介绍

    • Redis 常用命令

    • Redis 持久化方案

    • Redis 的主从搭建

    • Redis的哨兵搭建

    • Redis 的集群搭建

    • Spring Boot整合Spring Data Redis

    • Redis的缓存穿透

    • Redis的缓存雪崩

    • Redis的缓存击穿

    • Vue

    • vsCode和插件安装

    • webpack介绍

    • Vue项目创建

    • Vue模板语法

    • Vue条件渲染

    • Vue列表渲染

    • Vue事件处理

    • Vue计算属性

    • Vue Class与Style

    • Vue表单处理

    • Vue组件

    • Vue组件生命周期

    • Vue 路由配置

    • Vue Axios网络请求

    • Vue跨域处理

    • Vue Element

    • Mock.js

    • Swagger

    • Swagger2简介

    • Springfox

    • Swagger2基本用法

    • Swagger-UI用法

    • Swagger2配置

    • Swagger2常用配置

    • Git/GitEE

    • Git的下载和安装

    • Git和SVN对比

    • Git创建版本库

    • Git版本控制

    • Git远程仓库

    • Git分支管理

    • Git标签管理

    • GitEE建库

    • GitEE 连接及使用

    • GitEE 组员及管理员配置

    第六阶段:微服务架构

      FastDFS

    • 分布式文件系统概述

    • FastDFS简介

    • FastDFS架构

    • Tracker Server

    • Storage Server

    • FastDFS安装

    • 安装带有FastDFS模块的Nginx

    • Fastdfs-java-client的使用

    • 创建Fastdfs-java-client工具类

    • 实现文件上传与下载

    • KindEditor介绍

    • 通过KindEditor实现文件上传并回显

    • RabbitMQ

    • AMQP简介

    • RabbitMQ简介

    • 安装Erlang

    • 安装RabbitMQ

    • RabbitMQ原理

    • Spring Boot 集成RabbitMQ

    • RabbitMQ的交换器

    • Spring AMQP的使用

    • Spring Cloud Netflix Eureka

    • Eureka简介

    • Eureka和Zookeeper 对比

    • 搭建Eureka注册中心

    • Eureka 服务管理平台介绍

    • 搭建高可用集群

    • 集群原理

    • Eureka优雅停服

    • Spring Cloud Netflix Ribbon

    • Ribbon简介

    • 集中式与进程内负载均衡区别

    • Ribbon常见的负载均衡策略

    • Ribbon的点对点直连

    • Spring Cloud OpenFeign

    • Feign简介

    • Feign的请求参数处理

    • Feign的性能优化

    • 配置Feign负载均衡请求超时时间

    • Spring Cloud Netflix Hystrix

    • Hystrix简介

    • 服务降级

    • 服务熔断

    • 请求缓存

    • Feign的雪崩处理

    • 可视化的数据监控Hystrix-dashboard

    • Spring Cloud Gateway

    • Spring Cloud Gateway简介

    • Gateway基于配置文件实现路由功能

    • Gateway基于配置类实现路由功能

    • Gateway中内置过滤器的使用

    • Gateway中自定义GatewayFilter过滤器的使用

    • Gateway中自定义GlobalFilter过滤器的使用

    • Gateway中使用过滤器实现鉴权

    • Gateway结合Hystrix实现熔断功能

    • Spring Cloud Config

    • 什么是分布式配置中心

    • 创建配置中心服务端

    • 创建配置中心客户端

    • 基于Gitee存储配置文件

    • 基于分布式配置中心实现热刷新

    • Spring Cloud Bus

    • 什么是消息总线

    • 基于消息总线实现全局热刷新

    • ELK

    • ElasticSearch介绍

    • ElasticSearch单机版安装

    • ElasticSearch集群版安装

    • ElasticSearch索引管理

    • ElasticSearch文档管理

    • ElasticSearch文档搜索

    • SpringDataElasticSearch访问ElasticSearch

    • LogStash介绍

    • 基于LogStash收集系统日志

    • TX-LCN

    • 分布式事务简介

    • 分布式事务两大理论依据

    • 分布式事务常见解决方案

    • LCN简介

    • TX-LCN的3种模式

    • LCN原理

    • LCN环境搭建及Demo演示

    • Nginx

    • Nginx的简介

    • 什么是正向代理、反向代理

    • Nginx的安装

    • Nginx配置虚拟主机

    • Nginx配置服务的反向代理

    • Nginx的负载均衡配置

    • Spring Session

    • Spring Session介绍

    • 通过Spring Session共享session中的数据

    • 通过Spring Session同步自定义对象

    • Spring Session的Redis存储结构

    • 设置Session失效时间

    • Spring Session序列化器

    • MyBatis Plus

    • MyBatis Plus简介

    • Spring整合MyBatis Plus

    • MyBatis Plus的全局策略配置

    • MyBatis 的主键生成策略

    • MyBatis Plus的CRUD操作

    • 条件构造器EntityWrapper讲解

    • MyBatis Plus的分页插件配置

    • MyBatis Plus的分页查询

    • MyBatis Plus的其他插件讲解

    • MyBatis Plus的代码生成器讲解

    • MyBatis Plus的公共字段自动填充

    • ShardingSphere

    • 简介

    • 数据库切分方式

    • 基本概念

    • MySQL主从配置

    • 切片规则

    • 读写分离

    • 实现分库分表

    第七阶段:云服务阶段

      Kafka

    • Kafka简介

    • Kafka架构

    • 分区和日志

    • Kafka单机安装

    • Kafka集群配置

    • 自定义分区

    • 自动控制

    • Spring for Apache Kafka

    • Zookeeper

    • Zookeeper简介和安装

    • Zookeeper 数据模型

    • Zookeeper 单机版安装

    • Zookeeper常见命令

    • ZClient操作Zookeeper

    • Zookeeper 集群版安装

    • Zookeeper 客户端常用命令

    • Zookeeper分布式锁

    • RPC

    • 什么是分布式架构

    • 什么是RFC、RPC

    • HttpClient实现RPC

    • RestTemplate

    • RMI实现RPC

    • 基于Zookeeper实现RPC 远程过程调用

    • Dubbo

    • SOA架构介绍

    • Dubbo简介

    • Dubbo结构图

    • Dubbo注册中心

    • Dubbo 支持的协议

    • Dubbo 注册中心搭建

    • Spring Boot 整合 Dubbo

    • Admin管理界面

    • Dubbo 搭建高可用集群

    • Dubbo 负载均衡

    • Spring Cloud Alibaba Dubbo

    • Spring Cloud Alibaba Dubbo简介

    • 基于Zookeeper发布服务

    • 基于Zookeeper订阅服务

    • 实现远程服务调用处理

    • Spring Cloud Alibaba Nacos

    • Spring Cloud Alibaba Nacos简介

    • 搭建Nacos服务器

    • 基于Nacos发布|订阅服务

    • 实现远程服务调用处理

    • Nacos Config配置中心

    • Spring Cloud Alibaba Sentinel

    • Spring Cloud Alibaba Sentinel简介

    • 搭建Sentinel服务器

    • Sentinel-实时监控

    • Sentinel-簇点链路

    • Sentinel-授权规则

    • Sentinel-系统规则

    • @SentinelResource注解

    • 持久化规则

    • Spring Cloud Alibaba Seata

    • Spring Cloud Alibaba Seata简介

    • 搭建Seata服务器

    • Seata支持的事务模式-AT模式

    • Seata支持的事务模式-TCC模式

    • Seata支持的事务模式-Saga模式

    • Seata支持的事务模式-XA模式

    • SeataAT事务模式应用方式

    • SeataTCC事务模式应用方式

    ⑧ Spring cloud应该如何入门,需要学习哪些基础才可以快速掌握

    学习Spring cloud要对Spring Boot有相当的理解与认知,因为Spring cloud的基础是Spring Boot。

    一:什么是Spring cloud

    Spring cloud是多个项目的集合体,也是多种重要技术的集合体,它是一系列的技术的结合体。学习spring cloud需要有足够强大的耐心,因为这是一个非常复杂的过程,学习spring cloud需要了解怎么创建和运行SpringBoot应用,因为springboot是一种新型技术,而spring cloud 是这些技术的结合体,spring cloud的基础功能有服务治理客户端负载均衡,服务容错保护,声明式服务调用,API网关服务,分布式配置中心。

    总而言之,学习spring cloud要从集群,微服务,分布式,springboot等入手,而其中springboot是最基础的。

    ⑨ 什么是分布式系统

    分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。

    正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。

    (9)为什么要用分布式配置中心扩展阅读

    分布式系统系统优点

    1、经济:微处理机提供了比大型主机更好的性能价格比

    2、速度:分布式系统总的计算能力比单个大型主机更强

    3、固有的分布性:一些应用涉及到空间上分散的机器

    4、可靠性:如果一个机器崩溃,整个系统还可以运转

    5、渐增:计算能力可以逐渐有所增加

    ⑩ 开发自动化运维架构六要素

    运维自动化是我们所渴望获得的,但是我们在一味强调自动化能力时,却忽略了影响自动化落地的一个关键因素。那便是跟运维朝夕相处,让人又爱又恨的业务架构。
    要点一:架构独立
    任何架构的产生都是为了满足特定的业务诉求,如果我们在满足业务要求的同时,能够兼顾运维对架构管理的非功能性要求。那么我们有理由认为这样的架构是对运维友好的。
    站在运维的角度,所诉求的架构独立包含四个方面:独立部署,独立测试,组件化和技术解耦。
    独立部署
    指的是一份源代码,可以按照便于运维的管理要求去部署、升级、伸缩等,可通过配置来区分地域分布。服务间相互调用通过接口请求实现,部署独立性也是运维独立性的前提。
    独立测试
    运维能够通过一些便捷的测试用例或者工具,验证该业务架构或服务的可用性。具备该能力的业务架构或服务让运维具备了独立上线的能力,而不需要每次发布或变更都需要开发或测试人员的参与。
    组件规范
    指的是在同一个公司内对相关的技术能有很好的框架支持,从而避免不同的开发团队使用不同的技术栈或者组件,造成公司内部的技术架构失控。
    这种做法能够限制运维对象的无序增加,让运维对生产环境始终保持着掌控。同时也能够让运维保持更多的精力投入,来围绕着标准组件做更多的效率与质量的建设工作。
    技术解耦
    指的是降低服务和服务之间相互依赖的关系,也包含了降低代码对配置文件的依赖。这也是实现微服务的基础,实现独立部署、独立测试、组件化的基础。
    要点二:部署友好
    DevOps 中有大量的篇幅讲述持续交付的技术实践,希望从端到端打通开发、测试、运维的所有技术环节,以实现快速部署和交付价值的目标。可见,部署是运维日常工作很重要的组成部分,是属于计划内的工作,重复度高,必须提升效率。
    实现高效可靠的部署能力,要做好全局规划,以保证部署以及运营阶段的全方位运维掌控。有五个纬度的内容是与部署友好相关的:
    CMDB配置
    在每次部署操作前,运维需要清晰的掌握该应用与架构、与业务的关系,为了更好的全局理解和评估工作量和潜在风险。
    在织云自动化运维平台中,我们习惯于将业务关系、集群管理、运营状态、重要级别、架构层等配置信息作为运维的管理对象纳管于CMDB配置管理数据库中。这种管理办法的好处很明显,集中存储运维对象的配置信息,对日后涉及的运维操作、监控和告警等自动化能力建设,将提供大量的配置数据支撑和决策辅助的功效。
    环境配置
    在运维标准化程度不高的企业中,阻碍部署交付效率的原罪之一便是环境配置,这也是容器化技术主要希望解决的运维痛点之一。
    腾讯的运维实践中,对开发、测试、生产三大主要环境的标准化管理,通过枚举纳管与环境相关的资源集合与运维操作,结合自动初始化工具以实现标准环境管理的落地。
    依赖管理
    解决应用软件对库、运营环境等依赖关系的管理。在织云实践经验中,我们利用包管理,将依赖的库文件或环境的配置,通过整体打包和前后置执行脚本的方案,解决应用软件在不同环境部署的难题。业界还有更轻量的容器化交付方法,也是不错的选择。
    部署方式
    持续交付原则提到要打造可靠可重复的交付流水线,对应用软件的部署操作,我们也强烈按此目标来规划。业界有很多案例可以参考,如Docker的Build、Ship、Run,如织云的通过配置描述、标准化流程的一键部署等等。
    发布自测
    发布自测包含两部分:
    应用的轻量级测试;
    发布/变更内容的校对。
    建设这两种能力以应对不同的运维场景需求,如在增量发布时,使用发布内容的校对能力,运维人员可快速的获取变更文件md5,或对相关的进程和端口的配置信息进行检查比对,确保每次发布变更的可靠。
    同理,轻量级测试则是满足发布时对服务可用性检测的需求,此步骤可以检测服务的连通性,也可以跑些主干的测试用例。
    灰度上线
    在《日常运维三十六计》中有这么一句话:对不可逆的删除或修改操作,尽量延迟或慢速执行。这便是灰度的思想,无论是从用户、时间、服务器等纬度的灰度上线,都是希望尽量降低上线操作的风险,业务架构支持灰度发布的能力,让应用部署过程的风险降低,对运维更友好。
    要点三:可运维性
    运维脑海中最理想的微服务架构,首当其冲的肯定是可运维性强的那类。不具可运维性的应用或架构,对运维团队带来的不仅仅是黑锅,还有对他们职业发展的深深的伤害,因为维护一个没有可运维性的架构,简直就是在浪费运维人员的生命。
    可运维性按操作规范和管理规范可以被归纳为以下七点:
    配置管理
    在微服务架构管理中,我们提议将应用的二进制文件与配置分离管理,以便于实现独立部署的目的。
    被分离出来的应用配置,有三种管理办法:
    文件模式;
    配置项模式;
    分布式配置中心模式。
    限于篇幅不就以上三种方式的优劣展开讨论。不同的企业可选用最适用的配置管理办法,关键是要求各业务使用一致的方案,运维便可以有针对性的建设工具和系统来做好配置管理。
    版本管理
    DevOps持续交付八大原则之一“把所有的东西都纳入版本控制”。就运维对象而言,想要管理好它,就必须能够清晰的描述它。
    和源代码管理的要求类似,运维也需要对日常操作的对象,如包、配置、脚本等都进行脚本化管理,以备在运维系统在完成自动化操作时,能够准确无误的选定被操作的对象和版本。
    标准操作
    运维日常有大量重复度高的工作需要被执行,从精益思想的视角看,这里存在极大的浪费:学习成本、无价值操作、重复建设的脚本/工具、人肉执行的风险等等。
    倘若能在企业内形成统一的运维操作规范,如文件传输、远程执行、应用启动停止等等操作都被规范化、集中化、一键化的操作,运维的效率和质量将得以极大的提升。
    进程管理
    包括应用安装路径、目录结构、规范进程名、规范端口号、启停方式、监控方案等等,被收纳在进程管理的范畴。做好进程管理的全局规划,能够极大的提升自动化运维程度,减少计划外任务的发生。
    空间管理
    做好磁盘空间使用的管理,是为了保证业务数据的有序存放,也是降低计划外任务发生的有效手段。
    要求提前做好的规划:备份策略、存储方案、容量预警、清理策略等,辅以行之有效的工具,让这些任务不再困扰运维。
    日志管理
    日志规范的推行和贯彻需要研发密切配合,在实践中得出的经验,运维理想中的日志规范要包含这些要求:
    业务数据与日志分离
    日志与业务逻辑解耦
    日志格式统一
    返回码及注释清晰
    可获取业务指标(请求量/成功率/延时)
    定义关键事件
    输出级别
    管理方案(存放时长、压缩备份等)
    当具体上述条件的日志规范得以落地,开发、运维和业务都能相应的获得较好的监控分析能力。
    集中管控
    运维的工作先天就容易被切割成不同的部分,发布变更、监控分析、故障处理、项目支持、多云管理等等,我们诉求一站式的运维管理平台,使得所有的工作信息能够衔接起来和传承经验,杜绝因为信息孤岛或人工传递信息而造成的运营风险,提升整体运维管控的效率和质量。
    要点四:容错容灾
    在腾讯技术运营(运维)的四大职责:质量、效率、成本、安全。质量是首要保障的阵地,转换成架构的视角,运维眼中理想的高可用架构架构设计应该包含以下几点:
    负载均衡
    无论是软件或硬件的负责均衡的方案,从运维的角度出发,我们总希望业务架构是无状态的,路由寻址是智能化的,集群容错是自动实现的。
    在腾讯多年的路由软件实践中,软件的负载均衡方案被广泛应用,为业务架构实现高可用立下汗马功劳。
    可调度性
    在移动互联网盛行的年代,可调度性是容灾容错的一项极其重要的运维手段。在业务遭遇无法立刻解决的故障时,将用户或服务调离异常区域,是海量运营实践中屡试不爽的技巧,也是腾讯QQ和微信保障平台业务质量的核心运维能力之一。
    结合域名、VIP、接入网关等技术,让架构支持调度的能力,丰富运维管理手段,有能力更从容的应对各种故障场景。
    异地多活
    异地多活是数据高可用的诉求,是可调度性的前提。针对不同的业务场景,技术实现的手段不限。
    腾讯社交的实践可以参考周小军老师的文章“2亿QQ用户大调度背后的架构设计和高效运营”。
    主从切换
    在数据库的高可用方案中,主从切换是最常见的容灾容错方案。通过在业务逻辑中实现读写分离,再结合智能路由选择实现无人职守的主从切换自动化,无疑是架构设计对DBA最好的馈赠。
    柔性可用
    “先扛住再优化”是腾讯海量运营思想之一,也为我们在做业务架构的高可用设计点明了方向。
    如何在业务量突增的情况下,最大程度的保障业务可用?是做架构规划和设计时不可回避的问题。巧妙的设置柔性开关,或者在架构中内置自动拒绝超额请求的逻辑,能够在关键时刻保证后端服务不雪崩,确保业务架构的高可用。
    要点五:质量监控
    保障和提高业务质量是运维努力追逐的目标,而监控能力是我们实现目标的重要技术手段。运维希望架构为质量监控提供便利和数据支持,要求实现以下几点:
    指标度量
    每个架构都必须能被指标度量,同时,我们希望的是最好只有唯一的指标度量。对于业务日趋完善的立体化监控,监控指标的数量随之会成倍增长。因此,架构的指标度量,我们希望的是最好只有唯一的指标度量。
    基础监控
    指的是网络、专线、主机、系统等低层次的指标能力,这类监控点大多属于非侵入式,很容易实现数据的采集。
    在自动化运维能力健全的企业,基础监控产生的告警数据绝大部分会被收敛掉。同时,这部分监控数据将为高层次的业务监控提供数据支撑和决策依据,或者被包装成更贴近上层应用场景的业务监控数据使用,如容量、多维指标等。
    组件监控
    腾讯习惯把开发框架、路由服务、中间件等都统称为组件,这类监控介于基础监控和业务监控之间,运维常寄希望于在组件中内嵌监控逻辑,通过组件的推广,让组件监控的覆盖度提高,获取数据的成本属中等。如利用路由组件的监控,运维可以获得每个路由服务的请求量、延时等状态和质量指标。
    业务监控
    业务监控的实现方法分主动和被动的监控,即可侵入式实现,又能以旁路的方式达到目的。这类监控方案要求开发的配合,与编码和架构相关。
    通常业务监控的指标都能归纳为请求量、成功率、延时3种指标。实现手段很多,有日志监控、流数据监控、波测等等,业务监控属于高层次的监控,往往能直接反馈业务问题,但倘若要深入分析出问题的根源,就必须结合必要的运维监控管理规范,如返回码定义、日志协议等。需要业务架构在设计时,前置考虑运维监控管理的诉求,全局规划好的范畴。
    全链路监控
    基础、组件、业务的监控手段更多的是聚焦于点的监控,在分布式架构的业务场景中,要做好监控,我们必须要考虑到服务请求链路的监控。
    基于唯一的交易ID或RPC的调用关系,通过技术手段还原调用关系链,再通过模型或事件触发监控告警,来反馈服务链路的状态和质量。该监控手段属于监控的高阶应用,同样需要业务架构规划时做好前置规划和代码埋点。。
    质量考核
    任何监控能力的推进,质量的优化,都需要有管理的闭环,考核是一个不错的手段,从监控覆盖率、指标全面性、事件管理机制到报表考核打分,运维和开发可以携手打造一个持续反馈的质量管理闭环,让业务架构能够不断进化提升。
    要点六:性能成本
    在腾讯,所有的技术运营人员都肩负着一个重要的职能,就是要确保业务运营成本的合理。为此,我们必须对应用吞吐性能、业务容量规划和运营成本都要有相应的管理办法。
    吞吐性能
    DevOps持续交付方法论中,在测试阶段进行的非功能需求测试,其中很重要一点便是对架构吞吐性能的压测,并以此确保应用上线后业务容量的健康。
    在腾讯的实践中,不仅限于测试阶段会做性能压测,我们会结合路由组件的功能,对业务模块、业务SET进行真实请求的压测,以此建立业务容量模型的基准。也从侧面提供数据论证该业务架构的吞吐性能是否达到成本考核的要求,利用不同业务间性能数据的对比,来推动架构性能的不断提高。
    容量规划
    英文capacity一词可以翻译成:应用性能、服务容量、业务总请求量,运维的容量规划是指在应用性能达标的前提下,基于业务总请求量的合理的服务容量规划。
    运营成本
    减少运营成本,是为公司减少现金流的投入,对企业的价值丝毫不弱于质量与效率的提升。
    腾讯以社交、UGC、云计算、游戏、视频等富媒体业务为主,每年消耗在带宽、设备等运营成本的金额十分巨大。运维想要优化运营成本,常常会涉及到产品功能和业务架构的优化。因此,运维理想的业务架构设计需要有足够的成本意识,
    小结
    本文纯属个人以运维视角整理的对微服务架构设计的一些愚见,要实现运维价值最大化,要确保业务质量、效率、成本的全面提高,业务架构这块硬骨头是不得不啃的。
    运维人需要有架构意识,能站在不同角度对业务架构提出建议或需求,这也是DevOps 精神所提倡的,开发和运维联手,持续优化出最好的业务架构。

    热点内容
    怎么登陆appleid密码忘了怎么办啊 发布:2024-11-19 00:29:54 浏览:655
    极地大乱斗挂机脚本 发布:2024-11-19 00:29:01 浏览:419
    iphone怎么新建文件夹 发布:2024-11-19 00:24:37 浏览:912
    免费代理服务器ip和端口怎么用 发布:2024-11-19 00:20:10 浏览:878
    c语言带参数的宏 发布:2024-11-19 00:07:31 浏览:946
    15人团队解压拓展有什么作用 发布:2024-11-18 23:46:34 浏览:307
    百米2什么配置 发布:2024-11-18 23:37:55 浏览:650
    mp3存储 发布:2024-11-18 23:20:08 浏览:865
    自考专升本密码多少位 发布:2024-11-18 23:16:45 浏览:269
    数据库底库 发布:2024-11-18 23:15:08 浏览:945