架构
文章平均质量分 61
xiaomin_____
努力~~
展开
-
构建高并发高可用的电商平台架构实践 转载
[-]一 设计理念空间换时间 多级缓存静态化 索引并行与分布式计算 任务切分分而治之MR 多进程多线程并行执行MPP多维度的可用 负载均衡容灾备份 读写分离 依赖关系 监控伸缩 拆分 无状态优化资源利用...原创 2014-03-06 10:23:42 · 115 阅读 · 0 评论 -
大型互联网架构概述
解决问题的通用思路是将分而治之(divide-and-conquer),将大问题分为若干个小问题,各个击破。在大型互联网的架构实践中,无一不体现这种思想。架构目标低成本:任何公司存在的价值都是为了获取商业利益。在可能的情况下,希望一切都是低成本的。高性能:网站性能是客观的指标,可以具体体现到响应时间、吞吐量等技术指标。系统的响应延迟,指系统完成某一功能需要使用的时间;系统的吞吐...原创 2014-03-06 10:27:12 · 108 阅读 · 0 评论 -
自己动手写SSO(单点登录)
SSO在我们的应用中非常常见,例如我们在OA系统登录了,我们就可以直接进入采购系统,不需要再登录了,这样使我们非常方便。现在网上也有很多实现方法,于是乎我也想写一个看看。我主要用到的是cookie的机制。在此,分享给大家,同时提供源代码下载。 进入主题: 工程说明 SSO的实现一般是会有一个SSO Server,也会叫认证中心,同时也会有被认证的系统,如OA系...原创 2014-03-06 11:46:53 · 167 阅读 · 0 评论 -
大型网站架构图
1.1大型网站软件系统的特点 与传统企业应用系统相比,大型互联网应用系统有以下特点。 高并发,大流量 高可用 海量数据 用户分布广泛,网络情况复杂 安全环境恶劣 需求快速变更,发布频繁 渐进式发展 1.2大型网站架构演化发展历程 大型网站的技术挑战主要来自于庞大的用户,高并发的访问和海量的数据,任何简单...原创 2014-04-02 16:19:43 · 127 阅读 · 0 评论 -
亿图图示
亿图图示专家(EDraw Max)是一款基于矢量的绘图工具,包含大量的事例库和模板库。可以很方便的绘制各种专业的业务流程图、组织结构图、商业图表、程序流程图、数据流程图、工程管理图、软件设计图、网络拓扑图等等。它帮助您更方便,更快捷的阐述设计思想,创作灵感。在设计时它采用全拖曳式操作,结合4600多个常用图形模板库和用户自定义实例库,最大程度简化用户的工作量;让你在设计时既可以充分利用固有的素材,...原创 2015-05-04 15:05:48 · 273 阅读 · 0 评论 -
基于Hbase的一个简单的商品推荐系统
纵观业界的电商网站,我站在一个用户的角度来看,商品推荐有很多种: 一种是通过我搜索、查看的那件商品的,系统统计出搜索、查看该商品的其他用户搜索、查看其他商品的次数,把排名靠前的推荐给我,当当的一个栗子:我查看了《Hadoop权威指南》,系统给我推荐了一堆其他的书: 一种是通过我最近的搜索、查看过商品,系统给我推荐一些它认为我感兴趣的商品,淘宝的一个栗子:还有...原创 2016-04-15 17:18:11 · 1193 阅读 · 0 评论 -
面向服务与微服务架构
背景最近阅读了 Martin Fowler 和 James Lewis 合著的一篇文章 Microservices, 文中主要描述和探讨了最近流行起来的一种服务架构模式——微服务,和我最近几年工作的实践比较相关感觉深受启发。本文吸收了部分原文观点,结合自身实践经验来探讨下服务架构模式的演化。面向服务架构(SOA)面向服务架构 SOA 思想概念的提出已不是什么新鲜事,大概在10...原创 2016-04-18 10:16:29 · 117 阅读 · 0 评论 -
淘宝高可伸缩高性能架构的相关框架介绍
一 应用无状态(淘宝session框架) 俗话说,一个系 统的伸缩性的好坏取决于应用的状态如何管理。为什么这么说呢?咱们试想一下,假如我们在session中保存了大量与客户端的状态信 息的话,那么当保存状态信息的server宕机的时候,我们怎么办?通常来说,我们都是通过集群来解决这个问题,而通常 所说的集群,不仅有负载均衡,更重要的是要有失效恢复failover,比如tomcat采 用的集群节...原创 2016-04-22 10:05:14 · 126 阅读 · 0 评论 -
微服务实战(一):微服务架构的优势与不足
英文原文:Introduction to Microservices 这篇文章作者是Chris Richardson,他是早期基于Java的Amazonite EC2 PaaS平台CloudFoundry.com的创始人。现在他为企业提供如何开发和部署应用的咨询服务。他也经常在http://microservices.io上发表有关微服务的文章。 微服务正在博客、社交媒体讨论组和会议...原创 2016-04-27 10:00:26 · 121 阅读 · 0 评论 -
BGP多线单IP技术实现形式以及其他双线对比 2
http://joenaqq.blog.163.com/blog/static/1211639382009615187684 自从电信与网通分离之后,北方网通与南方电信网络的互联瓶颈问题一直没有得到很好的解决,这个问题也严重困扰广大的ICP服务商。ICP也只能根据自己网 站主流用户群是在南方还是在北方,服务重点是在南方还是北方而进行取舍,如果用户多是南方选取电信网络,如果用户多为北方则选用网通网...原创 2016-04-27 16:17:05 · 471 阅读 · 0 评论 -
深入解读ESB与SOA的关系
时至今日,SOA的概念渐渐清晰了。 有关ESB的概念,已经吵了好多年了,还是没有定论。我个人认为,ESB本来就是抽象的概念,而且内涵丰富,在不同的场合含义不同。因此应该从不同的角度来认识。 一、SOA和ESB一直是没有明确概念的两个缩略词 原因是这两个词包含的内涵太丰富了,无法用一两句话说清楚,并且,这个词在不同的地方含义也有所不同。SOA----面向服务架构,...原创 2016-04-28 10:01:38 · 138 阅读 · 0 评论 -
微服务(Microservice)那点事
http://www.tuicool.com/articles/JjumUfzhttps://yq.aliyun.com/articles/2764http://www.infoq.com/cn/articles/boot-microservices/原创 2016-04-30 17:30:55 · 174 阅读 · 0 评论 -
Hydra 分布式跟踪系
京东开源的基于Dubbo的调用跟踪系统类似于Google的Dapper、类似于twitter的Zipkin、类似于淘宝的EagleEye。 https://github.com/Findwise/Hydrahttps://github.com/dschulten/hydra-javahttp://www.oschina.net/p/jd-hydra https...原创 2016-05-01 00:09:44 · 239 阅读 · 0 评论 -
Dapper,大规模分布式系统的跟踪系统
转载:http://bigbully.github.io/Dapper-translation/附件有 鹰眼下的淘宝-分布式调用跟踪系统介绍.pdf附件有 Dapper__a_Large-Scale_Distributed_Systems_Tracing_Infrastructure.pdf 作者:Benjamin H. Sigelman, Luiz Andr´e Barros...原创 2016-05-01 00:34:32 · 154 阅读 · 0 评论 -
分布式跟踪系统调研
分布式跟踪系统调研介绍把分布式系统中各个组件的工作汇总起来,就可以得到一个全面的跟踪系统。每个公司都会有一套自己的分布式跟踪系统。Google的Dapper,Twitter的zipkin,淘宝的鹰眼,新浪的Watchman,京东的Hydra,唯品会的Microscope,窝窝网的Tracing。重要的基础设施。应用场景一次竞价请求中要经历哪些事情?广告位查不到会怎么样?c...原创 2016-05-01 00:35:57 · 161 阅读 · 0 评论 -
浅析淘宝分布式调用跟踪系统
分布式系统为什么需要分布式跟踪?电商平台由数以百计的分布式服务构成,每一个请求路由过来后,会经过多个业务系统并留下足迹,并产生对各种Cache或DB的访问,但是这些分散的数据对于问题排查,或是流程优化都帮助有限。对于这么一个跨进程/跨线程的场景,汇总收集并分析海量日志就显得尤为重要。要能做到追踪每个请求的完整调用链路,收集调用链路上每个服务的性能数据,计算性能数据和比对性能指标(SLA)...原创 2016-05-01 00:37:57 · 284 阅读 · 0 评论 -
分布式系统日志跟踪
分布式系统为什么需要 Tracing? 先介绍一个概念:分布式跟踪,或分布式追踪。 电商平台由数以百计的分布式服务构成,每一个请求路由过来后,会经过多个业务系统并留下足迹,并产生对各种Cache或DB的访问,但是这些分散的数据对于问题排查,或是流程优化都帮助有限。对于这么一个跨进程/跨线程的场景,汇总收集并分析海量日志就显得尤为重要。要能做到追踪每个请求的完整调用链路,收集调用链路上...原创 2016-05-01 00:59:07 · 316 阅读 · 0 评论 -
ZooKeeper和Diamond有什么不同
本文主要是讨论下两个类似产品:ZooKeeper和Diamond在配置管理这个应用场景上的异同点。 Diamond,顾名思义,寄寓了开发人员对产品稳定性的厚望,希望它像钻石一样,提供稳定的配置访问。Diamond是淘宝网Java中间件团队的核心 产品之一,服务于集团线上很多核心应用。目前已经开源,开源地址在:http://code.taobao.org/p/diamond/wiki /in...原创 2016-05-03 10:17:29 · 111 阅读 · 0 评论 -
资源管理框架(mesos/YARN/coraca/Torca/Omega)选型分析
1 资源调度的目标和价值1.1 子系统高效调度任务之间资源隔离,减少争抢。 任务分配调度时结合资源分配,各个任务分配合理的资源,充分利用系统资源,减少资源利用不充分的问题。 资源调度结合优先级,优先级高的分配更多的资源。1.2 提高全系统的资源利用率各个子系统,存在不同时期,对资源需求不一样的情况,平滑系统资源的利用。1.3 支持动态调整切分资源,增强系统扩展性。系...原创 2016-05-05 10:00:33 · 189 阅读 · 0 评论 -
浅谈Borg/YARN/Mesos/Torca/Corona一类系统
Borg(来自Google),YARN(来自Apache,属于Hadoop下面的一个分支,开源),Mesos(来自Twitter,开源),Torca(来自腾讯搜搜),Corona(来自Facebook,开源)一类系统被称为资源统一管理系统或者资源统一调度系统,它们是大数据时代的必然产物。概括起来,这类系统设计动机是解决以下两类问题: (1) 提高集群资源利用率在大数据时代,为了存储...原创 2016-05-05 10:01:04 · 136 阅读 · 0 评论 -
disconf 分布式配置
摘要为了更好的解决分布式环境下多台服务实例的配置统一管理问题,本文提出了一套完整的分布式配置管理解决方案(简称为disconf[4],下同)。首先,实现了同构系统的配置发布统一化,提供了配置服务server,该服务可以对配置进行持久化管理并对外提供restful接口,在此基础上,基于zookeeper实现对配置更改的实时推送,并且,提供了稳定有效的容灾方案,以及用户体验良好的编程模型和WE...原创 2016-05-08 08:55:36 · 177 阅读 · 0 评论 -
配置管理服务diamond和disconf横向对比
Diamond则是淘宝开源的一种分布式配置管理服务的实现disconf是来自百度的分布式配置管理平台,包括百度、滴滴出行、银联、网易、拉勾网、苏宁易购、顺丰科技 等知名互联网公司正在使用!对比项目diamonddisconf配置存储存储在mysql上存储在mysql上推拉模型拉模型,每隔15s拉一次全量数据基于Zookeeper的...原创 2016-05-08 08:55:59 · 215 阅读 · 0 评论 -
在YARN上运行ElasticSearch
这么做的目的,主要是为了统一资源管理(cpu和内存)。一体化平台,spark,es ,mr等都在一起跑的时候,做好资源的调度。 在故事开始之前,先去把插件下载了。 插件地址 安装主要参考了官方文档 [root@master nq]# hadoop jar elasticsearch-yarn-2.1.0.BUILD-SNAPSHOT.jarNo comman...原创 2016-05-08 08:58:05 · 171 阅读 · 0 评论 -
基于Github搭建Maven仓库的方法
Maven 是一个项目管理和构建自动化工具, Maven仓库 是用于存放不同编译的artifacts和dependencies(依赖)的模块集合。严格而言,主要有两类仓库: local(本地) 和 remote(远端) 。本地仓库存放本地安装的来自远端仓库的模块,可看作远端模块在本地的一份缓存,同时也包含本地编译尚未发布的模块。远端仓库指任何类型的仓库,能够通过许多不同的协议访问,如file...原创 2016-05-08 16:50:12 · 159 阅读 · 0 评论 -
使用Nginx抵御DDOS攻击
DDOS是一种通过大流量的请求对目标进行轰炸式访问,导致提供服务的服务器资源耗尽进而无法继续提供服务的攻击手段。 一般情况下,攻击者通过大量请求与连接使服务器处于饱和状态,以至于无法接受新的请求或变得很慢。 应用层DDOS攻击的特征 应 用层(七层/HTTP层)DDOS攻击通常由木马程序发起,其可以通过设计更好的利用目标系统的脆弱点。例如,对于无法处理大量并发请求的系统...原创 2016-05-12 10:03:04 · 148 阅读 · 0 评论 -
高性能Tomcat:漫谈行走在sendfile之上的Tomcat
Tomcat常用的三种IO模式提起高性能JAVA IO大家一定会想到NIO,AIO等等,然而我们的Tomcat是java写的一个优秀的开源的web服务,它与NIO有什么关系呢?我们的tomcat应用是不是早就跑在nio之上了呢?答案是Tomcat是支持NIO的,到Tomcat7为止,默认的Tomcat包里面的配置并没有开启NIO连接器。下面我先简单介绍一下Tomcat的三种IO策略:BI...原创 2016-05-15 21:36:37 · 336 阅读 · 0 评论 -
长轮询解决方案
长轮询解决方案作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs长轮询适合浏览器的Chat聊天、股票行情显示、股票状态更新、体育直播的结果显示等。当然,不是所有的例子都是对延迟很敏感的,但它们的需求都比较相似。在标准的HTTP请求响应语义中,浏览器发起请求,服务器发送一个响应,这意味着在浏览器发起新请求前,服务器不能发送新信息给客户端...原创 2016-05-16 23:46:08 · 147 阅读 · 0 评论 -
如何实现XA式、非XA式Spring分布式事务
Spring应用的几种事务处理机制 Java Transaction API和XA协议是Spring常用的分布式事务机制,不过你可以选择选择其他的实现方式。理想的实现取决于你的应用程序使用何种资源,你愿意在性能、安 全、系统稳健性、数据完整方面做出何种权衡。在这次JavaWorld大会上,来自SpringSource的David Syer跟大家分享了Spring应用的几种事务处理机制、三...原创 2016-05-17 17:33:41 · 153 阅读 · 0 评论 -
http和socket之长连接和短连接区别
TCP/IP TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。 在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。 在传输层中有TCP协议与UDP协议。 在应用层有:TCP包括FTP、HTTP、TELNET、SMTP等协议 UDP包括DNS、TFTP等协议 短连接 连接->传输数据->关闭连接 HTTP是无状...原创 2016-05-22 09:10:11 · 100 阅读 · 0 评论 -
HTTP长连接与短连接
1. HTTP协议与TCP/IP协议的关系HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠的传递数据包,使在网络上的另一端收到发端发出的所有包,并且顺序与发出顺序一致。TCP有可靠,面向连接的特点。 2. 如何理解HTTP协议是无状态的...原创 2016-05-22 09:11:21 · 101 阅读 · 0 评论 -
使用Hystrix提高系统可用性
(图片来源:https://github.com/Netflix/Hystrix/wiki)然而任何一个服务的可用性都不是 100% 的,网络亦是脆弱的。当我依赖的某个服务不可用的时候,我自身是否会被拖死?当网络不稳定的时候,我自身是否会被拖死?这些在单机环境下不太需要考虑的问 题,在分布式环境下就不得不考虑了。假设我有5个依赖的服务,他们的可用性都是99.95%,即一年不可用时间约为4...原创 2016-05-27 18:17:02 · 120 阅读 · 0 评论 -
分布式服务注册和发现consul 简要介绍
Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案,Consul的方案更"一站式",内置了服务注册与发现框 架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,不再需要依赖其他工具(比如ZooKeeper等)。使用起来也较 为简单。Consul用Golang实现,因此具有天然可移植性(支持Linux、wi...原创 2016-05-27 22:22:20 · 213 阅读 · 0 评论 -
服务发现:Zookeeper vs etcd vs Consul
如果使用预定义的端口,服务越多,发生冲突的可能性越大,毕竟,不可能有两个服务监听同一个端口。管理一个拥挤的比方说被几百个服务所使用的所有端口的列表,本身就是一个挑战,添加到该列表后,这些服务需要的数据库和数量会日益增多。因此我们应该部署无需指定端口的服务,并且让Docker为我们分配一个随机的端口。唯一的问题是我们需要发现端口号,并且让别人知道。当我们开始在一个分布式系统上部署服务到其中...原创 2016-05-27 22:23:27 · 117 阅读 · 0 评论 -
haproxy 配置说明
看一下我们haproxy的一段配置文件:#???????????????????????# Global settings#???????????????????????global# to have these messages end up in /var/log/haproxy.log you will# need to:## 1) configu...原创 2016-06-02 10:42:34 · 96 阅读 · 0 评论 -
京东基于Spark的风控系统架构实践和技术细节
1.背景互联网的迅速发展,为电子商务兴起提供了肥沃的土壤。2014年,中国电子商务市场交易规模达到13.4万亿元,同比增长31.4%。其中,B2B电子商务市场交易额达到10万亿元,同比增长21.9%。这一连串高速增长的数字背后,不法分子对互联网资产的觊觎,针对电商行业的恶意行为也愈演愈烈,这其中,最典型的就是黄牛抢单囤货和商家恶意刷单。黄牛囤货让广大正常用户失去了商家给予的优惠让利;而商家的...原创 2016-06-02 13:56:15 · 990 阅读 · 0 评论 -
[译]微服务架构(Microservices Architecture)
This a translation of an article ( http://microservices.io/patterns/microservices.html) originally written and copyrighted by Chris Richardson ( http://twitter.com/crichardson).模式:微服务架构背...原创 2016-06-12 10:18:46 · 221 阅读 · 0 评论 -
微服务(Microservice)架构快速指南
1. 什么是软件架构? 软件架构是一个包含各种组织的系统组织,这些组件包括 Web服务器, 应用服务器, 数据库,存储, 通讯层), 它们彼此或和环境存在关系。2.什么是微服务架构? 微服务是指开发一个单个 小型的但有业务功能的服务,每个服务都有自己的处理和轻量通讯机制,可以部署在单个或多个服务器上。 微服务也指一种种松耦合的、有一定的有界上下文的面向服务架构。也就...原创 2016-06-12 10:20:06 · 236 阅读 · 0 评论 -
Netflix 的开源文化与技术
在之前的新闻《Netflix企业文化与架构设计》一文中我们介绍了Netflix高扩展的企业文化与架构,而作为一家在线影片租赁提供商 Netflix之所以能够在如此大量的用户、海量的数据、复杂的拓扑结构下取得成功,离不开其背后的开源文化与技术。Netflix利用开源或者自己开发 的技术,让公司能够在分布于全世界50多个国家的服务器上进行持续地构建和集成;能够对用户所产生的海量行为数据进行分析挖掘从...原创 2016-06-12 10:22:04 · 174 阅读 · 0 评论 -
Netflix架构
视频巨头NetFlix云存储使用亚马逊的公有云,两者形成公有云生态环节,互相促进,亚马逊将在Netflix成功方案推广给其他客户服务,Netflix则通过每晚占据全美60%网络下载量的巨大流量检验亚马逊云平台。Netflix几个功能块分发 CDN 存储 包括内存存储和磁盘存储 消息 效率协调。 计算 包括同步计算和异步并发计算 支付 各种支付接口 分析 数据挖掘分析...原创 2016-06-12 10:23:20 · 314 阅读 · 0 评论 -
分布式服务的Trace——Google Dapper & Twitter Zipkin
对于分布式在线服务,一个请求需要经过系统中多个模块,上百台机器的协作完成单次请求,典型场景就是Search Engine的一次用户检索,单靠人力无法掌握整个请求中各个阶段的性能开销,更无法快速的定位系统中性能瓶颈。Google Dapper文章描述了广泛用于Google内部服务的Trace Infrastruce—Dapper(原文地址见 这里, 译文地址见 这里 ),文章本身的很易懂...原创 2016-06-13 00:38:15 · 123 阅读 · 0 评论