RSS

Posts in 2022

  • 八股文

    2022-06-01 in Java

    一、基础篇 网络基础 TCP/IP 三次握手过程(两次握手只能保证单向连接是畅通的): 客户端——发送带有SYN标志的数据包,客户端进入syn_sent状态 ​服务端——发送带有SYN/ACK标志的数据包,服务端进入syn_rcvd ​客户端——发送带有ACK标志的数据包,连接就进入established状态 四次挥手过程(可单向关闭): ​客户端——发送FIN数据包,关闭与服务端的连接,进入FIN_WAIT_1状态 ​服务端–收到这个FIN,发回ACK报⽂确认,进 …

    更多

  • Redis 特性

    2022-05-21 in NoSQL

    发布订阅 事件推送 https://redis.io/docs/manual/keyspace-notifications/ 事件类型 __keyspace@db:key_pattern 键空间通知(key-space notification) __keyevent@db:ops_type 键事件通知(key-event notification) 执行del mykey之后,相当于发送以下事件 publish __keyspace@0__:mykey del publish …

    更多

  • Redis 缓存

    2022-05-10 in NoSQL

    缓存问题 Redis 高可用,主从+哨兵,Redis cluster,避免全盘崩溃 本地 ehcache 缓存 + hystrix 限流&降级,避免 MySQL 被打死 缓存穿透 缓存穿透是指用户请求的数据在缓存中不存在即没有命中,同时在数据库中也不存在,导致用户每次请求该数据都要去数据库中查询一遍,然后返回空 布隆过滤器 布隆过滤器(Bloom Filter,简称BF),是一种空间效率高的概率型数据结构,用来检测集合中是否存在特定的元素 布隆过滤器由一个长度为m比特的位数组(bit …

    更多

  • Redis 简介

    2022-05-10 in NoSQL

    概述 Remote Dictionary Server Redis是一种支持key-value等多种数据结构的存储系统。可用于缓存,事件发布或订阅,高速队列等场景。支持网络,提供字符串,哈希,列表,队列,集合结构直接存取,基于内存,可持久化 数据类型 https://redis.io/docs/manual/data-types/ 限制:值的长度限制为512MB,元素大小限制为2^32-1 string https://redis.io/commands/?group=string incr, …

    更多

  • Lucene IndexWriter

    2022-04-29 in NoSQL

    IndexWriterConfig IndexDeletionPolicy:Lucene开放对commit point的管理,通过对commit point的管理可以实现例如snapshot等功能。Lucene默认配置的DeletionPolicy,只会保留最新的一个commit point Similarity:搜索的核心是相关性,Similarity是相关性算法的抽象接口,Lucene默认实现了TF-IDF和BM25算法。相关性计算在数据写入和搜索时都会发生,数据写入时的相关性计算称 …

    更多

  • Lucene 简介

    2022-04-29 in NoSQL

    简介 Apache Lucene是一个开源的高性能、可扩展的信息检索引擎,提供了强大的数据检索能力 Scalable, High-Performance Indexing Powerful, Accurate and Efficient Search Algorithms 概念 Index(索引) 类似数据库的表的概念,但是没有Scheme,相当于Document的集合 Document(文档) 类似数据库内的行或者文档数据库内的文档的概念,写入Index的Document会被分配一个唯一 …

    更多

  • Flink 调优

    2022-04-29 in BigData

    Group Aggregate 开启 MicroBatch/MiniBatch (牺牲延迟以提升吞吐) 缓存一定的数据后再触发处理,以减少对 state 的访问从而显著提升吞吐,以及减少输出数据量 MiniBatch主要依靠在每个 task 上注册的 timer 线程来触发微批,会有一定的线程调度开销。MicroBatch 是 MiniBatch 的升级版,主要基于事件消息来触发微批,事件消息会按用户指定的时间间隔在源头插入。MicroBatch 在攒批效率、反压表现、吞吐和延迟性能上都要胜 …

    更多

  • Flink 原理

    2022-04-29 in BigData

    流量控制 基于Credit的反压机制 下游的InputChannel从上游的ResultPartition接收数据的时候,会基于当前已经缓存的数据量,以及可申请到的LocalBufferPool与NetworkBufferPool,计算出一个Credit值返回给上游。上游基于Credit的值,来决定发送多少数据。Credit就像信用卡额度一样,不能超支 当下游发生数据拥塞时,Credit减少值为0,于是上游停止数据发送。拥塞压力不断向上游传导,形成反压 系统容错 流计算容错一致性保证有三种,分别 …

    更多

  • ES 分布式原理Data篇

    2022-04-28 in NoSQL

    Replication写入流程 ES中每个Index会划分为多个Shard,Shard分布在不同的Node上,以此来实现分布式的存储和查询,支撑大规模的数据集。对于每个Shard,又会有多个Shard的副本,其中一个为Primary,其余的一个或多个为Replica。数据在写入时,会先写入Primary,由Primary将数据再同步给Replica。在读取时,为了提高读取能力,Primary和Replica都会接受读请求 1. 检查Active的Shard …

    更多

  • ES 分布式原理Meta篇

    2022-04-28 in NoSQL

    Meta数据 Master节点管理Meta数据并通知其他节点,来驱动各个模块工作,比如创建Shard等 Meta是用来描述数据的数据。在ES中,Index的mapping结构、配置、持久化状态等就属于meta数据,集群的一些配置信息也属于meta。这类meta数据非常重要,假如记录某个index的meta数据丢失了,那么集群就认为这个index不再存在了。ES中的meta数据只能由master进行更新 Meta数据结构 集群中的每个节点都会在内存中维护一个当前的ClusterState,表示当前 …

    更多