架构

MySQL 5.7 深度解析: 半同步复制技术

不问归期 提交于 2020-03-18 07:52:56
复制架构衍生史 在谈这个特性之前,我们先来看看MySQL的复制架构衍生史。 MySQL的复制分为四种: 普通的replication,异步同步。 搭建简单,使用非常广泛,从mysql诞生之初,就产生了这种架构,性能非常好,可谓非常成熟。 但是这种架构数据是异步的,所以有丢失数据库的风险。 semi-sync replication,半同步。性能,功能都介于异步和全同步中间。从mysql5.5开始诞生,目的是为了折中上述两种架构的性能以及优缺点。 sync replication,全同步。目前官方5.7基于Group replication的全同步技术处在labs版本,离正式集成已经不远。全同步技术带来了更多的数据一致性保障。相信是未来同步技术一个重要方向,值得期待。 mysql cluster。 基于NDB引擎,搭建也简单,本身也比较稳定,是mysql里面对数据保护最靠谱的架构,也是目前唯一一个数据完全同步的架构,数据零丢失。不过对业务比较挑剔,限制也较多。 半同步复制 我们今天谈论第二种架构。我们知道,普通的replication,即mysql的异步复制,依靠mysql二进制日志也即binary log进行数据复制。比如两台机器,一台主机(master),另外一台是从机(slave)。 正常的复制为:事务一(t1)写入binlog buffer;dumper

软件构架师的流程

|▌冷眼眸甩不掉的悲伤 提交于 2020-03-17 23:34:49
软件体系架构师工作流程: 今天让我们看了《梦想改造家》回答这样的一个问题:结合《梦想改造家》中建筑者的工作流程谈及对软件体系架构师的工作流程? 软件体系架构师在我的认知中,架构师的工作职责就是将我们所得到的工作需要进行总结,形成一个很好的软件架构(仿佛就是房屋中的一个模子)。但是通过和王平仲工作流程的对比,可以很简单的发现一个软件体系的架构师并没有我们想象的那么的简单。架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工作,是软件项目的总体设计师,是软件组织新产品开发与集成、新技术体系的构建者,是从宏观上驾驭大型系统的战略家,是对软件项目中所有重要架构事情做出决策的人,是策略制定者、组织协调高手、称职的顾问与领导者。 因此,从中可以看出对于架构师的工作要求非常的严格。在此列出软件架构师的最为基本的工作流程: 1、 理解非功能性要求; 在《梦想改造家》中王平仲接受到任务后,直接去住户家中进行用户需求的获取。对于软件架构师来说来说是相同的,当他们拿到项目之后,第一步就应该去客户那里了解非 功能性需求。简单的说,如果架构师如果对于客户的需求都不了解,怎么做出客户满意的软件。而且大多数非功能性需求本质上是技术层面的,而且经常对软件架构产生很大 的影响,所以理解非功能性要求是架构师工作过程中非常重要的一个部分。 2、 根据用户需求,结合用户应用领域的实际情况,设计正确

Ceph学习笔记(1)- 架构概述

时光怂恿深爱的人放手 提交于 2020-03-17 14:59:22
简介 Ceph的目标是采用商业硬件来构建大规模的、具有高可用、高扩展、高性能的分布式存储系统,ceph具有如下特点: 软件定义存储:Ceph不需要特定的硬件,在主流的Linux发行版等类Unix操作系统上均可运行 分布式存储:得意与计算寻址让Ceph客户端可以直接与服务端任意节点通信,避免因存在访问热点产生的性能瓶颈,这也是他可以轻易管理PB级以上规模集群的重要原因 统一存储:Ceph支持传统的块存储(RBD)、文件系统存储(Ceph fs)与新兴的对象存储协议(RADOSGW) 架构 Ceph采用存储应用与存储服务完全分离(Client/Server)的模式,基于Rados对外提供服务。客户端可以直接通过LIBRADOS访问RADOS系统,也可以调用在LIBRADOS上封装的Radosgw、librbd、libcephfs这些接口访问存储。 图1 Ceph架构图 RADOS网关接口(RGW):如图1,RGW提供对象存储服务,通过librados允许APP直接与Ceph对象存储建立连接,基于librados封装的librgw也提供了与Amazon S3协议和OpenStack Swift协议兼容的RESTful API。可以将它理解为对文件(对象)进行上传、下载、查询、删除等。 对象存储采用扁平化目录结构,利于进行大规模的扩容。 S3/Swift接口均分三级:Account

理解RESTful架构

戏子无情 提交于 2020-03-17 13:02:25
越来越多的人开始意识到,网站即软件,而且是一种新型的软件。   这种“互联网软件”采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点。   网站开发,完全可以采用软件开发的模式。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之前的通信。互联网的兴起,使得这两个领域开始融合,现在我们必须考虑,如何开发在互联网环境中使用的软件。   RESTFUL架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以得到越来越多网站的采用。   但是,到底什么是RESTFUL架构,并不是一个容易说清楚的问题。下面,我就谈谈我理解的RESTFUL架构。   一、起源   REST这个词,是Roy Thomas Fielding在他2000年的博士论文中提出的。      Fielding是一个非常重要的人,它是HTTP协议(1.0版和1.1版)的主要设计者、Apache服务器软件的作者之一、Apache基金会的第一任主席。所以,他的这篇论文已经发表,就引起了关注,并且立即对互联网开发产生了深远的影响。   他这样介绍论文的写作目的:   "本文研究计算机科学两大前沿----软件和网络----的交叉点。长期以来,软件研究主要关注软件设计的分类、设计方法的演化

restful架构

|▌冷眼眸甩不掉的悲伤 提交于 2020-03-17 11:09:11
restful软件架构 含义 restful软件架构风格:是互联网软件架构风格,也就是以网络为基础的软件的架构。 在理解restful架构之前我们先解释下什么是架构,软件架构指软件系统的“基础结构”,创造这些基础结构的准则,以及对这些结构的描述。 要理解restful架构,最好的方法就是先去理解representational state transfer,的每一词代表什么含义。 resources rest中所说的表现层状态转移(representational state transfer),其实有一个隐含的主语,就是资源(resources),表现层其实指的就是资源的表现层。所谓的资源就是网络上的一个具体信息。这个信息可以是图片、文本、音频、服务等等,总之就是一个具体的信息实体。你可以用一个URI指向它,每种特定的URI特定的URI,要获取这个资源访问他特定的URI就可以。 representational 资源是具体的信息实体,他可以有多种外在表现形式,我们把资源具体表现出来的形式叫做表现层。 比如,文本可以用txt格式表现,也可以用HTML格式、XML格式、JSON格式表现,甚至可以采用二进制格式; URI只代表资源的实体,不代表它的形式。严格地说,有些网址最后的".html"后缀名是不必要的,因为这个后缀名表示格式,属于"表现层"范畴,而URI应该只代表"资源"的位置

面向服务的架构-SOA

久未见 提交于 2020-03-17 06:42:05
面向服务的体系结构 (Service-oriented architecture)是构造 分布式系统 的应用程序的方法。它将应用程序功能作为 服务 发送给 最终用户 或者其他 服务 。 它采用 开放标准 、与软件资源进行 交互 并采用表示的标准方式。 何谓 SOA? 企业系统的架构师认为SOA能够帮助业务迅速和高效地响应变化的市场条件. 服务导向的架构在宏观(服务)上,而不是在微观上(对象)提高了重复使用性。同时,服务导向的架构可以简化与传统系统的互连和使用。 在某种意义上说,服务导向的架构可以被认为是一种演化,而不是革命。它捕捉到了之前体系架构的许多最佳实践或实际应用。比如在通信系统中,近年来进展有限的解决方案多采用完全静态的绑定来与网络中的其他设备沟通,但若正式采用SOA方式,解决方案就更能妥善定位,进而突显定义明确且可高度跨平台操作接口的重要性。 有些人质疑服务导向的架构是不是1970年代模块化编程,1980年代的面向事件设计,1990年代的基于接口/构件设计的一种复兴?(1990s)。 服务导向的架构提升了将用户从服务实现分开的目标。服务可以运行在不同的服务器上,并通过网络被访问。 这也大大增加了服务的重用。 SOA的原则 以下指导原则是开发,维护和使用SOA的基本原则 可重复使用, 粒度 , 模组性 , 可组合型, 构件化以及 具交互操作性 符合标准(通用的或行业的)

【面向服务体系架构】

橙三吉。 提交于 2020-03-17 06:41:12
什么是SOA SOA:面向服务架构(Service Oriented Architecture) 关注点在业务,而不是在对象的变化上 必然性:编程技术的发展 开始,基于过程式编程,使用大量函数 面向对象编程出现,一切皆为对象 面向组件编程出现,对可重用的对象组合成一个组件 面向服务, 也可以看成是一个越来越抽象化的发展 功能浪费:多个系统中,各个系统有不少部分是相同或者类似的;SOA可以通过共用服务,减少这部分的开发 效率低下:因为重复做轮子,所以效率低下 架构复杂:因为各个系统架构都不同,增加复杂度 集成困难:不同系统是独立的,要集成的时候很困难 设计复杂:设计的对象不止是一个系统,而是对一对系统的统筹考虑 缺乏标准:业界缺少SOA的规范 自上而下设计(全局推动):要领导说话,决定,才能这么做 服务治理:很多服务开发出来,如何管理这些服务 提供了以上这些一些规范和原则 有大家都认可的契约,才能共同合作 服务自己管理自己,不应该和其他功能耦合 自己能控制自己的运行环境 2、Protobuf,一个关于数据序列化,数据传输、存储的一个工具,为了在SOA中更高效地处理数据;不完整的RPC组件 3、Thrift,一个RPC组件 4、Dubbo Protobuf和Thrift面向跨语言,对Java支持没有那么好 DubboRPC框架 出现背景: RPC,是客户端可以动态请求不同服务器的服务

笔试DAY6

徘徊边缘 提交于 2020-03-17 01:47:40
软件架构 四大主架构包括: 业务架构 业务架构是战略。 业务架构主要包括功能、角色和权限三部分。功能是企业服务,用户使用的每一个功能,就是企业的每一个服务。角色是用户操作的归类,功能与角色的对应关系即权限。 数据架构 数据设计依赖于企业的数据,而不是数据库的设计,对企业数据适当做归类,会直接导致数据设计,最终画出 E-R 图,数据设计完成后,数据库设计就自然而然出来了。 应用架构 应用架构是战术。它起到承上启下的作用,一方面承接业务架构的落地,一方面影响技术选型。 应用就是处理器,应用架构的内容包括现有架构图、Web 应用现状、作业小应用(Job)现状和接口架构。其中,接口是应用层面的关键,它是一个程序与另外一个程序交互的部分。 技术架构 技术架构是装备。 对于支持业务、数据和应用服务的部署来说必须的逻辑软硬件能力。包括IT基础设施、中间件、网络、通信、部署处理和一些标准等。 传送门 填空题选择题 接口是一组常量与抽象方法的集合 switch case 支持的 6 种数据类型 转义字符 HashTable和HashMap的区别详解 Thread类中的方法 java中被final修饰的方法可以重载但不可以重写。 哪些类可以用于处理Unicode java中修饰接口的修饰符:final abstract 来源: CSDN 作者: hellovisionx 链接: https:/

springcloud微服务架构

你。 提交于 2020-03-16 19:13:00
项目结构 grace-mirc (项目目录) ├─doc (存放文档) ├─grace-auth (授权服务提供) │ └─src │ └─main │ ├─java │ │ └─com │ │ └─wujw (项目代码) │ │ └─grace │ │ └─auth │ └─resources (资源配置文件) ├─grace-common (系统公共模块) │ └─src │ └─main │ └─java │ └─com │ └─wujw (项目代码) │ └─grace │ └─common ├─grace-config (配置中心) │ └─src │ └─main │ ├─java │ │ └─com │ │ └─wujw (项目代码) │ │ └─grace │ │ └─config │ └─resources (资源配置文件) ├─grace-eureka (服务注册与发现) │ └─src │ └─main │ ├─java │ │ └─com │ │ └─wujw (项目代码) │ │ └─grace │ │ └─eureka │ └─resources (资源配置文件) ├─grace-gateway (ZUUL网关) │ └─src │ ├─main │ │ ├─java │ │ │ └─com │ │ │ └─wujw (项目代码) │ │ │ └

一文解析Redis读写分离技术

孤者浪人 提交于 2020-03-16 09:29:42
云数据库Redis版不管主从版还是集群规格,replica作为备库不对外提供服务,只有在发生HA的时候,replica提升为master后才承担读写流量。这种架构读写请求都在master上完成,一致性较高,但性能受到master数量的限制。经常有用户数据较少,但因为流量或者并发太高而不得不升级到更大的集群规格。 背景 云数据库Redis版不管主从版还是集群规格,replica作为备库不对外提供服务,只有在发生HA的时候,replica提升为master后才承担读写流量。这种架构读写请求都在master上完成,一致性较高,但性能受到master数量的限制。经常有用户数据较少,但因为流量或者并发太高而不得不升级到更大的集群规格。 为满足读多写少的业务场景,最大化节约用户成本,云数据库Redis版推出了读写分离规格,为用户提供透明、高可用、高性能、高灵活的读写分离服务。 架构 Redis集群模式有redis-proxy、master、replica、HA等几个角色。在读写分离实例中,新增read-only replica角色来承担读流量,replica作为热备不提供服务,架构上保持对现有集群规格的兼容性。redis-proxy按权重将读写请求转发到master或者某个read-only replica上;HA负责监控DB节点的健康状态,异常时发起主从切换或重搭read-only