整个流程相当简单,首先服务器通过 Filebeat 把数据上报给 Logstash ,然后把分析后把数据保存到 ElasticSearch里,最后用户通过 Kibana 浏览数据。一、ELK 介绍Elastic Stack早期的名字叫ELK,是由三个开源软件组成的数据处理框架。后期由于有新的成员加入到ELK中,ELK更名为Elastic Stack以反映其组成成员的变化情况。ELK是三个单词的首字
如何部署日志系统:ElasticSearch、Logstash、Kibanna及kafka一、基础环境二、安装ElasticSearch1、导入ElasticSearch PGP Key2、从RPM repository安装3、修改配置使外网可访问4、Running Elasticsearch with *systemd*5、检查是否成功运行二、安装Kibana1、Installing from
redis介绍1、redis什么redis可以理解就是一个数据库,不过与传统数据库不同的是 redis 的数据是存在内存中的,所以读写速度非常快,因此 redis 被广泛应用于缓存方向。另外,redis 也经常用来做分布式锁。redis 提供了多种数据类型来支持不同的业务场景。除此之外,redis 支持事务 、持久化、LUA脚本、LRU驱动事件、多种集群方案。2、为什么要用 redis?/为
转载 2024-02-22 11:51:52
29阅读
总的思路: 所有安装配置步骤基本都一样下载tar包,解压,修改配置文件,启动。 下载tar包和解压的过程就不再赘述,直接去官网上下载。 elk的安装包我用的是6.7.1。kafka用的2.1.1。 kafka -> logstash -> elasticsearch 这是我的数据流向。 所有解压后的软件装在/opt/module目录下 。 opt目录是linux系统中的软件存放目录。k
①消息队列的优缺点 优点:异步解耦和削峰 缺点:系统引入mq之后可能存在的一些问题1系统可用性降低(mq出问题 整个系统就挂了 多了一道环节)2 系统变复杂 考虑的问题变多(如果系统和mq协调出现问题 往里面加了两条一样的数据 或 是消息积压 或是丢消息 )3 一致性的问题:a系统给bcd都执行成功才返回结果 结果abc都成功了 d出问题了 导致整个请求给用户返
锁超时问题在redis分布式锁中,如果线程A加锁成功了,但是由于业务功能耗时时间很长,超过了设置的超时时间,这时候redis会自动释放线程A加的锁。通常我们加锁的目的是:为了防止访问临界资源时,出现数据异常的情况。比如:线程A在修改数据C的值,线程B也在修改数据C的值,如果不做控制,在并发情况下,数据C的值会出问题。为了保证某个方法,或者段代码的互斥性,即如果线程A执行了某段代码,是不允许其他线程
转载 2023-09-08 22:43:48
49阅读
部署elk+kafkaZookeeper是一种在分布式系统中被广泛用来作为:分布式状态管理、分布式协调管理、分布式配置管理、和分布式锁服务的集群zookeeper功能非常强大,可以实现诸如分布式应用配置管理、统一命名服务、状态同步服务、集群管理等功能,我们这里拿比较简单的分布式应用配置管理为例来说明。假设我们的程序是分布式部署在多台机器上,如果我们改变程序的配置文件,需要逐台机器去修改,非常麻烦
最近阅读了《Redis开发与运维》,非常不错。这里对书中的知识整理一下,方便自己回顾一下Redis的整个体系,来对相关知识点查漏补缺。我按照五点把书中的内容进行一下整理:• 为什么选择Redis
原创 2022-08-17 01:26:35
585阅读
本文示例代码已上传至github:https://github.com/ZhaiBo/microservice-scaffold为什么需要对微服务日志做集中化处理在微服务架构下,各个基础服务可能使用集群方式部署在不同的机器上,这样日志查看就变得非常困难,一旦服务出现问题,在大量的日志下很难定位问题,所以就需要对微服务日志进行集中式处理,以便于我们查找、定位问题。 ELK是目前主流的日志收集处理方案
Redis的的是完全开源免费的,遵守BSD协议,是一个高性能的键值数据库。是当前最热门的的的NoSql数据库之一,也被人们称为数据结构服务器。那为什么要用Redis的的的呢?原因很简单,快! (推荐学习:Redis视频教程)这个问题在大并发,高负载的网站中必须考虑.redis数据库中的所有数据都存储在内存中。由于内存的读写速度远快于硬盘,因此Redis的的的在性能上对比其他基于硬盘存储的数据库有非
转载 2023-05-25 20:27:33
64阅读
为什么需要分布式锁?在开始讲分布式锁之前,有必要简单介绍一下,为什么需要分布式锁?与分布式锁相对应的是「单机锁」,我们在写多线程程序时,避免同时操作一个共享变量产生数据问题,通常会使用一把锁来「互斥」,以保证共享变量的正确性,其使用范围是在「同一个进程」中。如果换做是多个进程,需要同时操作一个共享资源,如何互斥呢?例如,现在的业务应用通常都是微服务架构,这也意味着一个应用会部署多个进程,那这多个进
Redis是一个远程内存数据库,它不仅性能强劲,而且还具有复制特性以及为解决问题而生的独一无二的数据模型。Redis提供了5种不同类型的数据结构,各式各样的问题都可以很自然地映射到这些数据结构上:Redis的数据结构致力于帮助用户解决问题,而不会像其他数据库那样,要求用户扭曲问题来适应数据库。除此之外,通过复制、持久化(persistence)和客户端分片(client-side sharding
压缩列表是列表键和哈希键的底层实现之一。压缩列表是为了节约内存而开发的,是由一系列特殊编码的连续内存块组成的顺序型数据结构。【压缩列表是一种数据结构,这种数据结构的功能是将一系列数据与其编码信息存储在一块连续的内存区域,这块内存物理上是连续的,逻辑上被分为多个组成部分,其目的是在一定可控的时间复杂读条件下尽可能的减少不必要的内存开销,从而达到节省内存的效果 ————大佬总结】一.什么时候使用压缩列
转载 2023-11-25 17:43:54
50阅读
JUC提供的锁机制,可以保证在同一个JVM进程中同一时刻只有一个线程执行操作逻辑; 多服务多节点的情况下,就意味着有多个JVM进程,要做到这样,就需要有一个中间人; 分布式锁就是用来保证在同一时刻,仅有一个JVM进程中的一个线程在执行操作逻辑; 换句话说,JUC的锁和分布式锁都是一种保护系统资源的措施。尽可能将并发带来的不确定性转换为同步的确定性; 作
# 为什么Spring配置Redis ## 1. 背景介绍 在当今互联网时代,随着用户量的不断增加和业务的不断扩展,传统的数据库存储已经不能满足需求,尤其是在对数据的读写频率、响应速度、并发处理能力等方面提出了更高的要求。因此,很多应用开始使用缓存来提高系统性能和用户体验。 Redis 是一个高性能的内存中的 key-value 数据库,它具有快速的读写速度和丰富的数据结构支持,是一个非常
原创 2024-03-23 04:04:41
25阅读
在现代分布式系统中,Redis因其快速的读写性能和丰富的数据结构而被广泛使用。然而,选择主节点进行数据读取和写入操作并不是一个简单的决定。本文将探讨“为什么Redis选主”的深层次原因,以及如何应对这一问题,以确保系统的高可用性和稳定性。 ## 问题背景 在使用Redis的过程中,尤其是在高并发场景下,主节点的选择直接影响到业务的稳定性和用户体验。如果不当选择主节点,可能导致数据一致性问题,严
原创 7月前
5阅读
JWT(JSON Web Token)是一种用于安全地在各方之间传递信息的紧凑的URL安全的字符串。然而,JWT也有自身的缺点,比如一旦生成就无法失效等。因此,为了提升安全性,许多应用选择将JWT与Redis结合使用。具体来说,Redis的高性能、高可用性和支持快速数据读取的特性,使其成为存储JWT的重要选项。接下来,我将详细分享如何解决“为什么要将JWT放入Redis”的问题。 ## 环境准备
原创 6月前
2284阅读
前言公司交给了萌新小猿一个光荣而艰巨的项目,该项目需要使用分布式锁,这可难道了小猿,只是听说过分布式锁很牛掰,其他就一概不知了,唉不懂就问呗,遂向老板请教。老板:我们每天不都在经历分布式锁吗,我来给你回忆回忆。 小猿:好勒,瓜子板凳已备好。本文结构为什么要使用分布式锁分布式锁有哪些特点分布式锁流行算法及其优缺点 基本算法relock算法token算法数据库排它锁、ZooKeeper分布式锁、
# Redis 为什么搭集群? Redis 是一个开源的高性能键值数据库,广泛应用于缓存、会话存储、实时分析等场景。随着业务的发展,数据量和访问量迅速增加,单个 Redis 实例往往难以满足需求。因此,Redis 集群技术应运而生,以提高系统的可扩展性、可用性和性能。 ## 什么Redis 集群? Redis 集群是将多个 Redis 实例组合在一起,实现数据的分布式存储和处理。通过集
原创 2024-08-13 03:55:35
50阅读
# Redis哨兵为什么单数 ## 1. 简介 Redis是一个开源的、基于内存的数据结构存储系统,常用于缓存、数据库和消息中间件。Redis哨兵是Redis的高可用解决方案之一,它可以监控Redis实例的状态,并在主节点宕机时自动将从节点升级为主节点,保证系统的高可用性。 在配置Redis哨兵时,有一个有趣的现象是,每个哨兵的名称都是奇数,例如sentinel1、sentinel2、sen
原创 2023-09-11 04:58:54
169阅读
  • 1
  • 2
  • 3
  • 4
  • 5