服务追踪

服务追踪在分布式系统,尤其是微服务系统中,一次外部请求往往需要内部多个模块,多个中间件,多台机器的相互调用才能完成。 在这一系列的调用中,可能有些是串行的,而有些是并行的。在这种情况下,我们如何才能确定这整个请求调用了哪些应用?哪些模块?哪些节点?以...

架构

单体应用如何服务化

服务化的前置条件一般情况下,业务系统引入新技术就必然会带来架构的复杂度提升,在具体决策前,你先要认识到新架构会带来哪些新的问题,这些问题你和你的团队是否能够解决?如何解决?是自己投入人力建设,还是采用业界开源方案? 下面几个问题,是从单体应用迁移到微...

架构

服务响应时间与分布

分析服务响应时间分布,如:均值、中位值、P95值、P99值等如何计算。 平均值我们考察一个服务器的性能,除了QPS数据外,还会考察响应时间,当服务器负载增高时,往往会伴随着响应时间的增长,但是这个值该如何度量,以精准的表现服务器当前之负载呢? 最常用...

架构

什么是微服务?

单体应用微服务不是凭空而来的,是由单体应用演变而来。那单体应用有什么缺点能演变出微服务来? 在项目开始时,代码量业务规模都不大并且开发团队人员规模都较小,采用单体应用架构时,团队的开发和运维成本都可控。 然而随着业务规模的不断扩大,团队开发人员的不断...

架构

Redis 的哨兵机制以及集群

哨兵机制Redis 中提供了[[Redis 的主从库模式以及主从复制|主从模式]]来提高可靠性,在这个模式下,从库宕机了客户端可以继续像主库或者其他从库发送请求,进行相关的操作;但是如果是主库发生故障了,那就直接会影响到从库的同步,因为从库没有相应的...

数据库

Redis 的切片集群

Redis 提供的集群方案,解决数据量增加时,是该增加内存还是增加实例数的问题。

数据库

数据结构——队列

队列队列是一种特殊的现形镳,特殊之处在于它只允许在队列的前端(front)进行删除操作,而在队列的后端(rear)进行插入操作,和栈一样是一种操作受限制的线性表。进行插入操作的一端称为队尾,进行删除操作的一端称为对头。 队列这个概念非常好理解。可以把...

程序开发

数据结构——链表

链表链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。 链表和数组有什么区别呢? 数组需要一块连续的内存空间来存储,对内存...

程序开发

数据结构——数组

数组数组是最基本的数据结构,数组是存储在连续内存空间上的相同类型数据的集合。在数组中,可以方便地通过下标索引的方式去获取对应的数据。举一个字符数组的例子,如下图所示: 需要注意的是: 数组下标都是从0开始的。 数组在内存空间的地址是连续的。 正...

程序开发

Redis 的主从库模式以及主从复制

主从库模式Redis 提供了 2 种不同的持久化方式:AOF 和 RDB,它们可以分别通过回放日志和重新读入 RDB 文件的方式来恢复数据,从而保证尽量少丢失数据,提升可靠性。 但即使使用了这两种方法,也依然存在服务不可用的问题:单点故障问题;比如我...

数据库

Redis 的存储类型以及常用命令

Redis 的数据类型Redis 的数据类型有 5 种,分别是 String,List,Set,Zset,Hash String 类型Redis 字符串存储字节序列,包括文本、序列化对象和二进制数组。因此,字符串是最基本的 Redis 数据类型。它们...

数据库

Redis 概述

Redis 是什么Redis (全称:Remote Dictionary Server 远程字典服务)是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis 是一个N...

数据库
12347