分布式架构相关
whnrll
只要你现在努力,就为时不晚!
展开
-
一致性Hash(Consistent Hashing)原理剖析
引入在业务开发中,我们常把数据持久化到数据库中。如果需要读取这些数据,除了直接从数据库中读取外,为了减轻数据库的访问压力以及提高访问速度,我们更多地引入缓存来对数据进行存取。读取数据的过程一般为:图1:加入缓存的数据读取过程对于分布式缓存,不同机器上存储不同对象的数据。为了实现这些缓存机器的负载均衡,可以使用式子1来定位对象缓存的存储机器:m = hash(o) mod n ...转载 2019-03-02 09:37:53 · 181 阅读 · 0 评论 -
互联网一致性架构实践
互联网一致性架构实践单机部署必然不会出现保证一致性的系统设计,一致意味着至少大于等于2台服务节点,才有必要考虑双机数据一致的问题。数据多种类型,如上提到的session数据、db集群数据、缓存与db的数据。从具体到抽象,先分别看看各种数据类型在保证一致性方面的经典方式,再通而总之,看看各数据保证一致性是否有通用的设计思路。Session一致性多个web服务,nginx请求分发默...转载 2019-03-12 12:36:04 · 203 阅读 · 0 评论 -
配置Nginx实现负载均衡
配置Nginx实现负载均衡 在关于高并发负载均衡一文中已经提到,企业在解决高并发问题时,一般有两个方向的处理策略,软件、硬件,硬件上添加负载均衡器分发大量请求,软件上可在高并发瓶颈处:数据库+web服务器两处添加解决方案,其中web服务器前面一层最常用的的添加负载方案就是使用nginx实现负载均衡。一、负载均衡的作用1、转发功能按照一定的算法【权重、轮询】,将客户端...转载 2019-03-16 14:25:23 · 329 阅读 · 0 评论 -
使用Nginx实现反向代理
使用Nginx实现反向代理一、代理服务器1、什么是代理服务器代理服务器,客户机在发送请求时,不会直接发送给目的主机,而是先发送给代理服务器,代理服务接受客户机请求之后,再向主机发出,并接收目的主机返回的数据,存放在代理服务器的硬盘中,再发送给客户机。2、为什么要使用代理服务器1)提高访问速度 由于目标主机返回的数据会存放在代理服务器的硬盘中,因此下一次客户再...转载 2019-03-16 14:25:29 · 315 阅读 · 0 评论 -
高并发负载均衡(二)——Nginx 和LVS
高并发负载均衡(二)——Nginx 和LVS在上一篇博客中介绍到实现负载均衡主要可以通过软、硬件两个方面进行,例如硬件上购买RadWare等硬件设备,或者通过软件策略实现负载均衡。软件策略上使用广泛有Nginx和LVS在介绍两款工具之前,先聊聊负载均衡的应用场景普通web应用部署到多台应用服务器上,客户端通过访问应用服务器发送请求,最简单的就是n对1模式,n个客户端访问同一个应...转载 2019-03-12 12:36:12 · 277 阅读 · 0 评论 -
高并发负载均衡(一)——企业架构分析和DNS
高并发负载均衡(一)——企业架构分析和DNS最近研究了几个关于阿里研究院对于高并发的解决方案,总结一下,涨涨姿势。企业级web项目架构图1、客户端通过企业防火墙发送请求2、在App服务器如tomcat接收客户端请求前,面对高并发大数据量访问的企业架构,会通过加入负载均衡主备服务器将请求进行转发到不同web服务其中。3、服务器通过访问数据库进行交互,同样高...转载 2019-03-12 12:36:19 · 234 阅读 · 0 评论 -
分布式事务 CAP 理解论证 解决方案
分布式事务 CAP 理解论证 解决方案前言在大型系统架构演变中,当前下,分布式是一个必然的选择,分布式事务是绕不开的一个点.目录概述 论证 解决方案 3.1 维护本地消息表 3.2 使用rocketmq事务消息 3.3 两阶段提交协议(2PC) 3.4 TCC事务补偿机制正文1.概述在单体架构中,我们的事务可以通过数据库的ACID来操作,不会出现什么问题...转载 2019-03-16 14:25:35 · 208 阅读 · 0 评论 -
高并发下分布式事务的解决方案
1、什么是分布式事务分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。以上是百度百科的解释,简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。本质上来说,分布式事务就是为了保证不同数据库的数据一致性。2、分布式事务的产生的原因...转载 2019-03-06 13:25:24 · 2189 阅读 · 0 评论 -
数据库分库分表
一、库分表在redis,memcached等缓存系统盛行的互联网时代,构建一个支撑每秒十万只读的系统并不复杂,无非是通过一致性哈希扩展缓存节点,水平扩展web服务器等。支付系统要处理每秒十万笔订单,需要的是每秒数十万的数据库更新操作(insert加update),这在任何一个独立数据库上都是不可能完成的任务,所以我们首先要做的是对订单表(简称order)进行分库与分表。在进行数据库操作时,...转载 2019-03-02 09:38:45 · 3097 阅读 · 0 评论 -
一致性Hash(Consistent Hashing)介绍及使用场景
场景单个节点的缓存容量达到上限,无法继续单点增加内存,如何解决?单个节点支撑的QPS达到上限,如何解决?初步方案(哈希取模)增加N个缓存节点,为了保证缓存数据的均匀,一般情况会采用对key值hash,然后取模的方式,然后根据结果,确认数据落到哪台节点上:如下:hash(key)%N很好,这个的确解决了上面的问题,实现了初步的分布式缓存,数据均匀分散到了各个节点上,流量...转载 2019-03-02 09:38:04 · 473 阅读 · 0 评论 -
Java中FreeMaker的使用
1.什么是freemarkerFreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP。它不仅可以用作表现层的实现技术,而且还可以用于生成XML,JSP或Java 等。目前企业中:主要用Freemarker做静态页面或是页面展示2.Freemarker的使用方法...转载 2019-03-04 00:26:37 · 289 阅读 · 0 评论