架构

10种常见的架构模式

懵懂的女人 提交于 2019-12-04 05:57:14
转载于: 10种常见的架构模式 有没有想过要设计多大的企业规模系统?在主要的软件开发开始之前,我们必须选择一个合适的体系结构,它将为我们提供所需的功能和质量属性。因此,在将它们应用到我们的设计之前,我们应该了解不同的体系结构。 什么是架构模式? 根据维基百科中的定义: 架构模式是一个通用的、可重用的解决方案,用于在给定上下文中的软件体系结构中经常出现的问题。架构模式与软件设计模式类似,但具有更广泛的范围。 在本文中,将简要地解释以下10种常见的体系架构模式,以及它们的用法、优缺点。 分层模式 客户端-服务器模式 主从设备模式 管道-过滤器模式 代理模式 点对点模式 事件总线模式 模型-视图-控制器模式 黑板模式 解释器模式 一. 分层模式 这种模式也称为多层体系架构模式。它可以用来构造可以分解为子任务组的程序,每个子任务都处于一个特定的抽象级别。每个层都为下一个提供更高层次服务。 一般信息系统中最常见的是如下所列的4层。 表示层(也称为UI层) 应用层(也称为服务层) 业务逻辑层(也称为领域层) 数据访问层(也称为持久化层) 使用场景: 一般的桌面应用程序 电子商务Web应用程序 二. 客户端-服务器模式 这种模式由两部分组成:一个服务器和多个客户端。服务器组件将为多个客户端组件提供服务。客户端从服务器请求服务,服务器为这些客户端提供相关服务。此外,服务器持续侦听客户机请求。

高可用架构的实现--dubbo+zookeeper+maven+tomcat

人走茶凉 提交于 2019-12-04 05:36:35
  最近在做分布式的服务架构搭建,因为自己确实很喜欢搞这种技术类的研究,所以在公司需要的时候主动承担了这项光荣而艰巨的任务。公司搭建的架构主要目的是需要支持后端接口的多用户的高并发访问,希望能够达到每秒并发量在20000左右,而且希望系统能够持续运行下去而不中断。一开始不知道从哪里入手,凡事开头难,怎么办呢,查百度呗。经过百度的一番搜索,终于找到了一个可用的架构。这里面主要介绍技术架构,像其中用到的K8S之类的属于服务器管理,暂时不介绍。 在找到一个解决架构方案时眼前当时一亮,甚是高兴。架构解决方案就是dubbo+zookeeper+maven+tomcat。但是随之问题就来了,搭建这个架构确实网上资料非常多,可是在调试过程中问题是一堆有一堆,有的时候忙的直接搞到通宵。互联网公司就这一点不好,任务紧必须按时完成。于是请教身边高手,通过多次与高手沟通后才找到了一个特别用用的视频资料,花了10块钱问题就搞定了,知识无价,今天把这个资料分享给大家,希望有遇到这个问题的朋友能够得到完美的解决方案。里面有20个视频左右,能够解决大部分的高可用架构问题(微信号:cpedye)。 来源: https://www.cnblogs.com/scote/p/11832952.html

五种常见架构风格

坚强是说给别人听的谎言 提交于 2019-12-04 05:35:44
Garlan和Shaw将软件架构风格分为五大类,数据流风格、调用/返回风格、独立构件风格、虚拟机风格和仓库风格。其中: (1)数据流风格包括批处理序列架构风格和管道/过滤器架构风格; (2)调用/返回风格包括主程序/子程序架构风格、数据抽象和面向对象架构风格和层次结构架构风格; (3)独立构件风格包括进程通信架构风格和事件驱动的架构风格; (4)虚拟机风格包括解释器架构风格和基于规则的系统; (5)仓库风格包括数据库架构风格和黑板架构风格。 其他的还有特定领域软件架构、状态转移等以及分布式处理等。其中分布式架构风格中有客户机/服务器风格、浏览器/服务器风格、CORBA、DCOM、EJB。每一种具体的软件结构风格的模型如下: 1.数据流风格 数据流风格包括批处理序列和管道/过滤器架构风格。 (1)批处理序列架构风格。组件为一系列固定顺序的计算单元,组件间只通过数据传递交互。每个处理步骤是一个独立的程序,每一步必须在前一步结束后才能开始,数据必须是完整的,以整体的方式传递。 (2)管道/过滤器架构风格。每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流,经过处理,产生输出数据流。这个过程通常通过对输入流的变换及增量计算来完成,包括通过计算和增加信息丰富数据,通过浓缩和删除精炼数据,通过改变记录方式转化数据,递增地转化数据等。在输入被完全消费之前

代码架构.md

一笑奈何 提交于 2019-12-04 04:31:35
代码架构 待办 昨天待办 decription decription 我的流程逻辑(异常处理方式) 1568097677501.drawio.html 29.94 KB 异常的两种处理方式 异常的两种处理方式:抛出由顶层处理和自处理,可以分别使用推荐结合使用,自处理流程繁琐,抛出不好排查问题,结合使用通过自定义异常的方式抛出特定异常,由拦截器处理特定异常,其他异常由本曾打印或者处理,方便排查问题 来源: https://www.cnblogs.com/lishikai/p/11831314.html

一张图秒懂微服务网络架构

℡╲_俬逩灬. 提交于 2019-12-04 04:29:35
  最近参与了 公有云微服务项目 ,已经有一段时间未公开发表。通过这次改造公有云微服务项目的实践过程,分享一下公有云微服务网络架构,及服务部署方案。 每个平台的网络架构图都类似,但细节根据自有服务有组件又各不一样,别人的架构拿过来不一致适合你的架构,那么首先要了解每层架构及每个服务的职责,以及服务与服务之间的交互逻辑。我们根据私有云的架构迁移过来,保持了部分架构,补充了原来在私有云部署中公共组件部分。迁移到公有云后,一些公共组件由我们自己搭建并运维。整理总览图请看下图: 网络架构总览图 一、互联网层   外网层也是网络架构中最上一层,是指服务报露在互联网中使用的,通过IP或域名的方式访问服务。访问的域名通过解析服务器,解析到指定的互联网机器。 互联网机器一般是使用云服务的方式构建。 二、云服务平台层 云计算按照服务类型大致可以分为三类: 将基础设施作为服务Iaas 将平台作为服务PaaS 将软件作为服务SaaS 按照云计算服务的部署方式和服务对象的范围可以将云计算分为三类,即公共云、私有云和混合云。 公共云:是由云服务提供商运营,为最终用户提供从应用程序、软件运行环境,到物理基础设施等各种各样的IT资源。在该方式下,云服务提供商需要保证所提供资源的安全性和可能性等非功能性需求,而最终用户不关心具体资源由谁提供、如何实现等问题。 私有云:是由企业自建自用的云计算中心,相对于公共云

一张图秒懂微服务网络架构

ⅰ亾dé卋堺 提交于 2019-12-04 04:16:25
  最近参与了 公有云微服务项目 ,已经有一段时间未公开发表。通过这次改造公有云微服务项目的实践过程,分享一下公有云微服务网络架构,及服务部署方案。 每个平台的网络架构图都类似,但细节根据自有服务有组件又各不一样,别人的架构拿过来不一致适合你的架构,那么首先要了解每层架构及每个服务的职责,以及服务与服务之间的交互逻辑。我们根据私有云的架构迁移过来,保持了部分架构,补充了原来在私有云部署中公共组件部分。迁移到公有云后,一些公共组件由我们自己搭建并运维。整理总览图请看下图: 网络架构总览图 一、互联网层   外网层也是网络架构中最上一层,是指服务报露在互联网中使用的,通过IP或域名的方式访问服务。访问的域名通过解析服务器,解析到指定的互联网机器。 互联网机器一般是使用云服务的方式构建。 二、云服务平台层 云计算按照服务类型大致可以分为三类: 将基础设施作为服务Iaas 将平台作为服务PaaS 将软件作为服务SaaS 按照云计算服务的部署方式和服务对象的范围可以将云计算分为三类,即公共云、私有云和混合云。 公共云:是由云服务提供商运营,为最终用户提供从应用程序、软件运行环境,到物理基础设施等各种各样的IT资源。在该方式下,云服务提供商需要保证所提供资源的安全性和可能性等非功能性需求,而最终用户不关心具体资源由谁提供、如何实现等问题。 私有云:是由企业自建自用的云计算中心,相对于公共云

ARM架构体系

守給你的承諾、 提交于 2019-12-04 03:47:38
架构 处理器家族 ARMv1 ARM1 ARMv2 ARM2 、 ARM3 ARMv3 ARM6, ARM7 ARMv4 StrongARM 、 ARM7TDMI 、 ARM9 TDMI ARMv5 ARM7EJ 、 ARM9E 、 ARM10E 、 XScale ARMv6 ARM11 、 ARM Cortex-M ARMv7 ARM Cortex-A 、 ARM Cortex-M 、 ARM Cortex-R ARMv8 Cortex-A50 [9] 参考: 【arm cpu架构体系】【armV8】【armv7】【A系列的CPU】 来源: https://www.cnblogs.com/embedded-linux/p/11829416.html

几大技术体系极其应用

你说的曾经没有我的故事 提交于 2019-12-04 02:39:15
目前市面上做软件开发的几大主流技术体系为(一般而言一类编程语言就代表了一种技术体系): Java技术体系 .Net技术体系 Python技术体系 PHP技术体系 C/C++技术体系 Web前端(以JavaScript为代表的技术体系,包括Node.js); 基本上市面上主流做软件开发的都是这几种技术体系,当然还有其他比较小众的技术体系 比如Go语言、Object-C、Rust等等这些都是比较小众的,针对某些小的应用场景的,暂时并没有成为应用开发的主流体系。 我们知道,在软件开发中,就是两种软件架构:一种是B/S架构,一种是C/S架构 开发人员为了设计开发这两种类型架构的软件,需要选择其所需要的技术,对于不同技术体系的选择,便诞生了不同的岗位,整体上讲一般是前端工程师、后端工程师; 再细分下前端又分为web前端、桌面客户端、移动端 B/S架构软件的前端叫做Web前端,C/S架构软件的前端一般叫做客户端(桌面客户端)、移动端 在两种软件架构中(B/S、C/S),后端就是其中的S(Server),两种架构的软件可以共用一个后端,后端一般就一个比较好理解,但是涉及到的后端技术就很多了,因为后端承受的用户的各种请求,对于高并发、高流量的处理,对于后端来说是非常重要的,一般大型网站都会运用去中心化的思想将一个后台拆成多个不同的部分,也即设计成分布式系统

Centos 7 部署lnmp集群架构

强颜欢笑 提交于 2019-12-04 01:42:32
前言介绍 lnmp的全程是 linux + nginx + mysql + php; lnmp就是上述系统及应用程序的简写组合; lnmp其实已经代表了一个用户正常对一个页面请求的流程,nginx接收请求,mysql进行数据存储,php进行后端处理;类似的架构还有lamp或者 linux + nginx + mysql + java等等; lnmp又叫lemp,外国人喜欢叫lemp,中国人喜欢叫lnmp; lnmp相比于lamp架构的优势在于轻便、操作相对简单;lamp优势相对于nginx而言模块丰富; 环境配置 编号 软件 版本 1 Centos 7 2 nginx 1.175 3 mysql 5.7 4 php 7.5 部署详情 来源: https://www.cnblogs.com/guge-94/p/11827304.html

SOA和Web Service分道扬镳(SOA是关于业务流程的,而不是集成的--即:WEB S...

我是研究僧i 提交于 2019-12-04 01:39:51
可能在市场上围绕着面向对象的架构(service-oriented architecture,SOA)误解最深的是SOA和Web Service是同一个概念。这些观点导致了多家厂商的标准的努力并最终确立了为Web Service提供基础的规范的核心: 可能在市场上围绕着面向对象的架构(service-oriented architecture, SOA )误解最深的是 SOA 和 web Service 是同一个概念。这个误解传播的很广,影响了架构师和开发人员、咨询师和厂商等。但是尽管ZapThink不断的在日常的事务上澄清很多问题,这种误解还是存在于一些匆匆检查中无法轻易辨别的细微之处。结果,仅仅站起来喊一下“ SOA 是组织IT资源更好的满足业务不断变化的需求的一种方法!”“ web Service 是基于标准的、协议化的软件功能和数据的 接口 !”是远远不够的。毕竟,如果仅仅是关于不同术语的各自定义的问题,那么这种误解早就消失了。所以,为什么这么基础的误解至今还困扰着我们?我们该做些什么来解决这个问题并最终取得进步呢?对这两个相关、但是各自不同的概念的历史进行简要回顾将有助于澄清这个差异。 最初 SOA 和 web Service是捆绑在一起的 表明 SOA 和 web Service 是不同的概念的第一个证据是 SOA 在 web Service 出现之前早已存在