
架构
文章平均质量分 90
奔跑的码农
热爱web开发,热爱生活!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
OAuth的机制原理讲解及开发流程
OAuth(开放授权)是一个开放标准,允许第三方网站在用户授权的前提下访问在用户在服务商那里存储的各种信息,而这种授权无需将用户提供用户名和密码提供给该第三方网站。OAuth允许用户提供一个令牌给第三方网站,一个令牌对应一个特定的第三方网站,同时该令牌只能在特定的时间内访问特定的资源。转载 2016-07-28 15:33:46 · 325 阅读 · 0 评论 -
大量数据去重:Bitmap和布隆过滤器(Bloom Filter)
5TB的硬盘上放满了数据,请写一个算法将这些数据进行排重。如果这些数据是一些32bit大小的数据该如何解决?如果是64bit的呢?在面试时遇到的问题,问题的解决方案十分典型,但对于海量数据处理接触少的同学可能一时也想不到什么好方案。介绍两个算法,对于空间的利用到达了一种极致,那就是Bitmap和布隆过滤器(Bloom Filter)。Bitmap算法在网上并没有找到Bitmap算法的中文翻译,在《...原创 2018-04-02 19:45:54 · 3314 阅读 · 0 评论 -
详解Nginx中HTTP的keepalive相关配置
这篇文章主要介绍了Nginx中HTTP的keepalive相关配置,以及Nginx的Httpd守护进程相关的keepalive timeout配置,需要的朋友可以参考下。http keepalive在http早期 ,每个http请求都要求打开一个tpc socket连接,并且使用一次之后就断开这个tcp连接。使用keep-alive可以改善这种状态,即在一次TCP连接中可以持续发送多份数据而不会 ...转载 2018-03-29 17:30:26 · 8088 阅读 · 0 评论 -
Oracle官方中间件:MySQL Router架构简介
原文出处:架构之美今天我们来简单介绍一下Oracle官方出品的数据库负载均衡利器——MySQL Router。什么是MySQL Router?MySQL Router是一个介于应用层和DB层之间的开源的轻量级中间件,它能够将前端应用的请求分析转发给后端DB服务器处理,从而实现DB的负载均衡,可以说它是先前MySQL Proxy的替代品,我们可以在Github找到它的源码。类似的转载 2017-12-28 15:54:39 · 3806 阅读 · 0 评论 -
详解一致性哈希算法(consistent hashing)
一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到应用。 一致性hash算法提出了在动态变化的Cache环境中,判定哈希算法好坏的四个定义:1转载 2017-12-28 11:41:19 · 944 阅读 · 0 评论 -
高可用架构详解
一、什么是高可用高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。假设系统一直能够提供服务,我们说系统的可用性是100%。如果系统每运行100个时间单位,会有1个时间单位无法提供服务,我们说系统的可用性是99%。很多公司的高可用目标是4个9,也就是99.99%,这就意味着,系转载 2017-01-17 17:09:38 · 6112 阅读 · 0 评论 -
高并发架构详解
一、什么是高并发高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。高并发相关常用的一些指标有响应时间(Response Time),吞吐量(Throughput),每秒查询率QPS(Query Per Second),并发用户数等。响应时间:系统对请转载 2017-01-17 11:18:13 · 14852 阅读 · 0 评论 -
Linux系统负载升高排查思路
系统负载(System Load):系统CPU繁忙程度的度量,即有多少进程在等待被CPU调度。平均负载(Load Average):一段时间内系统的平均负载,这个一段时间一般取1分钟、5分钟、15分钟。可以使用top或w命令进行查看系统的最大负载一般受一下因素影响:1.带宽一个系统的带宽首先就决定了这个系统的负载能力,其单位为Mbps。2.硬件配置CPU频率原创 2017-09-22 20:45:54 · 5622 阅读 · 0 评论 -
基于单Redis节点的分布式锁
场景:某个业务接口,因为做了比较复杂的数据库查询并且调用量很大,所以加了缓存,并设定缓存过期后刷新。问题是缓存过期的瞬间,大量并发请求会穿透缓存直接查询数据库,造成雪崩效应,如果有锁机制,那么就可以控制只有一个请求去更新缓存,其它的请求视情况要么等待,要么使用过期的缓存。下面以PHPRedis 扩展为例,实现一段演示代码:<?php$redis = new Redis();$ca原创 2017-04-18 08:42:13 · 570 阅读 · 0 评论 -
Docker命令大全
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。原创 2017-01-20 15:09:56 · 674 阅读 · 0 评论 -
App 后台架构设计方案 设计思想与最佳实践
原文出处:http://blog.youkuaiyun.com/smartbetter/article/details/53933096做App做的久了,就想研究一下与之相关的App后台,发现也是蛮有趣的。App后台的两个重要作用就是 远程存储数据 和 消息中转。这里面的知识体系也是相当复杂,做好一个App后台也是需要长期锤炼的。本篇文章从 App 后台架构 的角度介绍。好了,下面进入正题:说转载 2017-01-12 17:05:22 · 5166 阅读 · 1 评论 -
RPC原理与实例解析
在校期间大家都写过不少程序,比如写个hello world服务类,然后本地调用下,如下所示。这些程序的特点是服务消费方和服务提供方是本地调用关系。而一旦踏入公司尤其是大型互联网公司就会发现,公司的系统都由成千上万大大小小的服务组成,各服务部署在不同的机器上,由不同的团队负责。这时就会遇到两个问题:1)要搭建一个新服务,免不了需要依赖他人的服务,而现在他人的服务都在远端,怎么调用?2)其它团转载 2017-01-17 11:07:42 · 399 阅读 · 0 评论 -
TCP粘包问题分析和解决(全)
在socket网络程序中,TCP和UDP分别是面向连接和非面向连接的。因此TCP的socket编程,收发两端(客户端和服务器端)都要有成对的socket,因此,发送端为了将多个发往接收端的包,更有效的发到对方,使用了优化方法(Nagle算法),将多次间隔较小、数据量小的数据,合并成一个大的数据块,然后进行封包。这样,接收端,就难于分辨出来了,必须提供科学的拆包机制。对于UDP,不会使用块的合并优化...转载 2018-03-28 17:27:59 · 4045 阅读 · 0 评论