1. ELK简介在传统项目中,如果在生产环境中,有多台不同的服务器集群,如果生产环境需要通过日志定位项目的Bug的话,需要在每台节点上使用传统的命令方式查询,这样效率非常低下。因此我们需要集中化的管理日志,ELK则应运而生。ELK=ElasticSeach+Logstash+Kibana,本项目采...
本文是Redis集群学习的实践总结(基于Redis 6.0+),详细介绍逐步搭建Redis集群环境的过程,并完成集群伸缩的实践。Redis集群简介Redis集群(Redis Cluster) 是Redis提供的分布式数据库方案,通过 分片(sharding) 来进行数据共享,并提供复制和故障转移功能...
Kafka存在丢消息的问题,消息丢失会发生在Broker,Producer和Consumer三种。 BrokerBroker丢失消息是由于Kafka本身的原因造成的,kafka为了得到更高的性能和吞吐量,将数据异步批量的存储在磁盘中。消息的刷盘过程,为了提高性能,减少刷盘次数,kafka采用了批量...
假设我们正在开发一个多人在线网络游戏。游戏中,玩家需要在虚拟世界中进行合作或者展开竞争。玩家之间也常常存在各种交易,包括钱、道具等。因此游戏开发人员必须保证玩家没有作弊,规则如下:如果玩家交易额显著高于正常水平或者玩家登录的IP地址与之前20次登录的不一样,那么交易将被标记可疑。除了实时标记交易以...
作为一台服务器来说,内存并不是无限的,所以总会存在内存耗尽的情况,那么当 Redis 服务器的内存耗尽后,如果继续执行请求命令,Redis 会如何处理呢? 设置有效期使用Redis 服务时,很多情况下某些键值对只会在特定的时间内有效,为了防止这种类型的数据一直占有内存,我们可以给键值对设置有效期。R...
为什么会有TCP/IP协议在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别。就好像圣经中上帝打乱了各地人的口音,让他们无法合作一样。计算机使用者意识到,计算机只是单兵作战并不会发挥太大的作用。只有把它们联合起来,电脑才会发挥出它最...
HTTP协议简介超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。HTTP的发展是由蒂姆·伯纳斯-李于1989年在欧洲核子研究组织(CERN)所发起。HTTP的标准制定...
HTTP简介HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。...
英文缩写 API应用程序接口(英语:Application Programming Interface,简称:API),又称为应用编程接口,就是软件系统不同组成部分衔接的约定。由于近年来软件的规模日益庞大,常常需要把复杂的系统划分成小的组成部分,编程接口的设计十分重要。程序设计的实践中,编程接口的...
过去几年中,我们一直在使用、构建和宣传消息队列,我们认为它们是很令人敬畏的,这也不是什么秘密。我们相信对任何架构或应用来说,消息队列都是一个至关重要的组件,下面是十个理由: 1、解耦在项目启动之初来预测将来项目会碰到什么需求,是极其困难的。消息队列在处理过程中间插入了一个隐含的、基于数据的接口层,...
两个核心参数sort_buffer_size 决定内排,外排。内排就是走内存,外排就是采用归并排序走磁盘。max_length_for_sort_data 决定 全字段排序还是,rowid排序。全字段排序字段都放到 sort_buffer 中,排序后就会直接从内存里面返回查询结果了Rowid排...
众所周知的玩笑,计算机科学中只有两个难题:缓存失效和命名。缓存失效,我理解为是如何保证缓存一致性。首先说明,所有的方案都是存在问题的,都不能保证100%的一致性,如果严格要求一致性,那么,把缓存干掉吧....那么到底要不要用缓存?用缓存的目的是什么?你的业务能接受什么样的数据一致性?使用之前至少需...
Mysql 一般出现 CPU 负载过高问题的时候,我们都会去看下故障期间的慢sql日志,然后找出全表扫描、索引不合理、函数运算过多的sql,让开发同学优化下。实在不行的话,那就升级CPU硬件,替换更高频率的CPU,1路的升级成2路,2路的升级成四路。这次出现的问题因为关乎到每天的业务处理,所以很多措...
1 背景针对共享资源的互斥访问历来是很多业务系统需要解决的问题。在分布式系统中,通常会采用分布式锁这一通用型解决方案。本文将就分布式锁的实现原理、技术选型以及阿里云存储的具体实践进行论述。图1 锁 2 从单机锁到分布式锁在单机环境中,当共享资源自身无法提供互斥能力的时候,为了防止多线程/多进程对共享...
一. 概述1.1 引言当前参与的项目中会遇到一些线程安全问题,由于业务是多节点部署的,这个时候我们需要分布式锁来保证线程安全问题,所以这里学习总结了几种分布式锁的实现思路。分布式的CAP理论告诉我们任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和...
背景Redis 是一个开源的内存数据结构存储系统。可以作为数据库、缓存和消息中间件使用。支持多种类型的数据结构。Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的...
引入索引生命周期的作用在 Elasticsearch的日常管理中,有很多如系统日志,行为数据等方面的应用场景,这些场景的特点是数据量非常大,并且随着时间的增长索引的数量也会持续增长,然而这些场景基本上只有最近一段时间的数据有使用价值或者会被经常使用(热数据),而历史数据几乎没有作用或者很少会被使...
RDB快照(Redis DataBase)RDB是一种快照存储持久化方式,具体就是将Redis某一时刻的内存数据保存到硬盘的文件当中,默认保存的文件名为dump.rdb,而在Redis服务器启动时,会重新加载dump.rdb文件的数据到内存当中恢复数据。 开启RDB持久化方式开启RDB持久化方式很...
Kafka存在丢消息的问题,消息丢失会发生在Broker,Producer和Consumer三种。 BrokerBroker丢失消息是由于Kafka本身的原因造成的,kafka为了得到更高的性能和吞吐量,将数据异步批量的存储在磁盘中。消息的刷盘过程,为了提高性能,减少刷盘次数,kafka采用了批量...
问题1:消息队列的作用1、 解耦快递小哥手上有很多快递需要送,他每次都需要先电话一一确认收货人是否有空、哪个时间段有空,然后再确定好送货的方案。这样完全依赖收货人了!如果快递一多,快递小哥估计的忙疯了……如果有了便利店,快递小哥只需要将同一个小区的快递放在同一个便利店,然后通知收货人来取货就可以了...