衣舞晨风

勿忘初心
私信 关注
衣舞晨风
码龄11年

微信公众号【衣舞晨风】

  • 5,295,141
    被访问量
  • 968
    原创文章
  • 132
    作者排名
  • 2,748
    粉丝数量
  • 毕业院校 山东财经大学
  • 目前就职 jiankunking
  • 于 2010-04-20 加入CSDN
获得成就
  • 博客专家认证
  • 获得1,333次点赞
  • 内容获得687次评论
  • 获得2,133次收藏
荣誉勋章
兴趣领域
  • #后端
    #Linux#Redis#Java#c#/.net/asp#Elasticsearch#Spring Boot#Go/GoLang#MySQL#分布式#架构#Spring
TA的专栏
  • C#
    207篇
  • Java
    84篇
  • Go
    32篇
  • Spring
    21篇
  • JavaScript
    12篇
  • MySQL
    31篇
  • Docker
    25篇
  • Linux
    44篇
  • Kafka
    8篇
  • 编码规范
    7篇
  • jQuery
    5篇
  • 网络
    18篇
  • OS
    8篇
  • Xml
    19篇
  • Kubernetes
    5篇
  • Oracle
    53篇
  • Sql Server
    66篇
  • Html 5
    2篇
  • 数据库
    35篇
  • WCF
    32篇
  • 性能
    6篇
  • ElasticSearch
    24篇
  • SQLite
    1篇
  • Log4
    3篇
  • 设计模式
    9篇
  • MongoDB
  • Asp.Net
    16篇
  • WinForm
    17篇
  • CLR
    2篇
  • IIS
    9篇
  • HTML+CSS
    12篇
  • Tomcat
    2篇
  • MyBatis
    12篇
  • Visual Studio
    38篇
  • Windows环境
    38篇
  • Web
    3篇
  • Eclipse与IDEA
    10篇
  • NHibernate
    1篇
  • 礼仪
    2篇
  • 工作杂谈(非技术)
    25篇
  • ERP与会计基础
    6篇
  • 生活
    36篇
  • Software Activat
    5篇
  • 排序算法及算法基础
    14篇
  • 工具软件、用法、资源
    43篇
  • 生活中的经济与心理
    10篇
  • DevExpress控件
    43篇
  • 各类有趣算法
    5篇
  • 面试
    6篇
  • 知识拓展
    2篇
  • Webstorm
    1篇
  • BPM与Activiti
    32篇
  • Maven
    2篇
  • 奇葩问题
    3篇
  • Markdown
    2篇
  • Shell
    1篇
  • ZooKeeper
    14篇
  • UML
    1篇
  • Logstash
    10篇
  • JStorm
    4篇
  • 正则表达式
    1篇
  • OpenTSDB
    1篇
  • Filebeat
    2篇
  • 计算机基础
    3篇
  • Prometheus
    1篇
  • Dropwizard
    1篇
  • 脑筋急转弯
    1篇
  • Python
    5篇
  • 研发管理
    2篇
  • 分布式
    8篇
  • Architecture
    4篇
  • GC
    6篇
  • 缓存
  • OAuth
    1篇
  • Sales and Distribution
  • GitHub
    1篇
个人微信公众号

精选重磅好文,专注于源码解析、架构设计。 关注一下呗。
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

Elasticsearch索引和查询性能调优

Elasticsearch索引和查询性能调优的21条建议【上】Elasticsearch索引和查询性能调优的21条建议【下】
原创
96阅读
1评论
0点赞
发布博客于 2 月前

Elasticsearch Refresh和Flush区别

Refresh使用refresh API显式刷新一个或多个索引。 如果请求以数据流为目标,则刷新该流的后台索引。刷新使自上次刷新以来对索引执行的所有操作都可用于搜索。默认情况下,Elasticsearch会定期每秒刷新一次索引,但仅在最近30秒内收到搜索请求的索引上刷新。也可以使用index.refresh_interval设置更改此默认间隔。刷新请求是同步的,并且在刷新操作完成之前不会返回响应。Flush通过刷新data stream或者index将当前仅存储在事务日志中的数据永久存储到Luce
原创
124阅读
0评论
0点赞
发布博客于 2 月前

Kafka存储在Zookeeper中的数据

#App Config Dashboard (ACD) dump created on :Mon Dec 21 16:31:38 CST 2020/admin=delete_topics=/brokers/ids=188={"listener_security_protocol_map":{"PLAINTEXT":"PLAINTEXT"},"endpoints":["PLAINTEXT://10.138.16.188:9092"],"jmx_port":-1,"port":9092,"host":"1.
原创
108阅读
0评论
0点赞
发布博客于 2 月前

Kubernetes中Java应用Heap Dump

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

阿里 Arthas 读书笔记

thread查看当前线程信息,查看线程的堆栈。参数说明:参数名称参数说明示例id线程id[n:]指定最忙的前N个线程并打印堆栈thread -n 3[b]找出当前阻塞其他线程的线程thread -b[i ]指定cpu占比统计的采样间隔,单位为毫秒注意, 目前只支持找出synchronized关键字阻塞住的线程, 如果是java.util.concurrent.Lock, 目前还不支持。jvm查看当前JVM信息。使用参考:$ jv
原创
60阅读
1评论
0点赞
发布博客于 2 月前

Elasticsearch 常用命令 持续更新

_reindexcurl --location --request POST 'http://10.138.25.214:9200/_reindex' \--header 'Content-Type: application/json' \--data-raw '{ "source": { "index": "deploy-log" }, "dest": { "index": "deploy-log-2018.12.24" }}'创建indexcurl .
原创
89阅读
0评论
0点赞
发布博客于 2 月前

个人常用命令集锦 持续更新

OS1、 立刻关机halt2、 centos安装yumapt-get install yum3、 查找文件夹find / - name 需要查找文件名称4、 vi里面 查找字符串“/”,后面跟要查找的字符串,再按回车。vi将光标定位在该串下一次出现的地方上。键入n跳到该串的下一个出现处,键入N跳到该串的上一个出现处。要查找一个以search为行首的行,则键入/^search ,要查找一个以search为行尾的行,则键入/search$。5、 解压tar -zxvf archive
原创
955阅读
0评论
1点赞
发布博客于 2 月前

Elasticsearch Refresh vs Flush

Refresh使用refresh API显式刷新一个或多个索引。如果请求以数据流为目标,则刷新该流的后台索引。刷新使自上次刷新以来对索引执行的所有操作都可用于搜索。默认情况下,Elast...
原创
22阅读
0评论
1点赞
发布博客于 3 月前

《剑来》语句摘录(五)

讲道理,做好人,竟然也是要让人额外付出代价的,这个道理本身,我当初一开始知道的时候,确实有些难以接受。只不过经历人事稍多,真正想通,真心接受了,反而更容易看得开诸多揪心事。正因为道理不好...
原创
241阅读
2评论
0点赞
发布博客于 3 月前

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

Elasticsearch 是一个功能十分丰富的平台,支持各种用例,能够在数据整理和复制战略方面提供很大的灵活性。然而这一灵活性有时也会带来困扰,让您在前期难以确定如何最好地将数据整理为...
原创
824阅读
1评论
1点赞
发布博客于 6 月前

Java Volatile Keyword

Java volatile关键字用于将Java变量标记为“存储在主内存中”。更准确地说,这意味着对volatile变量的每次读取都将从计算机的主存中读取,而不是从CPU缓存中读取,而且对...
原创
107阅读
0评论
1点赞
发布博客于 7 月前

远方的海、远方的山

发布Blink于 8 月前

复杂度分析。估算问题中复杂度的上限和下限。 定位问题。根据问题类型,确定采用何种算法思维。 数据操作分析。根据增、删、查和数据顺序关系去选择合适的数据结构,利用空间换取时间。 编码实现。

发布Blink于 9 月前

Kafka 在 ZooKeeper 中保存了哪些信息?

发布Blink于 9 月前

在压缩时,给定的被压缩数据它必须有确定的长度,或者说,是有头有尾的,不能是一个无限的数据流,如果要对流数据进行压缩,那必须把流数据划分成多个帧,一帧一帧的分段压缩。 主要原因是,压缩算法在开始压缩之前,一般都需要对被压缩数据从头到尾进行一次扫描,扫描的目的是确定如何对数据进行划分和编码,一般的原则是重复次数多、占用空间大的内容,使用尽量短的编码,这样压缩率会更高。 另外,被压缩的数据长度越大,重码率会更高,压缩比也就越高。这个很好理解,比如我们这篇文章,可能出现了几十次“压缩”这个词,如果将整篇文章压缩,这个词的重复率是几十次,但如果我们按照每个自然段来压缩,那每段中这个词的重复率只有二三次。显然全文压缩的压缩率肯定高于分段压缩。 当然,分段也不是越大越好,实际上分段大小超过一定长度之后,再增加长度对压缩率的贡献就不太大了,这是一个原因。另外,过大的分段长度,在解压缩的时候,会有更多的解压浪费。比如,一个 1MB 大小的压缩文件,即使你只是需要读其中很短的几个字节,也不得不把整个文件全部解压缩,造成很大的解压浪费。 所以,你需要根据你的业务,选择合适的压缩分段,在压缩率、压缩速度和解压浪费之间找到一个合适的平衡。

 
发布Blink于 9 月前

面对这么多种序列化实现,我们该如何选择呢?你需要权衡这样几个因素: 序列化后的数据最好是易于人类阅读的; 实现的复杂度是否足够低; 序列化和反序列化的速度越快越好; 序列化后的信息密度越大越好,也就是说,同样的一个结构化数据,序列化之后占用的存储空间越小越好; 当然,不会存在一种序列化实现在这四个方面都是最优的,否则我们就没必要来纠结到底选择哪种实现了。因为,大多数情况下,易于阅读和信息密度是矛盾的,实现的复杂度和性能也是互相矛盾的。所以,我们需要根据所实现的业务,来选择合适的序列化实现。

 
发布Blink于 9 月前

Sentry:如何从数据存储中获得更强的一致性

Sentry的首要工作是接收、解析用户的异常信息。当用户异常信息大量上报时,Sentry的流量将达到高峰。同时,提供近实时的错误追踪,对于用户是有帮助的。这里有两个相互排斥的地方:事件(...
原创
638阅读
0评论
1点赞
发布博客于 9 月前

使用notepad++批量在每行首尾添加内容

原始数据8800313755880001839488002269528800208711880015516488001558078800013279870000971588002430328800108388880000541888002361278800231629880019079988001395658800194458行首添加"首先在把光标放置在序号之前之后,使用快捷键Alt+C,快速打开列块编辑对话框。替换完之后:"8800313755"8800018
原创
2901阅读
0评论
0点赞
发布博客于 9 月前

排序,就是让一组无序数据变成有序的过程。 一般默认这里的有序都是从小到大的排列顺序。 衡量一个排序算法的优劣,我们主要会从以下 3 个角度进行分析: 1.时间复杂度,具体包括,最好时间复杂度、最坏时间复杂度以及平均时间复杂度。 2.空间复杂度,如果空间复杂度为 1,也叫作原地排序。 3.稳定性,排序的稳定性是指相等的数据对象,在排序之后,顺序是否能保证不变。

 
发布Blink于 9 月前

分治法的使用方法 前面我们讲到分治法的核心思想是“分而治之”,当你需要采用分治法时,一般原问题都需要具备以下几个特征: 难度在降低,即原问题的解决难度,随着数据的规模的缩小而降低。这个特征绝大多数问题都是满足的。 问题可分,原问题可以分解为若干个规模较小的同类型问题。这是应用分治法的前提。 解可合并,利用所有子问题的解,可合并出原问题的解。这个特征很关键,能否利用分治法完全取决于这个特征。 相互独立,各个子问题之间相互独立,某个子问题的求解不会影响到另一个子问题。如果子问题之间不独立,则分治法需要重复地解决公共的子问题,造成效率低下的结果。 根据前面我们对分治法的分析,你一定能迅速联想到递归。分治法需要递归地分解问题,再去解决问题。因此,分治法在每轮递归上,都包含了分解问题、解决问题和合并结果这 3 个步骤。

 
发布Blink于 9 月前

什么是递归 在数学与计算机科学中,递归 (Recursion))是指在函数的定义中使用函数自身的方法,直观上来看,就是某个函数自己调用自己。 递归有两层含义: 递归问题必须可以分解为若干个规模较小、与原问题形式相同的子问题。并且这些子问题可以用完全相同的解题思路来解决; 递归问题的演化过程是一个对原问题从大到小进行拆解的过程,并且会有一个明确的终点(临界点)。一旦原问题到达了这个临界点,就不用再往更小的问题上拆解了。最后,从这个临界点开始,把小问题的答案按照原路返回,原问题便得以解决。 简而言之,递归的基本思想就是把规模大的问题转化为规模小的相同的子问题来解决。 在函数实现时,因为大问题和小问题是一样的问题,因此大问题的解决方法和小问题的解决方法也是同一个方法。这就产生了函数调用它自身的情况,这也正是递归的定义所在。 格外重要的是,这个解决问题的函数必须有明确的结束条件,否则就会导致无限递归的情况。总结起来,递归的实现包含了两个部分,一个是递归主体,另一个是终止条件。

 
发布Blink于 9 月前

遍历一棵树,有非常经典的三种方法,分别是前序遍历、中序遍历、后序遍历。这里的序指的是父结点的遍历顺序,前序就是先遍历父结点,中序就是中间遍历父结点,后序就是最后遍历父结点。不管哪种遍历,都是通过递归调用完成的: 前序遍历,对树中的任意结点来说,先打印这个结点,然后前序遍历它的左子树,最后前序遍历它的右子树。 中序遍历,对树中的任意结点来说,先中序遍历它的左子树,然后打印这个结点,最后中序遍历它的右子树。 后序遍历,对树中的任意结点来说,先后序遍历它的左子树,然后后序遍历它的右子树,最后打印它本身。

 
发布Blink于 9 月前

程序优化的最核心的思路,我们简单梳理如下: 第一步,暴力解法。在没有任何时间、空间约束下,完成代码任务的开发。 第二步,无效操作处理。将代码中的无效计算、无效存储剔除,降低时间或空间复杂度。 第三步,时空转换。设计合理数据结构,完成时间复杂度向空间复杂度的转移。

 
发布Blink于 9 月前

云原生时代的Spring Boot

Spring Boot毫无疑问是Java后端开发的第一大框架,基于Spring Boot有着一套完整的工具链,各种各样的starter。对于日常业务开发而言,可以说是轮子很全。但随着云原...
原创
813阅读
0评论
1点赞
发布博客于 9 月前

Go 并发 : Context

翻译自:Go Concurrency Patterns: Context地址:https://blog.golang.org/context简介在Go server端,每个请求都是通过新...
原创
219阅读
0评论
1点赞
发布博客于 10 月前

关于Go net/http 超时完全指南

翻译自:The complete guide to Go net/http timeouts地址:https://blog.cloudflare.com/the-complete-gui...
原创
623阅读
0评论
1点赞
发布博客于 11 月前

Spring Boot 2.3 新特性 优雅退出

在最新版的Spring Boot 2.3中终于集成了优雅退出(Graceful shutdown),在官方文档中可以看到内置的 web 服务器(Jetty、Reactor Netty、T...
原创
2701阅读
0评论
2点赞
发布博客于 11 月前

通过Docker部署ZooKeeper集群

容器化部署ZooKeeper集群
原创
291阅读
0评论
1点赞
发布博客于 1 年前

通过Docker部署Elasticsearch集群

容器化部署Elasticsearch集群及Kibana
原创
1116阅读
0评论
1点赞
发布博客于 1 年前

《剑来》语句摘录(四)

1、境界高了,兴许会有新烦忧接踵而至,但是有一点好,修道之人的境界,真的可以解决掉很多麻烦,境界一高,诸多麻烦,自行退散。福缘不请自来,恶客不斥自走。2、许多微妙心态,在人生道路上,会是...
原创
3681阅读
0评论
5点赞
发布博客于 1 年前

验房的时候,大家都请验房师吗?

 
发布Blink于 1 年前
发布Blink于 1 年前

Elasticsearch索引和查询性能调优的21条建议【下】

Elasticsearch是一款流行的分布式开源搜索和数据分析引擎,具备高性能、易扩展、容错性强等特点。它强化了Apache Lucene的搜索能力,把掌控海量数据索引和查询的方式提升到...
转载
329阅读
0评论
1点赞
发布博客于 1 年前

Elasticsearch索引和查询性能调优的21条建议【上】

Elasticsearch是一款流行的分布式开源搜索和数据分析引擎,具备高性能、易扩展、容错性强等特点。它强化了Apache Lucene的搜索能力,把掌控海量数据索引和查询的方式提升到...
转载
614阅读
1评论
1点赞
发布博客于 1 年前

SQL UNION vs OR 性能

本文整理自:stackoverflow翻译自Bill Karwin回答:要么你读的那篇文章用了一个不好的例子,要么你误解了他们的观点。select username from users where company = 'bbc' or company = 'itv';等价于:select username from users where company IN ('bbc', '...
原创
889阅读
1评论
2点赞
发布博客于 1 年前

Elasticsearch集群规模和性能调优

翻译自:Elasticsearch Cluster Sizing and Performance Tuning地址:https://www.elastic.co/cn/blog/found-sizing-elasticsearch集群应该有多少个节点?应该创建多少个副本?为了获得最佳的搜索性能,分片(Shard)的最佳平均大小是多少?诸如此类的问题只有你自己知道答案。没有人知道你的数据...
原创
811阅读
0评论
3点赞
发布博客于 1 年前

《剑来》语句摘录(三)

1、故作轻松语,定有难以释怀事。2、总有那么一些人,想到了便会安心些。3、所有难熬又熬过去的苦难,就是在心头砸下一个坑,坑越大,以后就可以容纳更多。但也有可能一辈子都在弥补那个坑,比如当...
原创
3228阅读
0评论
2点赞
发布博客于 2 年前

SOFAMosn 如何提高 GoLang 的转发性能

通过SOFAMosn了解goroutine只能在一定并发量级上降低并发编程的难度(goroutine内存占用2kb+)。高并发的场景还是NIO比较适合。jiankunk...
原创
810阅读
2评论
3点赞
发布博客于 2 年前
发布Blink于 2 年前

微服务理想国

JenkinsCI&CDKubernetes调度、负载、高可用自动化容器的部署和复制随时扩展或收缩容器规模将容器组织成组,并且提供容器间的负载均衡很容易地升级...
原创
312阅读
0评论
1点赞
发布博客于 2 年前

给 Go 库作者的建议

视频信息Practical Advice for Go Library Authorsby Jack Lindamoodat GopherCon 2016https://...
原创
236阅读
0评论
1点赞
发布博客于 2 年前

JRockit权威指南深入理解JVM

本文整理自:《JRockit权威指南深入理解JVM》作者:Marcus Hirt , Marcus Lagergren出版时间:2018-12-10起步将应用程序迁移到...
转载
703阅读
0评论
1点赞
发布博客于 2 年前

MySQL 面试知识点 汇总

原文地址:https://github.com/CyC2018/CS-Notes/blob/master/notes/MySQL.md一、索引B+ Tree 原理1. 数...
转载
382阅读
0评论
1点赞
发布博客于 2 年前

如何用Linux命令行管理网络:11个你必须知道的命令

如何用Linux命令行管理网络:11个你必须知道的命令无论你是要下载文件、诊断网络问题、管理网络接口,还是查看网络的统计数据,都有终端命令可以来完成。这篇文章收集了久经考验靠谱的命令,也收集了几个比较新的命令。多数命令都可以在图形桌面执行,即使是没什么终端使用经验的Linux用户也会常常执行命令来使用ping或是其它的网络诊断工具。curl&wget使用c...
原创
821阅读
1评论
3点赞
发布博客于 2 年前

JDK/Java 13:ZGC未使用堆内存归还操作系统

翻译自:JEP 351一、摘要增强ZGC,将未使用的堆内存返回给操作系统。二、动机目前ZGC不会将未使用的内存归还给操作系统,即使该内存已经很长时间没有使用了。这种行为并...
原创
746阅读
0评论
1点赞
发布博客于 2 年前

Java ForkJoin 解析

本文主要想了解两个地方:如何窃取任务、task如何等待(join)代码基于 OpenJDK 12窃取算法(work-stealing)从ForkJoin-Paper-Do...
原创
715阅读
2评论
3点赞
发布博客于 2 年前

gRPC 从学习到生产

gRPC Practice了解gRPC,更知REST视频信息grpc: From Tutorial to Productionby Alan Shreveat Gophe...
原创
920阅读
0评论
2点赞
发布博客于 2 年前

Golang 如何正确使用 Context

视频信息How to correctly use package contextby Jack Lindamoodat Golang UK Conf. 2017视频:https://www.youtube.com/watch?v=-_B5uQ4UGi0博文:https://medium.com/@cep21/how-to-correctly-use-context-...
原创
4201阅读
0评论
5点赞
发布博客于 2 年前

微醺 公交 凉风

 
发布Blink于 2 年前

ElasticSearch 查询的秘密

原文地址:https://neway6655.github.io/elasticsearch/2015/09/11/elasticsearch-study-notes.h...
转载
423阅读
0评论
0点赞
发布博客于 2 年前

Elasticsearch 分词器

无论是内置的分析器(analyzer),还是自定义的分析器(analyzer),都由三种构件块组成的:character filters,tokenizers,token filters。内置的analyzer将这些构建块预先打包到适合不同语言和文本类型的analyzer中。Character filters (字符过滤器)字符过滤器以字符流的形式接收原始文本,并可以通过添加、...
转载
368阅读
0评论
1点赞
发布博客于 2 年前

面试必备:ThreadLocal原理解析[精品长文]

基于OpenJDK 12引本文主要想了解两个地方:ThreadLocal实例看起来是在多个线程共享,但实际上是彼此独立的,这个是怎么实现的?ThreadLocal使用不当...
原创
1380阅读
9评论
11点赞
发布博客于 2 年前

如何clone github wiki?

比如我想git clone seata的wikiseata的github地址:https://github.com/seata/seataseata git clone 地址:https://github.com/seata/seata.gitseata wiki下载git clone https://github.com/seata/seata.wiki.git个人微信公众号:...
原创
3114阅读
2评论
1点赞
发布博客于 2 年前

API网关架构设计

定义API Gateway一个比较广泛的定义如下:API网关是一个服务器,是系统的唯一入口。从面向对象设计的角度看,它与外观模式类似。API网关封装了系统内部架构,为每个...
转载
0阅读
0评论
0点赞
发布博客于 2 年前

面试必备:Java JUC Atomic LongAdder 详解

基于OpenJDK12阅读本文前,推荐先阅读以下两篇文章,以便能更好的对比理解:[译]Java Concurrent Atomic Package详解面试必备:Java JUC AtomicLong 实现解析LongAdder是JDK 1.8 新增的原子类,基于Striped64实现。从官方文档看,LongAdder在高并发的场景下会比AtomicLong ...
原创
1410阅读
0评论
8点赞
发布博客于 2 年前

面试必备:Java JUC AtomicLong 实现解析

基于OpenJDK12本文的目的是为后续文章解析LongAdder做一个引子,以便两者对比。Atomic Package解析参考(比如lazySet原理解析):[译]Java Concurrent Atomic Package详解AtomicLong的常用方法如下: long addAndGet(long delta):以原子方式将输入的数值与实例中的值(Atom...
原创
517阅读
0评论
0点赞
发布博客于 2 年前

[译]Java Concurrent Atomic Package详解

翻译自:Package java.util.concurrent.atomic地址:https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/package-summary.html#package.description翻译JDK8而不是12的原因是JDK8对与内存语义部分讲解更加详细。Pack...
原创
282阅读
0评论
1点赞
发布博客于 2 年前

[译]ZGC: 一个可伸缩的低延迟垃圾收集器

翻译自:JEP 333地址:https://openjdk.java.net/jeps/333一、摘要Z垃圾收集器,也称为ZGC,是一个可伸缩的低延迟垃圾收集器。二、目标 GC暂停时间不超过10ms 能处理大小从相对较小(几百MB)到非常大(TB级)的堆 与使用G1相比,应用程序吞吐量减少不超过15% 方便日后在此基础上利用彩色指针和内存屏障...
原创
373阅读
0评论
2点赞
发布博客于 2 年前

elasticsearch 倒排索引原理

如何快速检索?Elasticsearch 是通过 Lucene 的倒排索引技术实现比关系型数据库更快的过滤。特别是它对多条件的过滤支持非常好,比如年龄在 18 和 30 之间,性别为女性这样的组合查询。倒排索引很多地方都有介绍,但是其比关系型数据库的 b-tree 索引快在哪里?到底为什么快呢?笼统的来说,b-tree 索引是为写入优化的索引结构。当我们不需要支持快速的更新的时候,可以用预先排...
转载
1402阅读
0评论
2点赞
发布博客于 2 年前

红黑树、B(+)树、跳表、AVL等数据结构,应用场景及分析

AVL树:最早的平衡二叉树之一。应用相对其他数据结构比较少。windows对进程地址空间的管理用到了AVL树红黑树:平衡二叉树,广泛用在C++的STL中。map和set都是用红黑树实现的。我们熟悉的STL的map容器底层是RBtree,当然指的不是unordered_map,后者是hash。B/B+树用在磁盘文件组织 数据索引和数据库索引Trie树 字典树,用在统计和排序大量字符串...
转载
2235阅读
0评论
0点赞
发布博客于 2 年前
发布Blink于 2 年前

linux 查看java的安装路径

在linux下,如何找java的安装路径jiankunking@ubuntu:/etc$ whereis javajava: /usr/bin/java /usr/share/java /usr/lib/jvm/java-8-openjdk-amd64/bin/java /usr/share/man/man1/java.1.gzjiankunking@ubuntu:/etc$ ls -lrt...
原创
259阅读
1评论
1点赞
发布博客于 2 年前

关于日志的那些事儿

在满足业务需求的前提下,代码、架构,越简单,越稳定。通用性的架构意味着,考虑的比较全,也就会比较重(比如:会引入很多组件),而这些组件对于你的场景有可能并不是不可或缺的,同时运维这些组件又会产生一定的成本,所以说通用架构对于你来说有可能并不一定是最好的。
原创
9463阅读
23评论
82点赞
发布博客于 2 年前
发布Blink于 2 年前

想要不看“账户余额”的长大[可爱]

发布Blink于 2 年前

参加同学聚会的时候

发布Blink于 2 年前

中科大,大学中的一股清流

发布Blink于 2 年前
快速成长才能获得长远成功
发布Blink于 2 年前
发布Blink于 2 年前

Elasticsearch 7.0 废弃mapping type原因及替代方案

Removal of mapping typesIndices created in Elasticsearch 7.0.0 or later no longer accept a default mapping. Indices created in 6.x will continue to function as before in Elasticsearch 6.x. Types are...
转载
10484阅读
0评论
3点赞
发布博客于 2 年前

Spring Transaction Attributes

What are transaction attributes?Spring transactions allow setting up the propagation behavior, isolation, timeout and read only settings of a transaction. Before we delve into the details, here are s...
转载
249阅读
0评论
1点赞
发布博客于 2 年前

Spring 下默认事务机制中@Transactional 无效的原因

Spring中 @Transactional 注解的限制同一个类中, 一个nan-transactional的方法去调用transactional的方法, 事务会失效If you use (default) Spring Proxy AOP, then all AOP functionality provided by Spring (like @Transational) will o...
转载
940阅读
0评论
2点赞
发布博客于 2 年前

epoll 的本质是什么?

从事服务端开发,少不了要接触网络编程。epoll 作为 Linux 下高性能网络服务器的必备技术至关重要,nginx、Redis、Skynet 和大部分游戏服务器都使用到这一多路复用技术。epoll 很重要,但是 epoll 与 select 的区别是什么呢?epoll 高效的原因是什么?网上虽然也有不少讲解 epoll 的文章,但要么是过于浅显,或者陷入源码解析,很少能有通俗易懂的。笔者于...
转载
1112阅读
1评论
5点赞
发布博客于 2 年前

Go 1.9 sync Map 源码阅读笔记

1. 空间换时间。 通过冗余的两个数据结构(read、dirty),实现加锁对性能的影响。2. 使用只读数据(read),避免读写冲突。3. 动态调整,miss次数多了之后,将dirty数据提升为read。4. double-checking。5. 延迟删除。 删除一个键值只是打标记(会将key对应value的pointer置为nil,但read中仍然有这个key:key;value:nil的键值对),只有在提升dirty的时候才清理删除的数据。6. 优先从read读取、更新、删除,因为对read
原创
3611阅读
1评论
2点赞
发布博客于 2 年前

念念不忘的ReentrantReadWriteLock

来先猜一下ReentrantReadWriteLock会如何实现?都在java.util.concurrent包下,那么可以明确一点,那就是关于锁的实现,应该用的就是AQS,那么,读锁、写锁会不会对应的就是AQS中的共享模式与独占模式?
原创
1392阅读
7评论
4点赞
发布博客于 2 年前

念念不忘的ReentrantReadWriteLock

来先猜一下ReentrantReadWriteLock会如何实现?都在java.util.concurrent包下,那么可以明确一点,那就是关于锁的实现,应该用的就是AQS,那么,读锁、写锁会不会对应的就是AQS中的共享模式与独占模式?
原创
1392阅读
7评论
4点赞
发布博客于 2 年前

如何手撕一个API 网关(API Gateway)?

一、什么是API Gateway一个比较普遍的定义如下:API网关是一个服务器,是系统的唯一入口。从面向对象设计的角度看,它与外观模式类似。API网关封装了系统内部架构,为每个客户端提供一个定制的API。API网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能。通常,网关也是提供REST/HTTP的访问API。服务端通过API-GW注册和管理...
原创
11503阅读
5评论
13点赞
发布博客于 2 年前

售达方、送达方的区别

送达方:The party who receives delivery of the goods.售达方:The customer who orders the goods or services. The sold-to party is contractually responsible for sales orders其实简单的说,售达方就是买东西的客户,送达方就是你要发货之后收货的客户...
原创
1018阅读
2评论
1点赞
发布博客于 2 年前

如何从零手撕一个PaaS平台?

一、背景目前在用的PaaS平台是之前购买的一个商业产品,但没有源码,运维期也早就结束了,所以会遇到一些奇奇怪怪的问题,需要我们这边case by case的处理,不胜其烦。老PaaS的架构及基本功能如下:二、重构为什么选择重构PaaS平台而不是全部迁移kubernates集群?kubernates集群的确提供了很多优秀的特性,比如:RC、滚动更新或回滚、资源监控和日志记录、负载均衡等等...
原创
5829阅读
2评论
25点赞
发布博客于 2 年前

Java JDK 动态代理(AOP)使用及实现原理分析

目录​一、什么是代理?二、Java 动态代理类三、JDK的动态代理怎么使用?四、动态代理怎么实现的?五、结论一、什么是代理?代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个对象的访问。代理类负责为委托类预处理消息,过滤消息并转发消息,以及进行消息被委托类执行后的后续处理。代理模式UML图:简单结构示意图:为了保持行为的...
原创
92635阅读
60评论
182点赞
发布博客于 2 年前

清理 docker registry image

#!/usr/bin/env pythonimport requestsfrom requests.auth import HTTPBasicAuthfrom requests.packages.urllib3.exceptions import InsecureRequestWarningimport jsonimport reimport argparse## this is ...
原创
934阅读
3评论
7点赞
发布博客于 2 年前

OAuth 2.0 的四种方式

OAuth 2.0 是一种授权机制,主要用来颁发令牌(token)。RFC 6749OAuth 2.0 的标准是 RFC 6749 文件。该文件先解释了 OAuth 是什么。OAuth 引入了一个授权层,用来分离两种不同的角色:客户端和资源所有者。…资源所有者同意以后,资源服务器可以向客户端颁发令牌。客户端通过令牌,去请求数据。这段话的意思就是,OAuth 的核心就是向第三方应用颁发令...
转载
1326阅读
0评论
15点赞
发布博客于 2 年前

Kafka Exactly Once语义与事务机制原理

本文转发自技术世界,原文链接 http://www.jasongj.com/kafka/transaction/一、写在前面的话本文所有Kafka原理性的描述除特殊说明外均基于Kafka 1.0.0版本。二、为什么要提供事务机制Kafka事务机制的实现主要是为了支持Exactly Once即正好一次语义的原子性有状态操作的可恢复性2.1 Exactly Once《Kafk...
转载
965阅读
1评论
1点赞
发布博客于 2 年前

原来这就是丁香

发布Blink于 2 年前

Elasticsearch GET 流程

ES的读取分为GET和Search两种操作,这两种读取操作有较大的差异,GET/MGET必须指定三元组:_index、_type、_id。也就是说,根据文档id从正排索引中获取内容。而Search不指定_id,根据关键词从倒排索引中获取内容。本章分析GET/MGET过程,下一章分析Search过程。一个GET请求的简单例子(来自官网)如下:curl -XGET http://127.0.0.1...
原创
906阅读
0评论
1点赞
发布博客于 2 年前

Elasticsearch Search流程

GET操作只能对单个文档进行处理,由_index、_type和_id三元组来确定唯一文档。但搜索需要一种更复杂的模型,因为不知道查询会命中哪些文档。找到匹配文档仅仅完成了搜索流程的一半,因为多分片中的结果必须组合成单个排序列表。集群的任意节点都可以接收搜索请求,接收客户端请求的节点称为协调节点。在协调节点,搜索任务被执行成一个两阶段过程,即query then fetch。真正执行搜索任务的...
原创
1220阅读
0评论
4点赞
发布博客于 2 年前

Elasticsearch 写流程

本文分析ES写入单个和批量文档写请求的处理流程,仅限于ES内部实现,并不涉及Lucene内部处理。在ES中,写入单个文档的请求称为Index请求,批量写入的请求称为Bulk请求。写单个和多个文档使用相同的处理逻辑,请求被统一封装为BulkRequest。1、文档操作的定义在ES中,对文档的操作有下面几种类型:enum OpType { INDEX(0), CREATE(1), UPDA...
原创
1042阅读
1评论
2点赞
发布博客于 2 年前

Linux下常见的日志文件名

Linux常见的日志文件名:/var/log/cron 工作调度/var/log/dmesg 内核检测过程中产生的信息/var/log/lastlog 检测所有账号登陆信息/var/log/maillog或/var/log/mail/* 邮件/var/log/messages 记录系统发生的所有错误信息/var/log/secure 涉及账号密码信息/var/log/w...
原创
2054阅读
0评论
0点赞
发布博客于 2 年前

Java 原子操作的实现原理

原子(atomic)本意是“不能被进一步分割的最小粒子”,而原子操作(atomic operation)意为“不可被中断的一个或一系列操作”。在多处理器上实现原子操作就变得有点复杂。让我们一起来聊一聊在Intel处理器和Java里是如何实现原子操作的。1.术语定义在了解原子操作的实现原理前,先要了解一下相关的术语,如表2-7所示。2.处理器如何实现原子操作32位IA-32处理器使用基于对...
原创
709阅读
0评论
5点赞
发布博客于 2 年前

阿里开源分布式事务解决方案 Fescar 全解析

广为人知的阿里分布式事务解决方案:GTS(Global Transaction Service),已正式推出开源版本,取名为“Fescar”,希望帮助业界解决微服务架构下的分布式事务问题,今天我们一起来深入了解。FESCAR on GitHubhttps://github.com/alibaba/fescar微服务倡导将复杂的单体应用拆分为若干个功能简单、松耦合的服务,这样可以降低开发难度、...
转载
308阅读
1评论
1点赞
发布博客于 2 年前

查看MySQL InnoDB 表索引的高度

在看《MySQL技术内幕:InnoDB存储引擎》B+树索引章节中看到这么一句话:但是B+索引在数据库中有一个特点就是高扇出性,因此在数据库中,B+树的高度一般都在2-4层,也就是说查找某一键值的行记录时最多只需要2-4次IO。因为当前一般的机械磁盘每秒至少可以做100次IO,2-4次的IO意味着查询时间只需要0.02-0.04秒。那么,当一个表很大的时候,索引还是是2-4层吗?那么这是遍历...
原创
2653阅读
2评论
2点赞
发布博客于 2 年前

Boxing and Unboxing

C#It is best to avoid using value types in situations where they must be boxed a high number of times, for example in non-generic collections classes such as System.Collections.ArrayList. You can avo...
原创
313阅读
0评论
1点赞
发布博客于 2 年前

Clone all repos from a GitHub organization

比如获取https://github.com/rancher下所有reposcurl -s https://api.github.com/users/rancher/repos?per_page=200 | python -c $'import json, sys, os
for repo in json.load(sys.stdin): os.system("git clone " + re...
原创
263阅读
0评论
1点赞
发布博客于 2 年前

elasticsearch : which: no java in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin)

按照下文设置es开机自启之后,https://blog.csdn.net/jiankunking/article/details/84374354使用 systemctl status elasticsearch启动失败,查看服务状态,报出以下错误:[root@jiankunking logs]# systemctl status elasticsearch● elasticsear...
原创
14220阅读
1评论
5点赞
发布博客于 2 年前

异地多活高可用架构设计实践与思考

一、引异地多活是近几年比较热门的一个话题,那么在实际业务中什么时候需要去做这件事?如何去做?做的时候需要考虑什么?1、何时去做?取决于以下几个方面:业务发展机房服务可用性技术积淀2、如何做?目前在网上搜索到的异地多活方案来看,基本都是阿里、饿了么、京东、微博这些互联网大厂的实践,这些大厂的实践有一个共同点就是:大量的自研组件,来做相关的数据同步,业务切分等等,那么,对于很多传统...
原创
23609阅读
0评论
6点赞
发布博客于 2 年前

CentOS 7 修改pip源

由于网络有时不稳定的原因,使用pip/pip3下载会出现网络不可达的问题。建议修改pip源,使用国内镜像服务,这里提供的是使用清华提供的pipy国内镜像服务,当然也可以使用阿里等其它镜像源。一次性方法是在pip指令后面加上 -i 属性指定源后面的–trusted-host 是指设置为受信源,否则在安全性较高的连接下是连接不上的。pip install --upgrade pip -i ht...
原创
9266阅读
1评论
2点赞
发布博客于 2 年前

CentOS 7 zookeeper service 开机自启

[Unit]Description=zookeeper.serviceAfter=network.target[Service]Type=forkingEnvironment=/home/jiankunking/zookeeperExecStart=/home/jiankunking/zookeeper/bin/zkServer.sh startExecStop=/home/jian...
原创
3221阅读
0评论
1点赞
发布博客于 2 年前

Spring Security Oauth2 RedisTokenStore 类图

源码地址:RedisTokenStore.java个人微信公众号:作者:jiankunking 出处:http://blog.csdn.net/jiankunking
原创
1294阅读
0评论
1点赞
发布博客于 2 年前

设计原则:防痴呆设计

原文地址:http://dubbo.apache.org/zh-cn/docs/dev/principals/dummy.html最近有点痴呆,因为解决了太多的痴呆问题。服务框架实施面超来超广,已有 50 多个项目在使用,每天都要去帮应用查问题,来来回回,发现大部分都是配置错误,或者重复的文件或类,或者网络不通等,所以准备在新版本中加入防痴呆设计。估且这么叫吧,可能很简单,但对排错速度还是有点帮...
转载
354阅读
0评论
1点赞
发布博客于 2 年前

Java 12 Shenandoah GC

Shenandoah: An open-source concurrent compacting garbage collector forOpenJDKABSTRACTShenandoah is an open-source region-based low-pause paral-lel and concurrent garbage collection (GC) algorithm...
原创
2444阅读
3评论
1点赞
发布博客于 2 年前