架构与分布式系统
文章平均质量分 60
大树叶
宠辱不惊,看庭前花开花落;去留无意,望天空云卷云舒。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
电商系统如何防止超卖
电商系统的超卖原创 2023-03-08 22:15:14 · 284 阅读 · 0 评论 -
K8S + ISTIO 金丝雀部署的例子
k8s istio 金丝雀 实战原创 2023-03-07 21:34:28 · 999 阅读 · 0 评论 -
关于抽奖概率
关于抽奖概率最近做一个抽奖系统,对现在已经有的抽奖系统关于概率的这个东西进行了一些了解。于是想想针对这样的一些抽奖概率作为一些说明:首先我们来说说比较常见的随机概率:这就好像我们说的,我有一百个乒乓,其中一个是红色。然后把这些放到一个盒子里面,然后你在进行摸。当你摸完一次以后,在把你摸到的乒乓放回到盒子里面,在进行摸。这些,你每次摸中红色球的概率都是1/100。于是这样就产生的一个转载 2017-08-19 18:05:53 · 7675 阅读 · 0 评论 -
新浪微博架构
1 概述首先给大家介绍一下新浪微博架构发展的历程,新浪微博在短短一年时间内从零发展到五千万用户,我们的基层架构也发展了3个大的版本。 2 架构演变2.1 第一版LAMP架构第 一版就 LAMP架构,优点是可以非常快的实现我们的系统。我们看一下技术特点,微博这个产品从架构上来分析,它需要解决的是发表和订阅的问题。我们转载 2017-06-19 00:39:24 · 2951 阅读 · 0 评论 -
常见的MYSQL高可用解决方案
MySQL 是一种关系数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好转载 2017-07-27 02:23:19 · 2798 阅读 · 0 评论 -
推荐:MHA:MySQL高可用架构的利器
简介:MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件。在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在转载 2017-07-26 14:20:26 · 864 阅读 · 0 评论 -
Nginx + Tomcat 动静分离实现负载均衡
原文地址:http://www.cnblogs.com/wunaozai/p/5001742.html转载 2017-08-17 16:44:41 · 370 阅读 · 0 评论 -
分布式锁的三种实现方法
目前几乎所有的大型web应用全都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式应用中的CAP理论告诉我们:任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)、分区容错性(Partation tolerance)。最多只能同时满足其中两项。所以在设计之初,就需要对三者做出取舍。一般在互联网场景中,都会选...原创 2017-07-17 00:23:22 · 1046 阅读 · 0 评论 -
实现分布式锁:Redis SETNX 命令
使用Redis的 SETNX 命令可以实现分布式锁,下文介绍其实现方法。SETNX命令简介命令格式SETNX key value将 key 的值设为 value,当且仅当 key 不存在。 若给定的 key 已经存在,则 SETNX 不做任何动作。 SETNX 是SET if Not eXists的简写。返回值返回整数,具体为 - 1,当 key 的值被设置 -...原创 2017-07-17 00:16:52 · 931 阅读 · 0 评论 -
电子商务网站中订单号设计有什么规则和依
原文地址总结:设计编码的规则如下:下单渠道1位+支付渠道1位+业务类型1位+时间信息4位+下单时间的Unix时间戳后8位(加上随机码随机后的数字)+用户user id后4位。然后你会说,这样算下来就订单号就19位了啊,一点都不精简啊,不好记不好念不好输的。但我说的上面的这些业务标记,你不一定要全部加上啊。这里“”Unix时间戳后8位(加上随机码随机后的数转载 2017-07-05 23:11:37 · 1405 阅读 · 0 评论 -
Quartz集群原理及配置应用
1、Quartz任务调度的基本实现原理 Quartz是OpenSymphony开源组织在任务调度领域的一个开源项目,完全基于Java实现。作为一个优秀的开源调度框架,Quartz具有以下特点: (1)强大的调度功能,例如支持丰富多样的调度方法,可以满足各种常规及特殊需求; (2)灵活的应用方式,例如支持任务和调度的多种组合方式,支持调度数据的多种存储方式;转载 2017-06-11 14:11:10 · 494 阅读 · 0 评论 -
分布式任务系统 tbschedule
分布式任务系统:比较有名的是 Quartz集群版(Spring 带的),tbschedule(阿里开源),elastic-job(当当开源)。tbschedule 地址:http://code.taobao.org/p/tbschedule/wiki/index/原创 2017-06-11 12:59:51 · 1118 阅读 · 0 评论 -
Java 演示:如何使用Zookeeper 集群例子
概述Zookeeper是Apache下的项目之一,倾向于对大型应用的协同维护管理工作。IBM则给出了IBM对ZooKeeper的认知: Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。总之,可以用“协调”这个核心的词来形容它的作用。关于转载 2017-06-04 15:09:46 · 6116 阅读 · 2 评论 -
Zookeeper原理架构
Zookeeper到底是什么!?学一个东西,不搞明白他是什么东西,哪还有心情学啊!! 首先,Zookeeper是Apache的一个Java项目,属于Hadoop系统,扮演管理员的角色。 然后看到官网那些专有名词,实在理解不了。在Zookeeper的官网上有这么一句话:ZooKeeper is a centralized service for maintaining confi转载 2017-06-04 14:30:29 · 803 阅读 · 0 评论 -
分布式调度框架TBSchedule 分布式架构
TBSchedule是一款非常优秀的高性能分布式调度框架,在本人的实际项目中也用到并改进了该代码,效果还不错。下面整理了一篇不错的介绍该框架不错的文章。转文开始:本文是作者结合多年使用TBSchedule的经验,在研读三遍源码的基础上完成。期间作者也与阿里空玄有过不少技术交流,并非常感谢空玄给予的大力支持。另外,作者写这篇文章的目的一是出于对TBSchedule的一种热爱,转载 2017-06-04 12:28:04 · 1897 阅读 · 0 评论 -
Tomcat + Nginx + 主从 memcached + keepalived 实现高可靠的web 服务
下面我将和大家分享一下: Tomcat的安装+配置memcached+NGINX+ repcache + keepalive。注意: 通过 repcache + keepalived,可以让两个memcache server running on Linux 实现 master / slave 功能。 1) repcache可以使者两个memcache自己自动同步数据,一旦ma原创 2016-05-04 16:03:43 · 1785 阅读 · 0 评论 -
分布式Quorum机制,NWR策略读写模型
分布式系统中的读写模型 分布式系统是由多个节点(指代一台服务器、存储设备等)构成,由于网络异常、宕机等节点并不能保证正常工作,特别是在节点数量很大的时候,出现异常状况的节点几乎是肯定的。为了保证系统的正常运行,能够提供可靠的服务,分布式系统中对于数据的存储采用多份数据副本(注:这里的副本并非只用来备份,它可参与提供系统服务)来保证可靠性,也就是其中一个节点上读取数据失败了那么可以转向另外转载 2017-08-07 09:49:51 · 4170 阅读 · 0 评论 -
Eureka的高可用实战:服务提供者、服务消费者集群之间的调用方式
Eureka的高可用以及服务提供者、服务消费者集群之间的调用方式1.为什么要进行Eureka的集群2.搭建eureka集群3.服务提供者注册到高可用eureka上4.服务提供者集群状态5.服务消费者消费6.综上上文我们讲了服务提供者和服务消费者在eureka上进行服务注册和服务之间进行调用,这节来讲eureka的集群模式和服务转载 2017-09-14 20:52:38 · 1461 阅读 · 0 评论 -
23种设计模式全解析
一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式转载 2017-08-23 16:21:31 · 562 阅读 · 0 评论 -
如何将本地代码上传至git仓库
首先我们在需要提交仓库或者下载代码的地方打开git bash命令,按照以下步骤依次进行git initgit remote add origin 仓库名git pull origin mastergit branch 自己新创建的分支名git checkout 自己新创建的分支名git add '文件夹或者文件名'git commit -a转载 2017-09-15 20:34:17 · 837 阅读 · 0 评论 -
如何正确理解CAP理论?
原文:http://www.jdon.com/bigdata/how-to-understand-cap.html 在大数据领域,被业界广泛谈及的CAP理论存在着一些关键性的认知误区,而只有全面地考察与分析分布式环境中的各种场景,我们才能真正正确地理解它。 目前,CAP(Consistency一致性、Availability可用性、Partition-toleranc转载 2017-10-29 23:45:47 · 426 阅读 · 0 评论 -
推荐 kafka 简介、使用场景、设计原理、主要配置及集群搭建
问题导读:1.zookeeper在kafka的作用是什么?2.kafka中几乎不允许对消息进行“随机读写”的原因是什么?3.kafka集群consumer和producer状态信息是如何保存的?4.partitions设计的目的的根本原因是什么? 一、入门 1、简介 Kafka is a distr转载 2017-06-04 20:22:34 · 619 阅读 · 0 评论 -
spark与storm的对比
spark与storm的对比对比点StormSpark Streaming实时计算模型纯实时,来一条数据,处理一条数据准实时,对一个时间段内的数据收集起来,作为一个RDD,再处理实时计算延迟度毫秒级秒级吞吐量低转载 2017-11-16 16:17:18 · 944 阅读 · 0 评论 -
推荐:分布式理论系列
从ACID到CAP到BASE2PC到3PC到Paxos到Raft到ISR复制、分片和路由副本更新策略负载均衡算法及手段RWN及Quorum与强一致性序本文主要讲述分布式系统开发的一些相关理论基础。一、ACID事务的四个特征:1、Atomic原子性事务必须是一个原子的操作序列单元,事务中包含的各项操作在一次执行过程中,要么全部执行成功,要么全部不执行,任何一项失败,整个事务回滚,只有全部都执行成功,...转载 2018-02-10 12:35:57 · 1485 阅读 · 0 评论 -
推荐:分布式系统理论基础 - CAP
引言CAP是分布式系统、特别是分布式存储领域中被讨论最多的理论,“什么是CAP定理?”在Quora 分布式系统分类下排名 FAQ 的 No.1。CAP在程序员中也有较广的普及,它不仅仅是“C、A、P不能同时满足,最多只能3选2”,以下尝试综合各方观点,从发展历史、工程实践等角度讲述CAP理论。希望大家透过本文对CAP理论有更多地了解和认识。CAP定理CAP由Eric Brewer在20...转载 2018-02-09 23:29:28 · 475 阅读 · 0 评论 -
K8s + Istio 安装和配置例子: Bookinfo
说明:本文的K8S的版本是 v1.8.2, ISTIO v0.2.12。 服务网格简介服务网格(Service Mesh)是为解决微服务的通信和治理而出现的一种架构模式。服务网格将服务间通讯以及与此相关的管理控制功能从业务程序中下移到一个基础设施层,从而彻底隔离了业务逻辑和服务通讯两个关注点。采用服务网格后,应用开发者只需要关注并实现应用业务逻辑。服务之间的通信,包括服务发现,通讯...原创 2018-10-25 16:52:17 · 18067 阅读 · 0 评论 -
推荐:百亿级微信红包的高并发资金交易系统设计方案
2017年1月28日,正月初一,微信公布了用户在除夕当天收发微信红包的数量——142亿个,而其收发峰值也已达到76万每秒。百亿级别的红包,如何保障并发性能与资金安全?这给微信带来了超级挑战。面对挑战,微信红包在分析了业界“秒杀”系统解决方案的基础上,采用了SET化、请求排队串行化、双维度分库表等设计,形成了独特的高并发、资金安全系统解决方案。实践证明,该方案表现稳定,且实现了除夕夜系统零故障运行。...转载 2018-03-20 23:38:02 · 1953 阅读 · 0 评论 -
推荐:微信红包的架构设计简介
概况:2014年微信红包使用数据库硬抗整个流量,2015年使用cache抗流量。微信的金额什么时候算? 答:微信金额是拆的时候实时算出来,不是预先分配的,采用的是纯内存计算,不需要预算空间存储。。 采取实时计算金额的考虑:预算需要占存储,实时效率很高,预算才效率低。实时性:为什么明明抢到红包,点开后发现没有? 答:2014年的红包一点开就知道金额,分两次操作,先抢到金额,然后再转账。 2015年的...转载 2018-03-20 23:40:45 · 1575 阅读 · 0 评论 -
推荐:新浪微博,腾讯微博 mysql数据库主表设计
用户信息表(t_user_info)字段名称字节数类型描述User_id4uint32用户编号(主键)User_name20Char[20]名称Msg_count4uint32发布消息数量,可以作为t_msg_info水平切分新表的auto_incrementFans_count4uint32粉丝数量Follow_count4Uint32关注对象数量备注:以User_id取模分表 用户之间关系表(...转载 2018-04-01 17:08:37 · 3825 阅读 · 1 评论 -
关于缓存穿透、缓存并发、热点缓存的讨论
我们在用缓存的时候,不管是Redis或者Memcached,基本上会通用遇到以下三个问题:缓存穿透 缓存雪崩 缓存失效下面的文章就专门来讲这些技术(个人mark一下)http://blog.didispace.com/chengchao-huancun-zuijiazhaoshi/https://blog.youkuaiyun.com/Mr_Yanghao/article/details/7...转载 2019-01-08 23:40:13 · 246 阅读 · 0 评论 -
主从 mysql (master slave) 复制原理及配置
1 复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础。将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的。复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服转载 2016-03-29 23:48:46 · 2196 阅读 · 0 评论 -
架构以及我理解中架构的本质
在开始谈我对架构本质的理解之前,先谈谈对今天技术沙龙主题的个人见解,千万级规模的网站感觉数量级是非常大的,对这个数量级我们战略上 要重 视 它 , 战术上又 要 藐 视 它。先举个例子感受一下千万级到底是什么数量级?现在很流行的优步(Uber),从媒体公布的信息看,它每天接单量平均在百万左右, 假如每天有10个小时的服务时间,平均QPS只有30左右。对于一个后台服务器,单机的平均QPS可以到达转载 2016-03-29 14:44:15 · 2212 阅读 · 0 评论 -
CSS、JS 放置位置与前端性能的关系?
Q: 问这个问题之前,我先说一下浏览器的解析方式,浏览器解析html页面首先浏览器先下载html,然后在内存中把html代码转化成Dom Tree,然后浏览器根据Dom Tree上的Node分析css和Images,当文档下载遇到js时,js独立下载。那为什么还要将引用的外部js放在下面,外部css放在上面?(浏览器会有自己的解析顺序)仅仅是一种良好的编码习惯吗?还是的确会对性能有好处转载 2016-03-29 15:12:58 · 4755 阅读 · 0 评论 -
JS 和 CSS 的位置对其他资源加载顺序的影响
https://lifesinger.wordpress.com/2012/02/03/performance-impact-of-js-css-loading-order/克军做了一系列测试:js和css的顺序关系,给出了现象和结论,但未给出原因。JS 和 CSS 在页面中的位置,会影响其他资源(指 img 等非 js 和 css 资源)的加载顺序,究其原因,有三个值得注意的转载 2016-03-29 15:31:42 · 541 阅读 · 0 评论 -
HTML压缩(JSP的GZIP实现)
背景: HTTP 压缩可以大大提高浏览网站的速度,它的原理是,在客户端请求网页后,从服务器端将网页文件压缩,再下载到客户端,由客户端的浏览器负责解压缩并浏览。相对 于普通的浏览过程HTML ,CSS,Javascript , Text ,它可以节省40%左右的流量。更为重要的是,它可以对动态生成的,包括CGI、PHP , JSP , ASP , Servlet,SHTML等输出的网页也能进转载 2016-03-29 16:05:32 · 2800 阅读 · 0 评论 -
高性能web系统的架构和系统优化
软件公司需求相对稳定,能够按照计划按部就班的去实施,互联网公司需求相对来说不稳定,上线比较着急,大部分都是小迭代更新,且更新频繁,感觉有点乱。所以项目管理在软件公司比较好执行,一开始可能有点混乱,但是只要是走上一两个迭代,就可以稳定的往前走,在互联网公司应用比较困难。美其名曰敏捷开发,就是为了给自己找一个不稳定的借口。 目前的公司是一家电商公司,在互联网如火如荼的双11也能体验一把转载 2016-03-18 00:53:41 · 1623 阅读 · 0 评论 -
LVS 三种负载均衡方式比较
1、什么是LVS? 首先简单介绍一下LVS (Linux Virtual Server)到底是什么东西,其实它是一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服转载 2016-03-29 23:36:11 · 590 阅读 · 0 评论 -
数据库分片技术
假如您有一个应用程序,随着业务越来越有起色,系统所牵涉到的数据量也就越来越大,此时您要涉及到对系统进行伸缩(Scale)的问题了。一种典型的扩展方法叫做“向上伸缩(Scale Up)”,它的意思是通过使用更好的硬件来提高系统的性能参数。而另一种方法则叫做“向外伸缩(Scale Out)”,它是指通过增加额外的硬件(如服务器)来达到相同的效果。从“硬件成本”还是“系统极限”的角度来说,“向外伸缩”一转载 2016-03-30 02:30:04 · 1373 阅读 · 0 评论 -
Spring 框架的设计理念与设计模式分析
这是一篇不错的文章,值得看看,点击下面的连接即可Spring 框架的设计理念与设计模式分析转载 2016-04-01 17:16:27 · 756 阅读 · 0 评论 -
利用 Nginx session sticky功能实现NGINX + TOMCAT集群技术
cookie是怎样工作的? 例如,我们创建了一个名字为login的Cookie来包含访问者的信息,创建Cookie时,服务器端的Header如下面所示,这里假设访问者的注册名是“Michael Jordan”,同时还对所创建的Cookie的属性如path、domain、expires等进行了指定。 Set-Cookie:login=Michael Jordan;path=/;domai转载 2016-04-02 02:13:42 · 9640 阅读 · 0 评论
分享