自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

勿忘初心

愿我所遇之人,所历之事,哪怕因为我有一点点变好,我就心满意足了。

  • 博客(1357)
  • 资源 (120)
  • 收藏
  • 关注

原创 Gin获取Response Body引发的OOM

同时根据请求的Header跳过SSE及Websocket请求,因为这两类流的请求记录到审计日志中意义不大,而且在json序列化的时候也会有问题。再看下代码,可以看到这个代码的逻辑是每一个请求都会将响应的Body完整的缓存在内存一份,对于响应体很大的请求,在这里就会造成内存暴涨,比如:像日志下载。我们在开发中基于Gin开发了一个Api网关,但上线后发现内存会在短时间内暴涨,然后被OOM kill掉。在图二中可以看到内存的增长是很快的,在一分半的时间内,内存增长了近2G。* 后来参考Echo,补上了这个功能。

2023-02-25 04:56:36 823

原创 权限的一种实现方式

权限的一种实现方式

2023-02-25 04:55:19 175

原创 身份的焦虑笔记

title: 身份的焦虑笔记本文整理自:《身份的焦虑》作者:【英】阿兰·德波顿生活就是用一种焦虑代替另一种焦虑,用一种欲望代替另一种欲望的过程。more我们身上那些更加隐秘的侧面——诸如我们的困惑、我们的愠怒,我们的罪恶感——有时竟然在某一书页上跟我们撞个正着,一种自我认同感于是油然而生。

2023-02-18 02:14:16 2054

转载 Git规范的必要性

分支管理代码提交在应该提交的分支随时可以切换到线上稳定版本代码多个版本的开发工作同时进行记录的可读性所有commit必须有注释,内容必须按照注释格式严格执行!正确为每个项目设置Git提交用到的user.name和user.email信息,以公司邮箱为准,不可随意设置以影响无法正确识别。查看当前项目配置信息的命令:git config -l版本号(tag)版本号(tag)命名规则主版本号.次版本号....

2023-02-12 09:26:52 243

原创 Slices in Golang

Slices in Golang

2023-02-07 18:27:44 180

原创 Golang PutUvarint Uvarint

GO Uvarint用法及代码示例

2022-12-23 22:00:00 385

原创 IDEA/GoLand 添加自定义特殊注释【注释高亮】

IDEA只有两种特殊注释:TODO: + 说明:FIXME: + 说明:

2022-11-29 14:58:21 2260

转载 Elasticsearch 缓存深度剖析:一次提高一种缓存的查询速度

Elasticsearch 缓存深度剖析:一次提高一种缓存的查询速度

2022-11-16 21:45:00 1769

原创 正则表达式(括号)、[中括号]、{大括号}的区别小结

正则表达式括号

2022-11-08 18:50:27 578

原创 客户中心架构设计

客户中心梳理

2022-10-27 18:46:43 1480

转载 十一(1)

下午我妈要去赶小市(就是去村里晚上卖菜啥的地方买点菜),我背有点不太舒服,就让她帮忙带盒膏药,然后,我妈兴高采烈的回来了,带了个这????​说大夫说了,这个比膏药好用多了(关键我也不是跌打损伤啊????)然后,顺便买了点​嘎啦,竟然10块钱一斤,这就是10块钱的,感觉一个好几毛钱(农村的物价不一定比城里便宜啊)​...

2022-10-01 20:01:53 344

原创 notepad++ --删除一行中指定字符后面的内容

notepad++ --删除一行中指定字符后面的内容

2022-09-08 17:47:22 5080 1

原创 Golang通过JSONP设置localstorage

Golang通过JSONP设置localstorage

2022-09-05 22:45:00 634

原创 ES Cluster in Red status: what about write & delete operations?

ES Cluster in Red status: what about write & delete operations?

2022-07-22 14:40:05 389

原创 Golang net/http 请求处理流程分析

Golang net/http 请求处理流程分析

2022-07-15 21:30:00 1398

原创 Golang写时复制是否是原子性的?

验证代码:汇编代码:下面主要看下21行对应的汇编:基础知识补充:MOVQmovb(8位)、movw(16位)、movl(32位)、movq(64位)寄存器寻址:https://blog.csdn.net/luoyhang003/article/details/46786591/TEST指令的行为与AND指令一样,除了不改变目的寄存器的值。例如,testq %rax, %rax 用来检查 %rax 是负数、零、还是正数。https://stackoverflow.com/questions/1

2022-07-07 21:45:00 1117

原创 《剑来》语句摘录(七)

第935章想人的时候喝酒,想事的时候喝茶。第949章姜尚真懒洋洋道:“帮人夜中打灯笼,帮人雨中撑伞,到头来只被嫌弃灯火不亮堂,埋怨雨水湿了鞋。”崔东山双手笼袖,“你得这么想,没有这些人心,强者何必奋起?”人生路上,真正的过失,错过和失去的,不是什么擦肩而过的机缘,不是失之交臂的贵人,而是那些原本有机会改正的错误。然后错过就失去。第950章今儿吃得下,穿得暖睡得着,明...

2022-07-04 21:00:11 2787 2

原创 使用 nsenter 进入 netns 抓包

我们使用 Kubernetes 时难免发生一些网络问题,往往需要进入容器的网络命名空间 (netns) 中,进行一些网络调试来定位问题,本文介绍如何进入容器的 netns。使用 kubectl 获取 pod 中任意 cotnainer 的 id:输出示例片段1 (containerd运行时):输出示例片段2 (dockerd运行时):获取 PID拿到 container id 后,我们登录到 pod 所在节点上去获取其主进程 pid。containerd 运行时使用 crictl 命令获取:do

2022-06-08 18:19:11 1045 1

原创 Nginx 代理MySQL

docker-compose.ymlversion: '2.0'services: nginx: restart: always image: nginx:1.13.9-alpine ports: - 63307:63306 volumes: - ./nginx.conf:/etc/nginx/nginx.confnginx配置文件user nginx;worker_processes 1;error_log /var/lo

2022-04-28 17:49:59 8597

原创 MySQL 可重复读隔离级别与幻读

在MySQL可重复读的隔离级别下,能很大程度上避免幻读,而不能完全避免。场景复现环境信息:MySQL版本:5.7.23-log隔离级别:REPEATABLE-READ测试数据:SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for app_record_lock_test-- ----------------------------DR.

2022-03-16 17:40:25 2645

原创 【Elasticsearch源码】 更新性能分析

带着疑问学源码,第三篇:Elasticsearch 更新性能代码分析基于:https://github.com/jiankunking/elasticsearchElasticsearch 7.10.2+目的在看源码之前先梳理一下,自己对于更新疑惑的点:为什么Elasticsearch更新与写入的性能会有比较大的差异?源码分析建议先看一下:【Elasticsearch源码】 写入分析在【Elasticsearch源码】 写入分析中可以看到bulk请求最终在TransportShardB.

2022-03-16 17:25:01 2746

原创 计算机存储单位换算

bit、byte、KB、MB、GB常见的单位换算如下:1 byte = 8 bit1 KB = 210 byte = 1024 byte ≈ 103 byte1 MB = 220 byte ≈ 10 6 byte1 GB = 230 byte ≈ 10 9 byte1 亿 = 1081 个整数占 4 byte,1 亿个整数占 4*108 byte ≈ 400 MB。...

2022-03-16 17:24:14 4572

原创 时间的量级

本文整理自:《性能之巅》作者:【美】 Brendan Gregg英文版出版时间:2014年我们可以用数字来作为时间的比较方法,同时可以用时间的长短经验来判断延时的源头。系统各组件的操作所处的时间量级差别巨大,大到了难以体会的地步。表2.2提供的延时示例,从访问3.3GHz的CPU寄存器的延时开始,阐释了我们所打交道的时间量级的差别,表中是发生单次操作的时间均值,等比放大成为想象的系统,一次寄存器访问0.3ns(十亿分之一秒的三分之一)相当于现实生活中的1秒。表2.2 系统的各种延时事件

2022-03-16 17:23:15 1869

原创 [转]7.7 版本中的新改进:显著降低 Elasticsearch 堆内存使用量

原文地址:https://www.elastic.co/cn/blog/significantly-decrease-your-elasticsearch-heap-memory-usage由于 Elasticsearch 用户不断突破在 Elasticsearch 节点上存储的数据量的极限,所以他们有时会在耗尽磁盘空间之前就将堆内存用完了。对于这些用户来说,这个问题难免让他们沮丧,因为每个节点拟合尽可能多的数据通常是降低成本的重要手段。但为什么 Elasticsearch 需要堆内存来存储数据.

2022-03-16 17:22:05 1074

原创 Sentry 高可用部署

Sentry 高可用部署,部署分析基于Sentry 10.1.0.dev 05e720a7对应dockerhub镜像版本分别为:getsentry/snuba:31c967e774759c0548652d986645fdff844e0a39getsentry/sentry:8549f2a492c803bab77af26e7417272975b9369agetsentry/symbolicator:94cdbb7b543ebe53744144305db21a56b6a0d5a8Sentry官方.

2022-03-16 17:21:31 4282 8

原创 [译]ElasticSearch中如何处理关联数据?

Inner Object、Nested、Parent/Child、Denormalization现实世界中的数据很少是简单的–通常情况下,数据之间有着错综复杂的联系。你如何在 Elasticsearch 中表示关系数据? 有几种机制可用于提供关系支持。 每个都有其优点和缺点,使它们适用于不同的情况。Inner Objects最简单的机制被命名为“内部对象”。 它们是嵌入在父文档中的JSON对象:{ "name": "Zach", "car": { "make":

2022-03-16 17:19:20 1821

原创 Kubernetes中Java应用Heap Dump

Dump Java Heap to OSS伴随着微服务及容器化的发展,越来越多的应用运行在kubernetes集群中,运维、调试的问题也随之而来。以Java为例,当线上环境出现内存问题,比如OOM,这时候需要Dump内存进行分析的时候,就会发现对于普通开发人员来说他们没有操作kubernetes集群机器的权限,从而导致,Dump出来的文件无法回传到开发手中进行MAT之类的分析。本文的解决办法是这样的,当用户需要Dump某个应用实例的时候,只需要在实例终端界面点击一下按钮,后台会自动Dump Hea.

2022-03-16 17:15:28 2219

原创 Elasticsearch 集群内应该设置多少个分片(shard)?

我应该设置多少个分片?我应该设置多大的分片?Elasticsearch 是一个功能十分丰富的平台,支持各种用例,能够在数据整理和复制战略方面提供很大的灵活性。然而这一灵活性有时也会带来困扰,让您在前期难以确定如何最好地将数据整理为索引和分片,如果您刚上手使用 Elastic Stack,这一点可能更明显。如果未能做出最佳选择,尽管这在开始的时候可能不会造成问题,但随着数据量越来越大,便有可能会引发性能问题。集群中的数据越多,要纠正这一问题就越难,这是因为有时必须对大量数据进行重新索引。据我们了解,当

2022-03-16 17:13:27 3776

原创 encrypted communication elasticsearch java rest client

ElasticSearch 7.3.1Java Rest Client HTTPS连接操作ElasticSearch版本7.3.1,elasticsearch.yml配置如下:xpack.security.enabled: truexpack.security.transport.ssl.enabled: truexpack.security.transport.ssl.verification_mode: certificatexpack.security.transport.ssl.k.

2022-03-16 17:11:40 1802

原创 【Elasticsearch源码】 写入分析

带着疑问学源码,第一篇:Elasticsearch写入代码分析基于:https://github.com/jiankunking/elasticsearchElasticsearch 7.10.2+目的在看源码之前先梳理一下,自己对于写入流程疑惑的点:Elasticsearch写入是等待所有副本都写入完成了才返回还是只要主副本写入了就返回?副本写入成功的标准是什么?wait_for_active_shard参数的作用是啥?源码分析第二部分是代码分析的过程,不想看的朋友可以跳过直接看第.

2022-03-16 17:10:45 2432

原创 【Elasticsearch源码】 检索分析

带着疑问学源码,第二篇:Elasticsearch 搜索代码分析基于:https://github.com/jiankunking/elasticsearchElasticsearch 7.10.2+目的在看源码之前先梳理一下,自己对于检索流程疑惑的点:当索引是按照日期拆分之后,在使用-* 检索,会不会通过索引层面的时间配置直接跳过无关索引?使用*会对性能造成多大的影响?源码分析第二部分是代码分析的过程,不想看的朋友可以跳过直接看第三部分总结。分析的话,咱们就以_search操作为主线.

2022-03-16 17:09:41 3873

原创 Elasticsearch From/Size、Scroll、Search After对比

Elasticsearch From/Size、Scroll、Search After对比From/Size可以使用from和size参数对结果进行分页。from参数定义要获取的第一个结果的偏移量。 size 参数允许您配置要返回的最大匹配数。简单来说,需要查询from + size 的条数时,coordinate node就向该index的其余的shards 发送同样的请求,等汇总到(shards * (from + size))条数时在coordinate node再做一次排序,最终抽取出.

2022-03-16 17:08:38 4375

原创 Elasticsearch Refresh vs Flush

Elasticsearch Refresh和Flush区别Refresh使用refresh API显式刷新一个或多个索引。 如果请求以数据流为目标,则刷新该流的后台索引。刷新使自上次刷新以来对索引执行的所有操作都可用于搜索。默认情况下,Elasticsearch会定期每秒刷新一次索引,但仅在最近30秒内收到搜索请求的索引上刷新。也可以使用index.refresh_interval设置更改此默认间隔。刷新请求是同步的,并且在刷新操作完成之前不会返回响应。Flush通过刷新data stre.

2022-03-16 16:59:29 1164

原创 [译]eBay Elasticsearch性能调优实践

翻译自:Elasticsearch Performance Tuning Practice at eBay地址:https://tech.ebayinc.com/engineering/elasticsearch-performance-tuning-practice-at-ebayElasticsearch是一个基于Apache Lucene的开源搜索和分析引擎,允许用户近实时地存储、搜索和分析数据。在eBay上承载Elasticsearch集群的平台Pronto,使eBay内部客户可以轻松地.

2022-03-16 16:58:37 1740 1

原创 【Elasticsearch源码】 节点关闭分析

带着疑问学源码,第六篇:Elasticsearch 节点关闭分析代码分析基于:https://github.com/jiankunking/elasticsearchElasticsearch 7.10.2+目的在看源码之前先梳理一下,自己对于节点关闭流程疑惑的点:节点关闭都做了哪些检查?kill ES进程来关闭节点是否安全?普通节点关闭与Master节点关闭有什么区别?正在写入数据的节点,在关闭的时候,会发生什么?源码分析在节点启动过程中,Bootstrap#setup方法中.

2022-03-16 16:57:57 1571

原创 【Elasticsearch源码】 节点启动分析

带着疑问学源码,第五篇:Elasticsearch 节点启动分析代码分析基于:https://github.com/jiankunking/elasticsearchElasticsearch 7.10.2+目的在看源码之前先梳理一下,自己对于节点启动流程疑惑的点:节点启动都做了哪些检查?节点启动都初始化了哪些内容?当节点启动后,数据迁移是在哪里处理?源码分析先从启动脚本中找到启动类的入口:org.elasticsearch.bootstrap.Elasticsearch。下面.

2022-03-16 16:56:40 2202

原创 ElasticSearch的一些限制

ElasticSearch 限制1、 数组字段,数组大小无限制。There is no hard limit but it’s definitely recommended to keep those arrays “reasonable”. When performing an update, Elasticsearch needs to fetch the entire doc, apply the update, then index the updated document and rep.

2022-03-16 16:54:40 2688

原创 【Elasticsearch源码】 GET分析

带着疑问学源码,第四篇:Elasticsearch GET代码分析基于:https://github.com/jiankunking/elasticsearchElasticsearch 7.10.2+通过前3篇的学习,可以稍微总结一下Elasticsearch:ES是一个集群,所以每个Node都需要和其他的Nodes 进行交互,这些交互是通过NodeClient来完成。ES中RPC、HTTP请求都是基于Netty自行封装的:NettyTransport 对应RPC协议支持Netty.

2022-03-16 16:53:53 2090

原创 [译]Elasticsearch集群规模和性能调优

翻译自:Elasticsearch Cluster Sizing and Performance Tuning地址:https://www.elastic.co/cn/blog/found-sizing-elasticsearch集群应该有多少个节点?应该创建多少个副本?为了获得最佳的搜索性能,分片(Shard)的最佳平均大小是多少?诸如此类的问题只有你自己知道答案。没有人知道你的数据和查询结构,你使用的硬件,你的吞吐量。没有数学公式,也没有理论计算方法。如果你带着这样的期望而来,我很抱歉让你失.

2022-03-16 16:52:47 549

原创 Elasticsearch Breaker CircuitBreakingException Parent Data Too Large Real Usage

indices.breaker.total.use_real_memory 引发的问题最近业务日志es(7.6.2)集群,写入时经常返回以下异常:2020-11-24T02:59:05.557085524Z {"type": "server", "timestamp": "2020-11-24T02:59:05,556Z", "level": "DEBUG", "component": "o.e.a.a.c.n.i.TransportNodesInfoAction", "cluster.name".

2022-03-16 16:51:29 617

zookeeper开源客户端Curator

Curator是Netflix公司开源的一套ZooKeeper客户端框架,Curator解决了很多ZooKeeper客户端非常底层的细节开发工作,包括连接重连、反复注册Watcher和NodeExistsException异常等,实现了Fluent风格的API接口,目前已经成为Apache的顶级项目,是全世界范围内使用最广泛的ZooKeeper客户端之一。

2017-03-25

zookeeper开源客户端ZkClient使用

ZkClient是Github上一个开源的ZooKeeper客户端。ZkClient在ZooKeeper原生 API接口之上进行了包装,是一个更加易用的ZooKeeper客户端。同时,ZkClient在内部实现了诸如Session超时重连、Watcher反复注册等功能。

2017-03-25

zookeeper客户端api使用

zookeeper客户端api使用

2017-03-25

idea build 无war包

idea build 无war包

2017-03-15

阿里巴巴Java开发手册(正式版)

阿里巴巴Java开发手册(正式版)

2017-02-09

Spring2.5-中文参考手册

Spring2.5-中文参考手册

2016-12-24

java jdk 动态代理 演示demo

java jdk 动态代理 演示demo

2016-10-30

深入理解Java虚拟机——JVM高级特性与最佳实践(第2版)

深入理解Java虚拟机——JVM高级特性与最佳实践(第2版)

2016-10-09

韩顺平 mysql读写分离实现

韩顺平 mysql读写分离实现 本人未测试,仅仅是分享备份

2016-10-07

Java 反射详解(包含私有方法属性的调用)

Java 反射详解(包含私有方法属性的调用)

2016-09-16

Java 反射详解

Java 反射详解

2016-09-16

Activiti 学习笔记14:工作流定义的角色组

Activiti 学习笔记14:工作流定义的角色组

2016-09-14

Activiti 学习笔记13:分配组任务

Activiti 学习笔记13:分配组任务

2016-09-13

Activiti 学习笔记12:分配个人任务

Activiti 学习笔记12:个人任务

2016-09-11

Activiti 学习笔记11 接收活动(receiveTask,即等待活动)

Activiti 学习笔记11:接收活动(receiveTask,即等待活动)

2016-09-11

Activiti 学习笔记十:开始活动节点(判断流程是否结束及查询历史)

Activiti 学习笔记十:开始活动节点(判断流程是否结束及查询历史)

2016-09-11

Activiti 学习笔记九:并行网关(parallelGateWay)

Activiti 学习笔记九:并行网关(parallelGateWay)

2016-09-11

Activiti 学习笔记八:排他网关(ExclusiveGateWay)

Activiti 学习笔记八:排他网关(ExclusiveGateWay)

2016-09-08

Activiti 学习笔记七:连线(SequenceFlow)

Activiti 学习笔记七:连线(SequenceFlow)

2016-09-08

Activiti 学习笔记六:流程执行历史记录

Activiti 学习笔记六:流程执行历史记录

2016-09-06

企业数字化转型成熟度模型IOMM.zip

企业数字化转型成熟度模型IOMM

2021-11-25

Java volatile与AQS锁内存可见性

从JUC中的AQS引入,讲解Java volatile与AQS锁内存可见性

2018-09-11

ELK使用教程

ELK使用教程

2018-07-22

Java并发编程的艺术

Java并发编程的艺术 Java并发编程的艺术 Java并发编程的艺术

2018-04-25

java cpu 内存占用高 问题 模拟并排查

java cpu 内存占用高 问题 模拟并排查 https://blog.csdn.net/jiankunking/article/details/79749836 https://blog.csdn.net/jiankunking/article/details/79749483

2018-03-29

jad java 反编译工具

jad java 反编译 工具 jad java 反编译 工具 jad java 反编译 工具

2018-02-23

图解HTTP+彩色版

图解HTTP+彩色版 图解HTTP+彩色版 图解HTTP+彩色版 图解HTTP+彩色版

2018-02-15

理解 channels - Kavya Joshi

理解 channels ppt - Kavya Joshi 理解 channels ppt- Kavya Joshi 理解 channels ppt- Kavya Joshi

2018-01-18

golang work steal调度算法

golang work steal调度算法 文档 golang work steal调度算法 文档

2018-01-14

Go 1.9 sync Map 分析图

Go 1.9 sync Map 分析图 Go 1.9 sync Map 分析图 Go 1.9 sync Map 分析图

2017-12-15

Paxos图解(xmid图解)

Paxos图解(xmid图解)

2017-06-12

从PAXOS到ZOOKEEPER分布式一致性原理与实践

PAXOS到ZOOKEEPER分布式一致性原理与实践

2017-06-12

Spring boot restful api demo

Spring boot restful api demo

2017-05-29

java并发编程实战pdf及源码

java并发编程实战pdf及源码

2017-05-24

jstorm集成kafka插件demo

jstorm集成kafka插件demo

2017-04-29

storm集成kafka插demo.zip

storm集成kafka插件demo

2017-04-29

Storm 上手 demo 例子 演示

Storm demo 例子 案例

2017-04-19

Logstash ruby 插件 demo

Logstash ruby 插件 demo

2017-04-05

zookeeper常见应用场景简单实现及ppt

1、master选举:mastersel 2、数据的发布和订阅:subscribe 3、负载均衡:balance 4、分布式锁:lock 5、分布式队列:queue 6、命名服务:nameservice 演示代码下载(代码来自极客学院演示demo):

2017-03-26

zookeeper应用场景实现demo及ppt资料

1、master选举:mastersel 2、数据的发布和订阅:subscribe 3、负载均衡:balance 4、分布式锁:lock 5、分布式队列:queue 6、命名服务:nameservice 资料来自极客学院

2017-03-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除