分布式
文章平均质量分 87
百里挑一
这个作者很懒,什么都没留下…
展开
-
分布式Unique ID的生成方法一览
分布式的Unique ID的用途如此广泛,从业务对象Id到日志的TraceId,本文总结了林林总总的各种生成算法。 1. 发号器 我接触的最早的Unique ID,就是Oracle的自增ID。 特点是准连续的自增数字,为什么说是准连续?因为性能考虑,每个Client一次会领20个ID回去慢慢用,用完了再来拿。另一个Client过来,拿的就是另外20个ID了。 新浪微博里,T原创 2016-11-11 10:06:40 · 773 阅读 · 0 评论 -
几种简单的负载均衡算法及其Java代码实现
什么是负载均衡 负载均衡,英文名称为Load Balance,指由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。通过某种负载分担技术,将外部发送来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。负载均衡能够平均分配客户请求到服务器阵列,借此提供快速获取重要数据,解决大量并发访问服务问题原创 2016-12-29 09:39:12 · 1110 阅读 · 1 评论 -
MemCache超详细解读
MemCache是什么 MemCache是一个自由、源码开放、高性能、分布式的分布式内存对象缓存系统,用于动态Web应用以减轻数据库的负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高了网站访问的速度。MemCaChe是一个存储键值对的HashMap,在内存中对任意的数据(比如字符串、对象等)所使用的key-value存储,数据可以来自数据库调用、API调用,或者页面渲染的结原创 2016-12-20 10:20:38 · 608 阅读 · 0 评论 -
分布式系统事务一致性解决方案
本文首发于InfoQ!!! http://www.infoq.com/cn/articles/solution-of-distributed-system-transaction-consistency 开篇 在OLTP系统领域,我们在很多业务场景下都会面临事务一致性方面的需求,例如最经典的Bob给Smith转账的案例。传统的企业开发,系统往往是以单体应用形式存在的,也没有横跨多转载 2017-01-10 10:05:25 · 350 阅读 · 0 评论 -
分布式消息系统:Kafka
Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一个分布式的,可划分的,冗余备份的持久性的日志服务。它主要用于处理活跃的流式数据。 在大数据系统中,常常会碰到一个问题,整个大数据是由各个子系统组成,数据需要在各个子系统中高性能,低延迟的不停流转。传统的企业消息系统并不是非常适合大规模的数据处理。为了已在同时搞定在线应用(消原创 2017-01-11 15:28:47 · 246 阅读 · 0 评论 -
haproxy和nginx负载均衡分析
出于对负载均衡工具的疑问,分别对haproxy和nginx的负载均衡进行了抓包分析,分析的过程跟大家分享下。先说下对haproxy抓包得到的结论吧:haproxy在负载均衡的一台后端挂掉后,如果还没达到探测的时间点时,请求还会往挂掉的这台转发,请求会丢失。 haproxy负载均衡的实验过程如下: 1: 先看下haproxy的配置。配置inter 20000为20s检测一次,这个是为了更明显的抓原创 2017-02-09 14:39:13 · 1138 阅读 · 0 评论 -
Nginx 主要应用场景
前言 本文只针对Nginx在不加载第三方模块的情况能处理哪些事情,由于第三方模块太多所以也介绍不完,当然本文本身也可能介绍的不完整,毕竟只是我个人使用过和了解到过得。所以还请见谅,同时欢迎留言交流 Nginx能做什么 1.反向代理 2.负载均衡 3.HTTP服务器(包含动静分离) 4.正向代理 以上就是我了解到的Nginx在不依赖第三方模块能处理的事情,下原创 2017-03-02 17:14:37 · 339 阅读 · 0 评论 -
解析 Nginx 负载均衡
摘要:对于一个大型网站来说,负载均衡是永恒的话题。随着硬件技术的迅猛发展,越来越多的负载均衡硬件设备涌现出来,如F5 BIG-IP、Citrix NetScaler、Radware等等,虽然可以解决问题,但其高昂的价格却往往令人望而却步,因此负载均衡软件仍然是大部分公司的不二之选。nginx作为webserver的后起之秀,其优秀的反向代理功能和灵活的负载均衡策略受到了业界广泛的关注。本文将以工业原创 2017-03-02 17:29:24 · 359 阅读 · 0 评论 -
使用 LVS 实现负载均衡原理及安装配置详解
负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群。常用的负载均衡开源软件有nginx、lvs、haproxy,商业的硬件负载均衡设备F5、Netscale。这里主要是学习 LVS 并对其进行了详细的总结记录。 一、负载均衡LVS基本介绍 LB集群的架构和原理很简单,就是当用户的请求过来时,会直接分发到Director Server上,然后它把用户的请求根原创 2017-03-02 17:50:15 · 656 阅读 · 0 评论 -
一个复杂系统的拆分改造实践
1 为什么要拆分? 先看一段对话。 从上面对话可以看出拆分的理由: 1) 应用间耦合严重。系统内各个应用之间不通,同样一个功能在各个应用中都有实现,后果就是改一处功能,需要同时改系统中的所有应用。这种情况多存在于历史较长的系统,因各种原因,系统内的各个应用都形成了自己的业务小闭环; 2) 业务扩展性差。数据模型从设计之初就只支持某一类的业务,来了新类型的业务后又原创 2017-01-03 17:59:31 · 2465 阅读 · 0 评论 -
可扩展 Web 架构与分布式系统
开放源代码已经成为一些大型网站的基本原则。而在这些网站成长的过程中,一些优秀的实践经验和规则也出现在他们的结构中。本文旨在介绍一些在大型网站结构设计的过程中需要注意的关键问题以及实现目标的基础工作。 本文侧重于介绍网络系统,尽管一些准则在其他分布式系统中也是适用的。 1.1. web分布式系统的设计原则 搭建和运营一个可伸缩的web站点或者应用程序意味着什么?在原始层面上这仅仅是原创 2017-01-03 17:58:18 · 306 阅读 · 0 评论 -
Redis 主从配置心得及其高可用方案
redis主从复制过程 当配置好slave后,slave与master建立连接,然后发送sync命令。无论是第一次连接还是重新连接,master都会启动一个后台进程,将 数据库快照保存到文件中,同时master主进程会开始收集新的写命令并缓存。后台进程完成写文件后,master就发送文件给slave,slave将 文件保存到硬盘上,再加载到内存中,接着master就会把缓存的命令转发给sla原创 2016-11-25 14:14:44 · 2677 阅读 · 0 评论 -
Memcached 与 Redis 实现的对比(上)
Memcached 与 Redis ,作为近些年最常用的缓存服务器,相信大家对它们再熟悉不过了。前两年还在学校时,我曾经读过它们的主要源码,如今写篇笔记从个人角度简单对比一下它们的实现方式,权当做复习,有理解错误之处,欢迎指正。 文中使用的架构类的图片大多来自于网络,有部分图与最新实现有出入,文中已经指出。 一. 综述 读一个软件的源码,首先要弄懂软件是用作干什么的,那memca原创 2016-11-25 14:17:34 · 994 阅读 · 1 评论 -
Memcached 与 Redis 实现的对比(下)
4.redis数据库持久化 redis和memcached的最大不同,就是redis支持数据持久化,这也是很多人选择使用redis而不是memcached的最大原因。 redis的持久化,分为两种策略,用户可以配置使用不同的策略。 4.1 RDB持久化 用户执行save或者bgsave的时候,就会触发RDB持久化操作。RDB持久化操作的核心思想就是把数据库原封不动的保存在文件里。原创 2016-11-25 14:20:05 · 597 阅读 · 0 评论 -
Mongos 与集群均衡
mongodb 可以以单复制集的方式运行,client 直连mongod读取数据。 单复制集的方式下,数据的水平扩展的责任推给了业务层解决(分实例,分库分表),mongodb原生提供集群方案,该方案的简要架构如下: mongodb集群是一个典型的去中心化分布式集群。mongodb集群主要为用户解决了如下问题: 元数据的一致性与高可用(Consistency + P原创 2016-11-28 12:48:34 · 2607 阅读 · 0 评论 -
中小型网站架构分析及优化
先看网站架构图: 以上网站架构广泛运用中大型网站中,本文从架构每一层分析所用主流技术和解决手段,有助于初入网站运维朋友们,进一步对网站架构认识,从而自己形成一套架构概念。 第一层:CDN 国内网络分布主要南电信北联通,造成跨地区访问延迟大问题,对于有一定访问量网站来说,增加CDN(内容分发网络)层可有效改善此现象,也是网站加速的最好选择。CDN把网站页面缓存到全国分布原创 2016-12-21 10:20:37 · 390 阅读 · 0 评论 -
大型分布式网站架构技术总结
本文是学习大型分布式网站架构的技术总结。对架构一个高性能,高可用,可伸缩,可扩展的分布式网站进行了概要性描述,并给出一个架构参考。一部分为读书笔记,一部分是个人经验总结。对大型分布式网站架构有很好的参考价值。 一、大型网站的特点 用户多,分布广泛 大流量,高并发 海量数据,服务高可用 安全环境恶劣,易受网络攻击 功能多,变更快,频繁发布原创 2016-12-21 10:24:29 · 323 阅读 · 0 评论 -
Apache kafka 工作原理介绍
消息队列 消息队列技术是分布式应用间交换信息的一种技术。消息队列可驻留在内存或磁盘上, 队列存储消息直到它们被应用程序读走。通过消息队列,应用程序可独立地执行–它们不需要知道彼此的位置、或在继续执行前不需要等待接收程序接收此消息。在分布式计算环境中,为了集成分布式应用,开发者需要对异构网络环境下的分布式应用提供有效的通信手段。为了管理需要共享的信息,对应用提供公共的信息交换机制是重要的。常用原创 2017-01-03 17:44:33 · 280 阅读 · 0 评论 -
基于 Nginx 的软件负载均衡实现解读
负载均衡在服务端开发中算是一个比较重要的特性。因为Nginx除了作为常规的Web服务器外,还会被大规模的用于反向代理前端,因为Nginx的异步框架可以处理很大的并发请求,把这些并发请求hold住之后就可以分发给后台服务端(backend servers,也叫做服务池, 后面简称backend)来做复杂的计算、处理和响应,这种模式的好处是相当多的:隐藏业务主机更安全,节约了公网IP地址,并且在业务量原创 2017-01-03 17:51:41 · 2382 阅读 · 0 评论