ClickHouse在酷家乐日志监控系统中的实践

2023-07-05
阅读 9 分钟
1.1k
同时ELK体系是业界最常用的日志技术栈之一,它采用JSON格式作为传输方式,易于多种语言实现和解析,并支持动态结构化字段。ElasticSearch作为存储引擎支持全文检索,可以从大量的日志信息中快速搜索到关键字。Kibana则提供美观易用的数据展示。

ClickHouse 使用 tokenbf_v1 索引加速日志查询

2023-07-05
阅读 3 分钟
2.2k
根据监控日志的特点,我们对 message 字段添加了 tokenbf_v1 索引。tokenbf_v1 索引的工作原理如下:对于每个列,ClickHouse 会生成一个 tokenbf_v1 过滤器。当插入新数据行时,ClickHouse 会将所有列的值分成单独的标记,并将这些标记添加到相应的 tokenbf_v1 过滤器中。在执行查询时,如果查询包含 WHERE 子句并使用了...

Connector/J 8.0 拦截器的使用与探索

2020-03-23
阅读 8 分钟
3.9k
connectionLifecycleInterceptors, where you specify the fully qualified names of classes that implement the com.mysql.cj.jdbc.interceptors.ConnectionLifecycleInterceptor interface. In these kinds of interceptor classes, you might log events such as rollbacks, measure the time between transaction s...

Go打包二进制文件

2020-03-10
阅读 1 分钟
7.2k
需求:打包部署到centos7笔者打包环境:mac os方法:进入main.go所在目录,输入如下命令,当前目录便会生成main的可执行文件

Kubernetes 学习笔记

2019-12-20
阅读 3 分钟
1.6k
概览 Kubernetes是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。 特点 可移植: 支持公有云,私有云,混合云,多重云 可扩展: 模块化, 插件化, 可挂载, 可组合 自动化: 自动部署,自动重启,自动复制,自动伸缩/扩展 传统的应用部署方式是通过插件或脚本来安装应用。这样...

命令行版 密钥管理工具

2019-11-21
阅读 1 分钟
1.6k
GitHub传送门:源码和发布包 安装 解压文件包 将文件包根目录配置到环境变量 快速上手 添加密钥 命令: yank add 会提示输入:标题、用户名、密码、备注 首次使用该密钥可能会要求设置初始PIN码(用作后续查找密钥) 查找密钥 命令: yank show 会提示输入PIN码 以模糊匹配方式按标题查找,会将所有匹配结果完整展示出来 ...

TopK算法性能对比

2019-08-23
阅读 3 分钟
3.4k
堆:一种数据结构,有最大堆和最小堆两种类型,实质上是一个完全二叉树,如果是最大堆,则父节点上的值比子节点上的值大,反之则是最小堆。而堆排序是一种比较高效的排序方式,时间效率为N*lgN,它利用最大堆的特性完成排序。

实现Java 阻塞队列

2019-08-08
阅读 6 分钟
3.2k
实现Java 阻塞队列 在自己实现之前先搞清楚阻塞队列的几个特点:基本队列特性:先进先出。写入队列空间不可用时会阻塞。获取队列数据时当队列为空时将阻塞。 实现队列的方式多种,总的来说就是数组和链表;其实我们只需要搞清楚其中一个即可,不同的特性主要表现为数组和链表的区别。 这里的 ArrayBlockingQueue 看名字...

Java集合框架图

2019-08-01
阅读 1 分钟
3.5k
Java集合框架整理 SVG原图下载 Collection Map

构建一个Java命令行工具

2019-07-31
阅读 2 分钟
5.1k
用Java创建一个命令行工具,实现常用的文件名批处理,今天才写了一点,还有很多不足。在网上也没查阅到如何构建命令行工具相关资料,希望各位看一下我的源码,为我的源码逻辑设计提供建议。

GET,POST与后端接口详记

2019-07-02
阅读 4 分钟
7.7k
在HTTP通信中主要分为GET和POST。如PUT,DELETE是类POST的传输方式,与POST没有实质区别。OPTION是查看服务器支持的请求方法。HEAD是测试服务器的该资源情况,不返回实体的主体部分。TRACE请求可以获取回服务器接收到的该请求的原始报文,从而判断路径中的代理和防火墙是否对该条请求进行修改。

HashMap源码阅读小记

2019-04-21
阅读 5 分钟
1.6k
1. HashMap中Node类: {代码...} 重写hashCode,key和value的hashcode取异或。 重写equals,当为同一个对象或是同一个key和同一个value都认为这两个对象相等。 2.散列值的计算 {代码...} 与无符号右移的自己异或同时兼顾了hash高16位和低16位,让散列值更散。 3. 关注 get(Object key) {代码...} 可以看出,get()是拿着ke...

从进程到线程学习记录

2019-03-28
阅读 1 分钟
1.3k
1.动态性: 创建而产生,调度而执行,撤销而消亡.具有生命周期.2.并发性: 与其他进程实体并发执行.3.独立性: 独立获取资源和独立接受调度的基本单位.4.异步性: 进程各自独立,不可预知的向前推进.

认识与实现Skip List

2019-03-27
阅读 5 分钟
2k
增加了向前指针的链表叫作跳表。跳表全称叫做跳跃表,简称跳表。跳表是一个随机化的数据结构,实质就是一种可以进行二分查找的有序链表。跳表在原有的有序链表上面增加了多级索引,通过索引来实现快速查找。跳表不仅能提高搜索性能,同时也可以提高插入和删除操作的性能。

Java类加载机制之双亲委派模型

2019-03-26
阅读 5 分钟
4.5k
双亲委派模型是Java加载类的机制.采用双亲委派模型的好处是Java类随着它的类加载器一起具备了一种带有优先级的层级关系,通过这种层级关系可以避免类的重复加载.

从clone方法到复制构造函数

2019-03-26
阅读 4 分钟
3k
在Java API中,可以通过实现Cloneable接口并重写clone方法实现克隆,但Java设计者否定了使用clone创建新对象的方法.

MySQL数据库的事务隔离和MVCC

2019-03-25
阅读 5 分钟
3.2k
事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性(isolation)、持久性(durability)的缩写,这四种状态的意思是:1.原子性(Atomicity)  原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操...

B树和哈希索引的比较

2019-03-25
阅读 2 分钟
2.5k
了解B树和哈希数据结构有助于预测查询在这些使用不同索引数据结构的存储引擎上的执行情况,特别是对于MEMORY存储引擎,它是允许您选择B树或哈希作为索引的存储引擎。

MySQL数据库索引

2019-03-24
阅读 1 分钟
2.3k
前言 存储引擎是数据库的核心,常用的MySQL存储引擎有InnoDB,MyISAM,memory.索引是加速数据的查询的一种数据结构. 1. 索引简介 1.1 索引优点 查询数据块 数据唯一性 加速表之间的连接 1.2 索引缺点 索引会占用存储空间,可能比本身的表数据还大 只对查有利,增加了增删改的负担 1.3 使用索引的注意事项 字段值差别大的数据...

MySQL数据库优化

2019-03-24
阅读 3 分钟
14.1k
数据库优化一方面是找出系统的瓶颈,提高MySQL数据库的整体性能,而另一方面需要合理的结构设计和参数调整,以提高用户的相应速度,同时还要尽可能的节约系统资源,以便让系统提供更大的负荷.

网络流量控制与拥塞控制详述

2019-03-15
阅读 2 分钟
2.6k
在复杂的网络通信中,网络交互在线路上产生巨大流量,由于设备性能的差异和缺陷,网络中发生像高速公路的拥塞也是很正常的,为了减少网络中数据拥塞和丢失所造成的损失,因此网络协议中采用了流量控制和拥塞控制技术.

java垃圾收集算法

2019-03-15
阅读 4 分钟
1.8k
基础背景 运行时数据区域 虚拟机结构图 程序计数器: 因为线程会切换,因此每个线程独有一份,用作在执行过程中记录编译后的class文件行号. 虚拟机栈:以栈帧为单位存放局部变量. Native方法栈:和虚拟机栈类似,不过,一个本地方法是这样一个方法:该方法的实现由非java语言实现,比如C语言实现。很多其它的编程语言都有这一...

传输层TCP/IP简记

2019-03-11
阅读 4 分钟
2.2k
这篇文章能帮助大家快速回忆计算机网络体系,当然短短的文章并不能深入表述,文章并未涉及网络层和数据链路层,重点叙述了传输层.可能有所不足或错误,也谢谢大家指出,共同进步

在TCP测试工具中发送HTTP信息

2019-03-10
阅读 1 分钟
5.4k
大家都知道,HTTP作为应用层协议,其实现主要还得感谢传输层提供端到端服务的TCP协议,TCP的三次握手和四次挥手完美的为HTTP提供稳定的传输服务.然而我们大多同学只是单纯的使用过这两种协议,今天笔者就小小尝试下在TCP测试工具中传输HTTP信息.

尾递归优化小记

2019-03-10
阅读 2 分钟
6.6k
一般地,对于java语言而言,普通的递归调用是在java虚拟机栈上完成的.假如a()是一个递归方法,那么在其内部再调用自己的时候,假设为a1(),那么a1()方法变量表将创建在a()方法栈帧之上,从而形成了一个新的栈帧.因此容易发现,在递归思想中,递归简化了问题的表达,但牺牲了虚拟机栈中的内存空间.

认识Restful API

2019-03-09
阅读 2 分钟
3.7k
REST,即Representational State Transfer的缩写。直接翻译的意思是"表现层状态转化"。它是一种互联网应用程序的API设计理念:URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作。

Java抽象类和接口小记

2019-03-07
阅读 1 分钟
1.4k
Java抽象类和接口实现了java的多态.多态是面向对象程序语言的核心,在项目开发过程中,其实很少使用抽象类,接口用得比较多,今天小记一下抽象类和接口的区别.

初识JAVA多线程编程

2019-03-01
阅读 4 分钟
1.3k
java多线程 1. 术语辨析 任务和线程是不同的,Java中Thread类本身不执行任何操作,它只驱动赋予它的任务,而Runnable才是定义任务的地方. 2. 创建任务的方式有两种 2.1 实现Runnable接口中的run方法 1.查看Runnable源码,可以看到只有一个run()方法 {代码...} 2.使用Runnable,直接继承即可,这样就创建了一个任务. {代码...} ...

tomcat设置默认路径致使项目url冲突解决方法

2019-01-20
阅读 2 分钟
3.5k
1.webapps下有两个项目 projectA,projectB.两个项目除开管理信息接口,其余都有安全验证机制.2.projectA由于未做前后端分离,因此静态资源也存在java项目中.在做静态资源中的接口请求时未写包名,比如登录,js代码会拼接服务器ip+端口+当前设置的url(/login),而未在/login前加上/projectA,所以在本机上测试没有问题,只有当部...