架构

RESTFUL规范

我是研究僧i 提交于 2019-12-05 08:50:43
1.简单概述   REST,即Representational State Transfer的缩写。RESTful架构,是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制,所以正得到越来越多网站的采用。如果一个架构符合REST原则,就称它为RESTful架构。   简单理解,就是程序之间相互交互的一种规则。 2.具体规则概括 1. https代替http,保证数据传输时安全。 2. 在url中一般要体现api标识 。 http://www.luffycity.com/api/....(建议,因为他不会存在跨域的问题) http://api.luffycity.com/.... 3. 在接口中要体现版本 http://www.luffycity.com/api/v1....(建议,因为他不会存在跨域的问题) 注意:版本还可以放在请求头中 http://www.luffycity.com/api/ accept: ... 4. restful也称为面向资源编程,视网络上的一切都是资源,对资源可以进行操作,所以一般资源都用名词。   http://www.luffycity.com/api/user/ 5. 如果要加入一些筛选条件,可以添加在url中   http://www.luffycity

陀螺丨世界丨系丨统丨开丨发源码

假如想象 提交于 2019-12-05 07:51:22
陀螺丨世界丨系丨统丨开丨发 欢迎咨询厄加特Urgot(189微2212电1525) ,58丨红包丨系丨统丨开丨发丨案丨例丨源丨码丨制丨度丨方丨案丨,我司位于广州天河区,是一家大型专业商业服务互联网技术一体化公司,百人技术团队,市面上有的你叫得出名字的类似系统我们都能做,模式多样,紧跟时代,能做出最符合你、最接近时代轨道的项目方案 本文将从这些问题的深度分析出发,阐述微服务架构落地的一些设计原则和利弊取舍,结合微服务架构过程的很多最佳实践经验,希望给读者带来一定的启发和思考,避免在实际应用过程中走弯路,能够多快好省的落地实现微服务架构。内容涉及: 微服务架构的发展过程简介 微服务架构的特点与常见特性 使用微服务架构的常见技术与简单示例 微服务架构存在的一些问题 如何合理拆分微服务 下面的应用举例: 高并发秒杀:商品秒杀、抢红包; 分布式锁:商品库存、账户资金增减。 这两种应用场景技术解决方案,无论是常规的系统,还是现在火热的区块链开发,都是必须且很有用的技术选型! 在本场 中,会讲到如下内容: thinkphp5 中如何使用 Redis 高并发秒杀 Redis 实现 分布式锁 Redis 实现 项目实战讲解和代码演示 常见的坑和问题交流 电商商品中多样化重要属性,在详情页面加入购物车或者立即下单时候有个 SKU 的弹窗选择。但这些 SKU 的数据结构在 App 商家端应该如何设计呢

微服务架构 - Jimu(积木) 升级 1.0.0 支持 .Net Core 3.0

点点圈 提交于 2019-12-05 07:27:29
如果不知道 Jimu(积木) 是啥,请移步 .Net Core 分布式微服务框架介绍 - Jimu 这次升级除了支持 .Net Core 3.0 还新增部分功能,如 REST, 链路跟踪等,以下为详细; 一、功能列表 功能 说明 Jimu 1.0.0 Jimu 0.6.0 平台 .Net Core 2.1 ○ ● .Net Core 3.0 ● ○ 服务注册与发现 consul ● ○ 网关 Asp.Net Core Web ● ● RPC DotNetty ● ● 鉴权 JWT ● ● 负载均衡 轮训 ● ● 容错策略 重试 ● ● 容器 docker ● ● 路由配置 Attribute注解 ● ● 日志记录 log4net ● ● nlog ● ● 文档 swagger ● ● 链路跟踪 skywalking ● ○ REST Attribute注解 ● ○ 健康监测 心跳 ● ● 文件上存下载 多文件上存,单文件下载 ● ● 跳转 在服务端跳转到指定url ● ○ ORM Dapper ● ● DDD MiniDDD ● ● 二、建议用积木结合 docker 搭建分布式架构 三、swagger 四、skywalking 拓扑图: user -> jimu_apigateway -> jimu_order -> jimu_user Trace 跟踪 五、网关 服务器 微服务

架构

折月煮酒 提交于 2019-12-05 06:58:02
设计千万级用户量网站的高并发架构!!! 聊聊常见的数据库架构设计方案? 来源: https://www.cnblogs.com/lingboweifu/p/11912195.html

阿里巴巴的云原生应用开源探索与实践

不羁的心 提交于 2019-12-05 06:42:05
导读 :从拥抱开源、贡献开源、自主开源,到赋能开源,开源已升级为阿里技术战略之一,且正为开发者源源不断地输送切实可见的价值。云原生是阿里开源的重要领域,短短几年,以 K8s 为核心的云原生开源生态迅猛发展,这是全世界开发者合作杰出成果,也是开源力量的结晶。 阿里巴巴的应用架构演进 大家好,我是司徒放,目前在阿里巴巴负责阿里云的应用平台和微服务产品线。在和大家分享我们在云原生应用方面的探索之前,先和大家介绍一下阿里巴巴在整个应用架构方面的演进历程。 今年是阿里巴巴成立的二十周年,二十年前,阿里巴巴使用的这个应用的架构,还是单体应用模式,它有很多的业务模块都在一个应用里面,各个业务都在一个应用里面开发,这个架构的一个好处是简单,也非常容易部署,对小的创业公司来说是很方便的。它的缺点在于团队变大变多之后,不能满足快速迭代要求,因为每一个业务它需要去发布的时候,都需要在同一个应用上做修改、发布,当这个业务迭代非常快的时候,它同时的一个并发修改就非常多。 所以在 2008 年的时候,阿里巴巴就引进到了微服务架构,只是当时并不叫微服务,而是叫服务化架构。各个业务模式就按照服务的边界来拆分,这是比较松耦合的一种方式,一个微服务应用是无状态的,可以快速扩展实例。而且某个实例有异常比如宕机时会可以自动下线,不会影响整个服务架构的稳定性。微服务架构也比较容易推动整个互联网公司的快速迭代需求。

高德客户端及引擎技术架构演进与思考

不羁岁月 提交于 2019-12-05 06:36:43
2019杭州云栖大会上,高德地图技术团队向与会者分享了包括视觉与机器智能、路线规划、场景化/精细化定位、时空数据应用、亿级流量架构演进等多个出行技术领域的热门话题。现场火爆,听众反响强烈。我们把其中的优秀演讲内容整理成文并陆续发布出来,本文为其中一篇。 2019杭州云栖大会高德技术专场讲师系列: 《视觉智能在高德地图的应用》 《高德在提升定位精度方面的探索和实践》 《高德亿级流量接入层服务的演化之路》 阿里巴巴高级无线开发专家宋照春在高德技术专场做了题为 《高德客户端及引擎技术架构演进与思考》 的演讲,主要分享了高德地图客户端技术架构沿着「上漂下沉」、「模块化、Bundle化」的思路演进所做的一系列架构升级中的经验和思考。 以下为宋照春演讲内容的简版实录: 主要分享三个方面的内容: 融合 架构治理 动态化 一、三管齐下 深度融合 高德最初有两个端,车机版的高德导航,手机版的高德地图,两个团队,一个是2B,一个是2C,分别是汽车业务和手机业务。当时在引擎/技术上,分为离线引擎和在线引擎,但两个团队之间交流比较少,各自有自己的研发、产品和测试,而作为一款端上的APP,两块业务都需要有地图渲染、路线规划、导航以及定位等通用能力。从公司层面看,存在较大的重复建设,整体研发效率较低。 于是我们做了一件事:利用技术手段,打通端上引擎,打造一套能同时支撑多端的APP能力。具体到执行层面

SOFAStack的前世今生

喜夏-厌秋 提交于 2019-12-05 06:36:13
十二年前,为了解决支付宝第一代架构在迅猛发展的业务面前捉襟见肘的困境,蚂蚁金服技术团队开启了一次前所未有的尝试。创新都是被逼出来的,今天高速发展的SOFAStack同样如此。 十二年时间,几代蚂蚁技术人参与攻坚,SOFA走出了一条跟传统金融行业不同的分布式架构之路。这条路,既要基于不可靠的硬件系统实现金融级的性能和可靠性,又要应对支付宝这样的超大规模互联网金融应用,很不容易,但蚂蚁技术团队做到了。今天,就让我们聊聊SOFAStack的前世今生。 SOFA缘起 2006年,支付宝面临的最大问题是业务变得越发复杂,工程师数量也越来越多,原来的单体系统逐渐无法装载更多更复杂的业务逻辑,也不能让大量工程师一起并行工作。当时的支付宝希望,系统可以做到成百上千个项目并行进行,并且每个工程师可以不受干扰地工作,当业务逻辑增加的时候,系统的复杂度不至于指数级上升。技术团队要做对未来的技术架构做一个选择。 支付宝团队做了一个决定,要走一条过去没有人走过的路,启动了支付宝技术系统的服务化之路,也是支付宝第二代架构的由来。2007年开始,支付宝启动了对交易系统、商户系统、会员系统、支付清算系统的改造。 当时担任支付宝首席架构师的程立,给要做的这套分布式架构起了一个“SOFA”的名字,其背后有两个含义:一是按照当时的技术趋势,要做面向服务的架构,即Service Oriented Architecture

MPP架构

北城余情 提交于 2019-12-05 05:32:07
数据库构架设计中主要有Shared Everthting、Shared Nothing、和Shared Disk: Shared Everthting:一般是针对单个主机,完全透明共享CPU/MEMORY/IO,并行处理能力是最差的,典型的代表SQLServer Shared Disk:各个处理单元使用自己的私有 CPU和Memory,共享磁盘系统。典型的代表Oracle Rac, 它是数据共享,可通过增加节点来提高并行处理的能力,扩展能力较好。其类似于SMP(对称多处理)模式,但是当存储器接口达到饱和的时候,增加节点并不能获得更高的性能 。 Shared Nothing:各个处理单元都有自己私有的CPU/内存/硬盘等,不存在共享资源,类似于MPP(大规模并行处理)模式,各处理单元之间通过协议通信,并行处理和扩展能力更好。典型代表DB2 DPF和hadoop ,各节点相互独立,各自处理自己的数据,处理后的结果可能向上层汇总或在节点间流转。 我们常说的 Sharding 其实就是Share Nothing架构,它是把某个表从物理存储上被水平分割,并分配给多台服务器(或多个实例),每台服务器可以独立工作,具备共同的schema,比如MySQL Proxy和Google的各种架构,只需增加服务器数就可以增加处理能力和容量。 MPP概念 MPP即大规模并行处理(Massively

架构设计经验分享

两盒软妹~` 提交于 2019-12-05 05:04:24
架构设计经验分享 架构的调整是否必须按照上述演变路径进行 不是的,以上所说的架构演变顺序只是针对某个侧面进行单独的改进在实际场景中,可能同一时间会有几个问题需要解决,或者可能先达到瓶颈的是另外的方面,这时候就应该按照实际问题实际解决。如在政府类的并发量可能不大,但业务可能很丰富的场景,高并发就不是重点解决的问题,此时优先需要的可能会是丰富需求的解决方案。 对于将要实施的系统,架构应该设计到什么程度 对于单次实施并且性能指标明确的系统,架构设计到能够支持系统的性能指标要求就足够了,但要留有扩展架构的接口以便不备之需。对于不断发展的系统,如电商平台,应设计到能满足下一阶段用户量和性能指标要求的程度,并根据业务的增长不断的迭代升级架构,以支持更高的并发和更丰富的业务。 服务端架构和大数据架构有什么区别 所谓的“大数据”其实是海量数据采集清洗转换、数据存储、数据分析、数据服务等场景解决方案的一个统称,在每一个场景都包含了多种可选的技术如数据采集有Flume、Sqoop、Kettle等,数据存储有分布式文件系统HDFS、FastDFS,NoSQL数据库HBase、MongoDB等,数据分析有Spark技术栈、机器学习算法等。总的来说大数据架构就是根据业务的需求,整合各种大数据组件组合而成的架构,一般会提供分布式存储、分布式计算、多维分析、数据仓库、机器学习算法等能力

详细介绍软件架构设计的三个维度

感情迁移 提交于 2019-12-05 04:36:47
架构设计 是一个非常大的话题,不管写几篇文章,接触到的始终只是冰山一角,更多的是实践中去体会。这篇文章主要介绍面向对象OO、面向方面AOP和面向服务SOA这三个要素在架构设计中的位置与作用。 架构设计有三个维度,或者说是我们在考虑架构时需要思考三个方向。 这三个维度分别为面向对象、面向方面、面向服务。 这三个维度可以看作是正交的,但不同维度会互相印证,互相支撑,整个架构的示意图如图所示。 面向对象 面向对象技术最初是从面向对象的程序设计开始的,它的出现以上世纪60年代Simula语言为标志,并在Smalltalk语言的完善和标准化过程中得到更多的扩展和对以前思想的重新注解。 上世纪80年代中后期,面向对象程序设计逐渐成熟,被计算机界理解和接受,人们又开始进一步考虑面向对象的开发问题。直到现在,面向对象已经成为一种非常流行的编程方式,以及软件设计的架构。 面向对象提出有三个主要目标:重用性、灵活性和扩展性,强调对象的“抽象”、“封装”、“继承”和“多态”。它能让人们以更加接近于现实世界的方式来思考程序,这点可以说是面向对象最大的进步。 在OO思想的运用上,业界出现了很多好的经验与技巧,从而涌现出大量的设计模式,可以说面向对象是系统分析与设计时的一个很重要的方面。 面向方面 面向方面最初来源于hook技术,本质上就是满足扩展的需求,可以在程序中自由扩展功能。