互联网架构技术周刊第二十一期

2019-08-12
阅读 1 分钟
1.3k
架构原理 1、一文读懂高性能网络编程中的I/O模型 Linux系统中五种IO模型的实现机制和对比,可以期待一下更加完善的AIO的实践应用。 2、分布式事务解决方案汇总:2PC、消息中间件、TCC、状态机+重试+幂等 本文从实践角度总结了解决分布式事务问题,比较可靠的七种方法:两种最终一致性的方案,两种妥协办法,两种基于状态...

互联网架构技术周刊

2019-05-24
阅读 1 分钟
1.8k
架构原理 1、浅谈几种常用负载均衡架构 文章概括了负载均衡技术分类、作用位置和负载均衡算法,以及每种技术的优缺点。 2、古典、SOA、传统、K8S、ServiceMesh 近几年微服务的思想和架构演化的速度非常快,经常是每年都有一个新的思想产生,从传统微服务思想起,近两年结合K8S和容器,SpringCloud、ServiceMesh、Severle...

[转载] Redis、MongoDB 及 MemCache 的区别

2019-03-08
阅读 3 分钟
5.9k
Redis是一个key-value存储系统(布式内缓存,高性能的key-value数据库)。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原...

Redhat6.9/Cent6下源码安装samba4手把手实操

2019-03-01
阅读 2 分钟
2.7k
由于Redhat6/Cent6操作系统属于骨灰级的操作系统,然而却老当益壮,在各大互联网公司内部仍有不少使用,下面就手把手记录下在rhel6下安装samba4的过程。

Proactor 与 Reactor

2019-02-27
阅读 4 分钟
14.7k
在高性能的I/O设计中,有两个比较著名的模式Reactor和Proactor模式,其中Reactor模式用于同步I/O,而Proactor运用于异步I/O操作。

CGI,FASTCGI,PHP-CGI,PHP-FPM 概念

2019-02-27
阅读 2 分钟
2.9k
Webserver会传那些基本信息给后端处理请求的解析器呢?url,get请求的query_string,POST数据,Http Header等,那么CGI就规定了要传哪些参数,以及以一个什么样的格式传过去,后端处理完这个请求,又该以什么样的格式传回。

AES128/ECB/PKCS5Padding 的实现

2019-02-27
阅读 1 分钟
8.6k
AES的相关基础知识直接看WikiPedia:高级加密标准 附上 C/C++ 可用代码:AES_Cipher

一幅图解释区块链结构

2019-02-27
阅读 1 分钟
3.1k
先看比特币的核心特点:1)基于时间戳的链式区块结构;2)分布式节点间的共识机制;3)基于共识算力的经济激励;4)灵活可编程的智能合约机制。 再来谈区块链的重要特性:1)去中心化、完全分布式;2)点对点;3)共识机制;4)加密算法。 我认为区块链的基础技术两点:1、区块链结构;2、全网广播机制。 先看区块链结构...

分布式系统的Raft算法

2019-02-27
阅读 1 分钟
2.9k
Raft作为Paxos的简化版本,在工程领域有着更加广泛的应用。 本文转载的几篇文章对Raft的工作原理、实现方式进行了详细的介绍。 分布式系统的Raft算法 总结:目前几乎所有语言都已经有支持Raft算法的库包,具体可参考:raftconsensus.github.io 英文动画演示Raft CAP原理和BASE思想分布式Paxos算法分布式事务 => 分布...

系统高可用设计与实践

2019-02-27
阅读 1 分钟
3.2k
本ppt结合滴滴稳定性团队在QCON全球架构师峰会上的演讲,整理并在内部分享。基本对高可用设计体系和技术点做了全面的介绍。

限流算法之漏桶算法、令牌桶算法

2019-02-27
阅读 2 分钟
6.3k
每个API接口都是有访问上限的,当访问频率或者并发量超过其承受范围时候,我们就必须考虑限流来保证接口的可用性或者降级可用性。即接口也需要安装上保险丝,以防止非预期的请求对系统压力过大而引起的系统瘫痪。

线上模块XX 在高QPS下耗时剧增的原因排查总结

2019-02-27
阅读 2 分钟
2k
1、确定问题原因:1)场景复现:方式1:根据现场日志确定问题原因;方式2:压测复现。存在的问题:方式1:日志中没有保存现场;方式2:压测可能与线上不符;压测可能无法满足某些特殊条件。2)一些手段:a.如果问题只在特定机器出现,确定机器硬件配置是否相同,cpu、meminfo、系统配置等;b.分阶段、逐步细化各步骤的处...

C++中new的三种使用方法说明

2019-02-27
阅读 3 分钟
5.3k
一、概念 在C++中new的三种用法包括:plain new, nothrow new 和 placement new。 plain new 就是我们最常使用的new的方式,在C++中的定义如下: {代码...} plain new在分配失败的情况下,抛出异常std::bad_alloc而不是返回NULL,因此通过判断返回值是否为NULL是徒劳的。 nothrow new 是不抛出异常的运算符new的形式。n...

PHP回收周期

2019-02-27
阅读 2 分钟
2.6k
传统上,像以前的 php 用到的引用计数内存机制,无法处理循环的引用内存泄漏。然而 5.3.0 PHP 使用文章» 引用计数系统中的同步周期回收(Concurrent Cycle Collection in Reference Counted Systems)中的同步算法,来处理这个内存泄漏问题。

浅谈RPC

2019-02-27
阅读 2 分钟
3.7k
从我们学习编程开始,就对『LPC』(local Procedure Call)十分熟悉,而PRC就是类似LPC的一种调用机制。在服务化、微服务化逐渐成为大中型分布式系统架构的主流方式的过程中,RPC作为基本通用服务成为系统标配的一部分。

模块融合中的一些思考

2019-02-27
阅读 1 分钟
1.4k
模块拆分通常并非架构RD因重构而自发的,新的业务需求或产品线要求快速上线,从现有成熟模块迁移过来,稍加改动就能实现目标,这常常皆大欢喜。然而,随着不同产品线架构的迭代和调整,两个同源模块的差异越来越大,但各个模块内部似乎仍能保持良好的框架和模块。

搜索前端技术概述

2019-02-27
阅读 2 分钟
2.3k
搜索在线系统分为三个部分,从用户发起检索请求后,历经web前端、检索前端和检索后端。本文主要介绍检索前端的技术架构和关注点。 为了尽量排除笔者所在公司具体技术的相关名词,下文对各个检索前端模块进行了抽象,下图是检索前端模块示意图。 Web前端除了FE相关工作之外,还包括以下几项功能: 提供内容分发服务,并能...

Understanding HBase and BigTable 译文

2019-02-27
阅读 4 分钟
4.9k
在学习HBase(Google BigTable 的开源实现)的时候,我们面临的最为困难的部分就是你需要重构你的思路来理解BigTable的概念。

讨论一个堆栈越界的问题

2019-02-27
阅读 1 分钟
2.8k
我们知道,在 C 语言中,只要不是访问受限的内存,所有的内存空间都是可以自由访问的。根据数组寻址方式(线性连续),a[3] 也会被定位到某块不属于数组的内存地址上,而这个地址正好是存储变量 i 的内存地址,那么 a[3]=0 就相当于 i=0,所以就会导致代码无限循环。