架构

Spring-Cloud-Netflix-系统架构

旧时模样 提交于 2020-04-08 03:24:30
目录 系统架构 概述 集中式架构 概述 特点 垂直拆分 概述 特点 系统架构分类 微服务 微服务的特点: 分布式服务: 微服务和分布式的区别: 微服务要面临的问题: springClould是什么 远程调用方式: RPC: Http: 模拟微服务: 使用nginx实现集群搭建 系统架构 概述 随着互联网的发展,网站应用的规模不断扩大。需求的激增,带来的是技术上的压力。 系统架构也因此也不断的演进、升级、迭代。 从单一应用,到垂直拆分,到分布式服务,到SOA,以及现在火热的微服务架构 集中式架构 概述 当网站流量很小时,只需一个应用 将所有功能都部署在一起,以减少部署节点和成本 从头到尾就一个工程,部署的时候 , 只需要打成一个war包 特点 代码耦合,开发维护困难 无法针对不同模块进行针对性优化 无法水平扩展 单点容错率低,并发能力差 垂直拆分 概述 当访问量逐渐增大,单一应用无法满足需求,此时为了应对更高的并发和业务需求,我们根据业务功能对系统进行拆分 特点 系统拆分实现了流量分担,解决了并发问题 可以针对不同模块进行优化 方便水平扩展,负载均衡,容错率提高 系统间相互独立,会有很多重复开发工作,影响开发效率 系统架构分类 微服务 微服务就是把原本臃肿的一个项目的所有模块拆分开来并做到互相没有关联,甚至可以不使用同一个数据库 微服务的特点: 单一职责 :

(课)温昱·第三部分Refined Architecture阶段 总结

萝らか妹 提交于 2020-04-07 23:42:48
一、从第十一章中: 细化架构的故事 中总结摘录出以下一部分:   架构设计仅仅进行到概念架构层面,对支持团队的并行开发而言是远远不够的;对于多视图方法,要有意识地调整、扩充、改进经典方法以符合实践的真正需要。   从概念架构到细化架构,先设计概念架构,构思关键问题的解决策略 ; 再进行细化架构的设计,以保证为开发提供足够的指导和限制。 二、从第十二章中: 什么是 Refined Architecture 中总结摘录出以下一部分:   架构设计是一门解决复杂问题的实践艺术,于是,以分而治之为思想核心的多视图方法必不 可少。   而多视图方法有两个方面的实际意义:利于思考(因为分而治之的思维方式);便于交流(因为在一定程度上分离了涉众关注点)。   一 种优秀的多视图方法,应该能够比较完善地覆盖架构设计的各项工作内容,且将每项工作内容明确地、有理有据地、一目了然地划归到不同架构视图中去。 三、从第十三章中: 逻辑架构 中总结摘录出以下一部分:   一线架构师最缺的不是理论, 也不是技术,而是位于理论和技术之间的 “ 实践策略 ” 和 “ 实 践套路 ”。就划分子系统这个架构师必做的工作而言,其实践策略可归纳为 3 种 : 分层的细化;分区的引入;机制的提取。   逻辑架构设计的 10 条经验要点:划分子系统 : 分层的细化;目划分子系统 : 分区的引入;划分子系统 : 机制的提取

为什么要使用MVC+REST+CQRS架构

守給你的承諾、 提交于 2020-04-07 19:39:31
具体来说,前端浏览器:angular.js等MVC框架;后端: REST + CQRS 。 angular.js等MVC框架是指前端浏览器的MVC框架,而不是类似Struts 或SpringMVC之类的服务器端后端MVC框架。 关于后端MVC框架的问题可见《MVC模式已死 》 http://www.jdon.com/38448 和 基于任务的UI(Task-Based UI) 。 服务器端的MVC框架主要问题是粒度太粗,只能适合传统的CRUD简单粗放的应用,当我们的软件系统转向以用户体验为主,而不是以企业自身资源管理为主的模式时,响应式设计必然拥有良好的用户感受,而传统后端MVC固定的框架针对大量客户端并发事件处理无疑是力不从心,想象一下,用户鼠标一移动就可能发出一个事件,这么多事件如果每个都走Model-View-Controller这样一个流程,仅Controller就要编制多少?编程成本极高,维护拓展起来很不方便。 将MVC框架移植到浏览器前端(Rich Client),则可以巧妙回避以上问题,javascript的函数风格使得其处理事件来得更简单,对于围绕模型的操作则可以使用MVC实现。见: JavaScript大型可扩展的 设计模式 ,而模型则是从后端领域层以JSON方式推送过来。 后端架构是:REST+CQRS,将 REST 和 CQRS 组合在一起成为CQREST架构

云终端详细介绍,看完你就都懂了

坚强是说给别人听的谎言 提交于 2020-04-07 19:21:01
随着云计算技术的不断成熟和发展,云桌面被越来越多的人所熟知和使用,我们知道云桌面主要有 云终端 和服务器这两大硬件所组成。而今天我们要说的就是这个只有手机大小的云终端。因为云终端虽然看上去很简单,但是通过调查发现并不是所有人都了解它的。所以这里我们就来详细介绍下的。 首先产品架构,市场上虽然有不同品牌和不同厂家生产的云终端,但是我们按它的架构分的话,主要可以把云终端统称为ARM云终端和X86云终端这两种的。ARM云终端采用ARM架构嵌入式芯片,搭载Linux内核,没有独立的内存和硬盘;优点是功耗低、价格便宜,使用成本低。而缺点则是性能和兼容性相对差一些的。而X86云终端采用X86嵌入式处理器,一般搭载Windows或者Android系统,具有独立的内存和硬盘。优点是配置高、兼容性好、具备单独使用的功能。而缺点则是功耗和成本相对来说会更高的。 其次工作原理,在介绍了云终端的产品架构之外,我们在了看看它的工作原理是怎样的,其实不管是那种架构的云终端或者说哪个厂家生产的云终端,他们的工作原理大多都是一样的,那就是通过云桌面软件和协议连接服务器进行使用。即使是具备单独使用的X86云终端它们更多的情况下通过协议连接服务器使用,更多的还是通过调用服务器的资源来进行使用的。 第三注意事项,云终端虽然看上去很简单,但是在选择的时候还是要注意一些问题的,1、对于一些需要确保业务连续性的应用场景

joomla mvc架构, 原理

走远了吗. 提交于 2020-04-07 12:29:47
component基本结构与访问方式 如访问:http://example.com/index.php?option=com_ helloworld Joomla将定位到:/components/com_ helloworld ,并且加载里面的 helloworld .php helloworld .php的工作就是加载相应的 controller ,继而调用相应的 view 含view, task的访问方式 如访问:http://domain.com/index.php?option= com_helloworld &view= helloworld &task= display &layout= default joomla将定位到:看下面标红的,其实是先定位到 helloworld .php,然后调实例化 HelloWorldController,并调用指定的task方法,此处为display,在display里再去实例化 HelloWorldViewHelloWorld 类,继而调用其display方法。所以此处可以说直接定位到 components/com_helloworld/views/helloworld/view.html.php 注意这里的view和task不是必须的,但按以下默认规则: task 默认值:display 通过

项目架构

冷暖自知 提交于 2020-04-07 00:36:23
大多数的程序员,都是做业务开发的,我也是。每天的工作都围绕着产品的需求。我们总在不停地写需求,在不停地堆砌代码,还在不停地解决 Bug 。后来,我们越来越陷入细节,越来越不能把握全局。 对于一个新的项目,你准备怎么设计它?或者,对于一个新的需求,你准备怎么设计它? 代码的组织结构,本身也是一种架构,比如 MVC 。在实际工作中,我们都喜欢对代码进行分层,比如,将代码分成了如下几个部分, controller 面向具体业务提供服务; service 也提供功能的实现,但不针对业务; mapper 主要针对数据层: ---- controller ---- service ---- mapper 然后,对于数据层,你会选择什么作为存储, MySQL 、 Mongo 或者 Redis 。对于高 QPS 的场景,准备如何使用缓存?是否需要使用本地缓存?是否要使用异步进行处理?这些都应该属于架构的范畴。 或者说,先整体规划我们要实现哪些需求,给需求划定边界。然后,分析我们要扛住多大的并发,然后还要支持后续的扩展。 根据此,尝试简单描述现有的服务:我们代码上采用类似 MVC 的结构进行组织,根据 Path 来路由请求,底层目前主要使用 MySQL 作为存储,主要依赖 MySQL 的事物处理机制,对于一些其他的情况,我们还采用 Kafka 来实现异步处理。 来源: oschina 链接:

Spring cloud:总体架构

ε祈祈猫儿з 提交于 2020-04-06 18:05:41
环境 spring cloud 背景 spring cloud 是基于 spring boot 搭建起来的,下面是官网给出的架构图: 这里先做简单介绍,之后将逐步学习其中的各个组件。 组件 Gateway(网关) 流量入口,用户的所有访问请求都需要从这里通过,在这里可以很方便地做一些分流、鉴权等。 Service registry(服务注册) 服务注册和发现,需要一个服务注册中心,所有的微服务都向该中心进行注册。这样,注册中心就清楚每个服务的地址,服务间调用的时候,就不需要使用地址,而是使用服务名进行调用。 Breaker(熔断) 限流,熔断和监控等,为了保护微服务而存在。 Config(配置中心) 每份配置都在自己的服务中,不利于管理,如果服务数量太多,修改配置的工作量巨大,所以建立配置中心,大家所有的配置都到配置中心进行获取。 Distributed tracing(分布式追踪) 由于一次请求调用的服务太多,需要有能监控当前请求访问了全部服务的链路,这就是分布式链路追踪。 Message Broker(消息) 服务间的解耦、通信,可以使用消息队列。 Database(数据库) 数据库用来保存数据。 来源: https://www.cnblogs.com/jiangbo44/p/12642983.html

入门 Serverless:如何实现 Hello World?

自闭症网瘾萝莉.ら 提交于 2020-04-06 17:29:54
近年来,IT 技术的更新迭代速度非常快,每个时间点都有典型的代表名词以及概念,就目前而言,人工智能领域中的机器学习、深度学习、强化学习等名词和概念就非常热,同时区块链、物联网等技术发展也是异常火热。 在云计算领域,有这样一个技术被众多云厂商认为是“风口项目”,甚至可以颠覆现有云计算中的某些格局,为此包括 AWS、谷歌以及腾讯云、阿里云等在内的云厂商,都为此投入了重大人力以及精力进行相关产品建设,它就是 Serverless 技术。 自 2006 年 8 月 9 日,Google 首席执行官埃里克·施密特(Eric Schmidt)在搜索引擎大会(SESSanJose2006)首次提出“云计算”(Cloud Computing)的概念之后,云计算的发展可以用日新月异这个词来形容。 在短短十几年的发展过程中,云计算也从 IaaS 到 PaaS,再到 SaaS,逐渐将去服务器化趋势表现得愈发明显。就目前的情况来看,全球各大 IT 企业,都在紧罗密布的部署自己的“云事业”,尤其是 Serverless 相关概念的推广和产品的推出以及项目的落地,包括 AWS、Google Cloud、Azure、阿里云、腾讯云、华为云等在内的云厂商,无一例外的向 Serverless 进军。或许云计算下一个阶段,可能就是 BaaS+FaaS+Others,即 Serverless,当然也可能这个阶段就是!

02 企业架构之业务架构

倖福魔咒の 提交于 2020-04-06 12:02:46
万般需求皆业务, 万般业务皆流程 找到需求在业务的使用价值. 各部门需求差异化(各部门中包括IT). 所以需要把需求共识话. 成熟度: 对 未来成果 的满意程度. 业务架构师, BA: business analysis, 必须是业务领域的专家 意识重构 -> 流程重构 -> 组织重构. 想想我们的 AWM. 来源: https://www.cnblogs.com/moveofgod/p/12641377.html