架构

如何实现网站文件动静分离

孤街醉人 提交于 2020-02-19 07:26:03
背景 传统动静不分离的产品架构,随着访问量在增长,性能会成为瓶颈。以一个常见的Web站点为例。www.acar.com是一个刚建立汽车资讯车友交流网站,主站用Php搭建,有10GB的图片素材,部分JS文件。目前购买一台ECS放置所有程序代码,并在ECS上安装MySQL数据库。随着用户访问量的不断增长,不少用户反映,访问网站的速度越来越慢,图片加载慢,网站响应慢,同时网站技术人员也发现用户上传的图片越来越多,快超过1TB了。在这种情况下,用户可以通过利用OSS和CDN对网站进行架构优化,做到网站文件的动静分离的,提升用户访问体验,实现成本可控。 网站动静分离架构 在该架构中,OSS作为海量文件存储源,静态图片、视频文件、下载包、App更新包等均放在OSS,同时OSS作为CDN的源站,通过CDN加速分发,用户通过CDN节点就近获得文件。 该架构优势十分明显: 降低 Web服务器负载,静态文件访问负载全部通过CDN; 存储费用最低,OSS的存储费用仅为ECS磁盘费用的50%; 海量存储空间,无需考虑存储架构升级; 流量费用低,相比直接通过 OSS访问,除极少额外增加的回源流量外,主要流量使用CDN流量,单价最低只需0.26GB,远远低于OSS直接访问的外网流量单价。 具体操作步骤 第一步:对ECS上的网站程序进行整理,把动态程序部分和静态部分分不同的目录管理起来: 建立Images目录

集群日志收集架构ELK

浪尽此生 提交于 2020-02-18 21:03:44
前言 前几篇我们介绍了项目中 如何使用logback组件记录系统的日志情况 ;现在我们的系统都是分布式的,集群化的,那就代表着**我们的应用会分布在很多服务器上面;**那应用的日志文件就会分布在各个服务器上面。 问题 突然有一天我们系统出现了问题,我们第一时间想到的是 先要判断到底哪个服务出现了问题 ;我们的技术人员就连接生产环境服务器,查看服务器上面的应用日志。 那么多的服务器,技术人员这个时候就会很抓狂 ,一个个的查看分析日志,是比较愚蠢的方法。那有什么好的方式呢?今天老顾给大家介绍常规的方案。 ELK方案 ELK 是elastic公司提供的一套完整的日志收集以及展示的解决方案 ,是三个产品的首字母缩写,分别是ElasticSearch、Logstash 和 Kibana。 ElasticSearch简称ES ,它是一个 实时的分布式搜索和分析引擎 ,它可以用于全文搜索,结构化搜索以及分析。它是一个 建立在全文搜索引擎 Apache Lucene 基础上的搜索引擎 ,使用 Java 语言编写。 Logstash是一个具有实时传输能力的数据收集引擎 ,用来进行数据收集(如:读取文本文件)、解析,并将数据 发送给ES 。 Kibana为 Elasticsearch 提供了分析和可视化的 Web 平台 。它可以在 Elasticsearch 的索引中查找,交互数据,并生成各种维度表格

阿里资深架构师整理出来的一份Java核心知识点分享给大家.pdf

强颜欢笑 提交于 2020-02-18 05:57:27
一份整理的蛮不错的Java核心知识点。覆盖了JVM、锁、并发、Java反射、Spring原理、微服务、Zookeeper、数据库、数据结构等大量知识点。 获取方式:转发+关注后私信回复【Java资料】(粉丝福利) image.png image.png image.png 获取方式:转发+关注后私信回复【Java资料】(粉丝福利) 来源: CSDN 作者: Java架构俱乐部 链接: https://blog.csdn.net/weixin_45132238/article/details/104359777

爱奇艺广告系统的演进之路:实践中的一些经验

时光怂恿深爱的人放手 提交于 2020-02-17 18:37:46
本文来自爱奇艺的分享孙立伟。近年来爱奇艺快速发展,优质内容层出不穷,爱奇艺广告也随之发展和壮大,广告在线服务同时服务于品牌、中小、DSP 等不同客户,形成了可以满足不同需求类型的较为完善的商业广告变现布局,广告库存涵盖视频、信息流、泡泡社交(爱奇艺的社交平台)和开机屏等多种场景。爱奇艺效果广告是 2015 年开始全新搭建的一个广告投放平台,随着信息流业务的增长,整个投放平台也经历了一次大的架构调整和多次重要的升级优化。 爱奇艺广告投放平台的概要架构如下图所示。本文主要介绍在线服务相关的内容,在线投放服务即图中虚线所框出的部分,主要包括在线的投放和计费服务。 架构背后的业务需求 架构肯定是为业务需求而生的,先来看看我们面对的业务需求及其特点。 爱奇艺效果广告投放平台目前采用代理商模式,平台主要满足两大类业务需求:面向代理商(广告主)的和面向产品及运营团队的需求。具体来看看。 1、面向代理商的需求: 本质上是要帮助代理商降低转化成本 支持多种广告位:贴片、暂停、浮层、信息流、视频关联位和推荐位等 支持多种结算类型:支持 CPC、CPM 和 CPV 等广告结算类型,oCPC 结算方式在规划中 丰富的定向功能:常用定向维度(平台、地域等)及人群精准定向(地域定向 - 支持区县级别、人群属性定向和 DMP 人群定向),关键词定向 灵活的排期及预算设置:支持分钟粒度的排期设置

Sers微服务架构协议-介绍

故事扮演 提交于 2020-02-17 14:17:08
介绍 Sers微服务架构协议 Sers为一套跨平台跨语言的开源微服务架构协议。 net core版本(2.1.1)单机QPS能达15万。 目前支持C++、Java、c#、javascript。 Sers微服务架构协议简单、轻量、高效。用js实现只需要不到1000行代码,压缩后代码文件只有10KB。支持原生tcp、zmp、websocket、ipc等多种通讯方式。 1.服务中心 Sers为中心化的微服务架构协议,按照身份分为服务中心和服务站点,服务中心提供服务注册、服务发现、服务分发等功能。 2.服务站点 服务站点负责提供服务,亦可调用服务。 3.网关 网关是一个特殊的服务站点。网关用http监听请求,把请求转发到服务中心。 性能数据 qps数据来源于 ab 和 ApiStationMng.html 页面中的统计 项目部署在同一机器, Robot和StationDemo都附加在ServiceCenter上 Os robot内部调用(8线程) ab压测(32线程,CGateway) ipc Windows10 150000 100000 CentOs7(2核1G) 15000 3500 - CentOs7(4核1G) 25000 5000 - 性能初测 qps数据来源于jmeter和 http://ip:6022/ApiStationMng.html 页面中的统计 项目均部署在同一机器

Android Camera基本架构介绍

狂风中的少年 提交于 2020-02-17 06:00:04
之前一直接触的是老的camera架构,这里介绍下最新的架构: 首先看下最新的架构图: Android 相机架构 应用框架: 应用代码位于应用框架级别,它使用 Camera 2 API 与相机硬件进行交互。在内部,这些代码会调用相应的 Binder 接口,以访问与相机互动的原生代码。 AIDL: 与 CameraService 关联的 Binder 接口可在 frameworks/av/camera/aidl/android/hardware 中找到。生成的代码会调用较低级别的原生代码以获取对实体相机的访问权限,并返回用于在框架级别创建 CameraDevice 并最终创建 CameraCaptureSession 对象的数据。 原生框架: 此框架位于 frameworks/av/ 中,并提供相当于 CameraDevice 和 CameraCaptureSession 类的原生类。 Binder IPC 接口: IPC binder 接口用于实现跨越进程边界的通信。调用相机服务的若干个相机 Binder 类位于frameworks/av/camera/camera/aidl/android/hardware 目录中。 ICameraService 是相机服务的接口;ICameraDeviceUser 是已打开的特定相机设备的接口; ICameraServiceListener 和

饿了么交易订单系统的演进之路:从单体到服务化

限于喜欢 提交于 2020-02-17 02:18:00
按: 在业务大规模扩展、做SCALE的时候,系统是最有挑战和变化。我们做软件,最好多对比、学习完各大厂的解决方案,心中自然有个数,出来的东西会避免很多错误。 本文来自饿了么石佳宁的分享,可以学习下优秀的经验。 先自我介绍一下,我于2014年加入饿了么,那时正是饿了么飞速发展的起始点。我一直从事后台领域的研发,比如BD系统、客服系统和订单系统,现在专注交易架构相关的工作。 今天要讲的内容主要分为两大部分。第一部分是在高速增长和愈加复杂的交易场景下,饿了么订单的服务架构是如何演进的,究竟是什么支撑我们的发展。 快速增长下的业务场景 具体讲之前,我先介绍一下我们的场景,因为 脱离具体的场景所有架构演进没有任何意义。 上面这两个图表不是饿了么的数据,是第三方分析整个外卖市场的数据图。左边的图表是从2011年开始,整个O2O市场以及外卖的份额逐年增加。2013年和2014年的时候发生了比较大的飞跃,饿了么也是在这个时间段订单量开始猛增。右边的图表是用户注重外卖平台的因素分布。 从图中可以看到,用户很在意配送速度,在意交易的时效性。对于O2O或者饿了么订单,交易的要求比传统电商的高,因为交易一般一两个小时就结束了。在2014年初,饿了么订单量只有日均10万单,到2014年底超过百万,这是一个质的飞跃,10万订单的量级和百万订单的量级的要求非常不一样。在2015年突破了日均300万

简述移动通信网络的演进之路

无人久伴 提交于 2020-02-16 21:22:25
目录 文章目录 目录 通信网络 核心网演进之路 早古时期 2G 网络架构 3G 网络架构 4G 网络架构 5G 网络架构 5G 网络的需求 5G 网络架构的设计原则 通信网络 电信网(即电话交换网络)由终端、传输和交换三大部分组成; 因特网(即计算机互联网)由终端、传输、交换以及多个计算机网络等几部分组成。 随着通信行业的快速发展,传统的电信网、计算机互联网与有线电视网的融合(三网融合)已经成为网络发展的趋势。三者融合发展,互联互通,为客户同时提供语音、数据和广播电视等多重服务。这里我们将其统一称之为通信网络。相对的,通信网络又分为固话通信网络和移动通信网络两大类。 其中,移动通信网络由三大部分组成:接入网、承载网、核心网。 接入网是 “窗口”,负责把数据收上来; 承载网是 “卡车”,负责把数据送来送去; 核心网就是 “管理中枢”,负责管理这些数据,对数据进行分拣,然后告诉它,该去何方。 核心网演进之路 核心网(Core Network,简称 CN)或被成为骨干网(Backbone),本质就是对数据的处理和分发,即 “路由交换”。 早古时期 最早的时候,固定电话网的核心网,说白了就是把电线两头的电话连接起来,这种交换,非常简单,主要满足人们无线移动通话的需求。 后来,用户数量越来越多,网络范围越来越大,开始有了分层。 网络架构也复杂了,有了网络单元(Net Element,简称

Silverlight架构概述

主宰稳场 提交于 2020-02-16 04:56:43
1.Silverlight概述 Silverlight技术是一个跨浏览器跨平台的插件,可以用来实现丰富的媒体体验和丰富交互性体验的web应用。在编程模型方面: Silverlight1.0支持AJAX、.NET以及动态语言(Python/ruby)。Silverlight1.0利用现有的WEB技术(AJAX、Javascript、DHTML)来进行编程, Silverlight2.0则进入了动态语言和.NET语言的支持,并提供了更多的新特性,比如独立存储(Isolated Storage)、网络编程(NetWorking)以及各种各样丰富的控件。 Silverlight 3.0是最新版本的版本,它刚刚才在09年7月推出,有望成为富互联网平台的首选。这一最新版本的Silverlight具备三维图像支持以及将图像作业卸载到GPU的能力,从而为用户带来更顺畅,更快捷的体验。Silverlight为智能客户商业程序开发提供了强大功能,其网络部署和导航性能都非常棒。该工具代表着未来的开发选择,Silverlight应用程序将为网站应用开发带来新的局面。 更多简介: 关于Silverlight简介 1.Silverlight 1.0架构 Silverlight1.0的架构图如下图所示:在Silverlight1.0中,最主要的编程接口是基于Javascript文档对象模型(DOM)API的