架构
taoy86
这个作者很懒,什么都没留下…
展开
-
高可用性及容灾的几个衡量指标
网站可用性所谓网站可用性(availability)也即网站正常运行时间的百分比,业界用 N 个9 来量化可用性, 最常说的就是类似 “4个9(也就是99.99%)” 的可用性。描述 通俗叫法 可用性级别 年度停机时间 基本可用性 2个9 99% 87.6小时 较高可用性 3个9 99.9% 8.8小时 具有故障自动恢复能力的可用性 4个9 99.99% 53分钟 极高可用性 5个9 99.999%转载 2020-09-30 01:08:05 · 2909 阅读 · 0 评论 -
Zookeeper的写和读数据流程(图文讲解)
首先回顾一下Zookeeper中Leader和Follower的作用:Leader:负责进行投票的发起和决议,分布式读写,更新请求转发;Follower:负责接收客户端请求并向客户端返回结果,在选举Leader过程中参与投票(选举机制);一、写数据流程以3台服务器的Zookeeper集群为例,一个Leader,两个Follower即server1和server2(1)Client向Zookeeper的server1发送一个写请求,客户端写数据到服务器1上;(2)如果serve..转载 2020-08-25 12:12:48 · 986 阅读 · 1 评论 -
Redis分布式锁的正确实现方式
转自 https://www.cnblogs.com/linjiqin/p/8003838.html前言分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客...转载 2018-10-23 10:38:13 · 134 阅读 · 0 评论 -
Java实现简单的RPC框架
一、RPC简介RPC,全称为Remote Procedure Call,即远程过程调用,它是一个计算机通信协议。它允许像调用本地服务一样调用远程服务。它可以有不同的实现方式。如RMI(远程方法调用)、Hessian、Http invoker等。另外,RPC是与语言无关的。 RPC示意图如上图所示,假设Computer1在调用sayHi()方法,对于Computer1而言调...转载 2018-11-01 00:35:54 · 162 阅读 · 0 评论 -
Reactor和Proactor对比以及优缺点(netty的底层原理reactor模型)
转自:https://blog.csdn.net/wanbf123/article/details/78062802 IO设计模式:Reactor和Proactor 平时接触的开源产品如Redis、ACE,事件模型都使用的Reactor模式;而同样做事件处理的Proactor,由于操作系统的原因,相关的开源产品也少;这里学习下其模型结构,重点对比下两者的异同点;反应器ReactorRe...转载 2018-11-01 15:28:04 · 380 阅读 · 0 评论 -
Nginx+Keepalived高可用集群
1.Keepalived高可用软件 Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,keepalived除了能够管理LVS软件外,还可以作为其他服务的高可用解决方案软件。 keepalived软件主要是通过VRRP协议实现高可用功能的。VRRP是Virtual Rou...转载 2018-11-12 14:05:01 · 159 阅读 · 0 评论 -
Rocketmq原理&最佳实践
一、 MQ背景&选型消息队列作为高并发系统的核心组件之一,能够帮助业务系统结构提升开发效率和系统稳定性。主要具有以下优势:削峰填谷(主要解决瞬时写压力大于应用服务能力导致消息丢失、系统崩溃等问题) 系统解耦(解决不同重要程度、不同能力级别系统之间依赖导致一死全死) 提升性能(当存在一对多调用时,可以发一条消息给消息系统,让消息系统通知相关系统) 蓄流压测(线上有些链路不好压测...转载 2018-11-22 02:01:51 · 663 阅读 · 0 评论 -
使用import scope解决maven继承(单)问题
转:原文:https://blog.csdn.net/mn960mn/article/details/50894022 想必大家在做SpringBoot应用的时候,都会有如下代码:<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-bo...转载 2019-01-18 14:10:57 · 135 阅读 · 0 评论 -
Http_load测试说明
http_load:以并行复用的方式运行,用以测试webx服务器的吞吐量与负载。但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把客户机高斯,还可以测试https类的网站请求。http_load用法:usage: ./http_load [-checksum] [-throttle] [-proxy host:port] [-verbose] [-timeout secs] [...转载 2018-06-01 14:55:35 · 577 阅读 · 0 评论 -
记一次压力测试和对nginx/tomcat配置的调整
一个web系统,前端使用nginx做为反向代理,处理https,并将请求转发给后端的tomcat服务。 压力测试工具选择了jmeter。 首先简单介绍一下jmeter。 它是apache的一个开源项目,基于java swing开发的GUI界面。 jmeter提供了许多高级的功能,但我们仅仅使用了jmeter最简单的功能。在简单的jmeter使用中,我们涉及到这么几个概念:测试计划,线程组,测试任务...转载 2018-06-07 20:27:45 · 381 阅读 · 0 评论 -
架构设计:系统存储 ——Redis集群方案:高可用
版权声明:欢迎转载,但是看在我辛勤劳动的份上,请注明来源:http://blog.csdn.net/yinwenjie(未经允许严禁用于商业用途!) https://blog.csdn.net/yinwenjie/article/details/536722321、概述从本篇文章开始,我们将向读者介绍几种Redis的高可用高负载集群方案。除了介绍Redis 3.X版本中推荐的原生集群方案外,还会介...转载 2018-04-11 01:15:30 · 1225 阅读 · 0 评论 -
从源头入手,一分钟秒懂为什么要搞微服务架构?
这个图本身的内容、关于各个架构的描述、优缺点等等,网上简单搜索一下有大把大把的。软件发展的不同时期、阶段,对技术的理解、选择和应用都有着不一样的诉求。架构的选型,永远只有“合适与不合适”,永远没有“哪个更好”的说法。我们今天来谈论微服务,并不是因为它更牛,而是经过谨慎分析,认为微服务的思想更符合我们的目标。提到微服务,就没法不提到这位“大神”——马丁·福勒,他没有直接给微服务下一个精准的定义,而是...转载 2018-05-03 20:21:16 · 282 阅读 · 0 评论 -
CPU 硬盘性能到底相差多少
CPU 硬盘性能到底相差多少本文以一个现代的、实际的个人电脑为对象,分析其中CPU(Intel Core 2 Duo 3.0GHz)以及各类子系统的运行速度——延迟和数据吞吐量。通过粗略的估算PC各个组件的相对运行速度,希望能给大家留下一个比较直观的印象。本文中的数据来自实际应用,而非理论最大值。时间的单位是纳秒(ns,十亿分之一秒),毫秒(ms,千分之一秒),和秒(s)。吞吐量的单位是兆字节(M...转载 2018-05-07 17:41:41 · 604 阅读 · 0 评论 -
究竟啥才是互联网架构中的高并发!
作者:58沈剑出处:微信公众号--架构师之路一、什么是高并发高并发是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。高并发相关常用的一些指标有响应时间、吞吐量、每秒查询率QPS、并发用户数等。响应时间:系统对请求做出响应的时间。例如系统处理一个HTTP请求需要200ms,这个200ms就是系统的响应时间。吞吐量:单位时间内处理的请求数量。QPS:...转载 2018-05-25 17:21:44 · 348 阅读 · 0 评论 -
数据库水平扩展与垂直扩展
在互联网应用中。数据库经常是我们存储和訪问数据的经常使用介质。随着负载的增大,对数据库读写性能的要求往往成为非常大的挑战。在这种情况下我们能够考虑数据库相关的replication机制提高读写的性能。因为一般采用一写多读的replication机制(写master同步到多个slaves),导致这种机制往往会有缺陷。首先它依赖于读写的比例,假设写的操作过多,导致master往往成为性能的瓶颈所在,从...转载 2018-05-25 17:40:10 · 1375 阅读 · 0 评论 -
nginx优化——包括https、keepalive等
nginx优化——包括https、keepalive等一、nginx之tcp_nopush、tcp_nodelay、sendfile1、TCP_NODELAY你怎么可以强制 socket 在它的缓冲区里发送数据?一个解决方案是 TCP 堆栈的 TCP_NODELAY选项。这样就可以使缓冲区中的数据立即发送出去。Nginx的 TCP_NODELAY 选项使得在打开一个新的 socket 时增加了TC...转载 2018-06-05 13:12:06 · 165 阅读 · 0 评论 -
异地多活问题
1. 引言有幸参与了阿里游戏的一个高可用方案的设计,并且在网上发表了方案(面向业务的立体化高可用架构设计),后来参加GOPS全球运维大会深圳站,与众多行业高手交流,发现大家对“异地多活”这个方案设计非常感兴趣,毕竟“异地多活”的方案价值非常大,尤其是互联网行业,规模稍微大一点几乎都必须是标配;但同时大家都觉得“异地多活”的方案设计又很难,网络、数据、事务等各种问题混杂在一起,很多问题看似是无法解决...转载 2018-05-30 20:14:25 · 4001 阅读 · 0 评论 -
近千节点的Redis Cluster高可用集群案例:优酷蓝鲸优化实战
转自: http://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=2653547585&idx=1&sn=9a664b16f656f757632cd4eb29f9a5dc&scene=21#wechat_redirect在优酷,我们使用 Redis Cluster 构建了一套内存存储系统,项目代号为蓝鲸。蓝鲸的设计目标...转载 2018-03-31 14:12:39 · 231 阅读 · 0 评论