自定义博客皮肤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)
  • 收藏
  • 关注

原创 SOFAMosn 如何提高 GoLang 的转发性能

通过SOFAMosn了解goroutine只能在一定并发量级上降低并发编程的难度(goroutine内存占用2kb+)。高并发的场景还是NIO比较适合。jiankunk...

2019-11-09 20:07:36 1147 2

原创 微服务理想国

JenkinsCI&CDKubernetes调度、负载、高可用自动化容器的部署和复制随时扩展或收缩容器规模将容器组织成组,并且提供容器间的负载均衡很容易地升级...

2019-10-28 20:10:37 462

原创 给 Go 库作者的建议

视频信息Practical Advice for Go Library Authorsby Jack Lindamoodat GopherCon 2016https://...

2019-10-20 16:17:59 417

转载 JRockit权威指南深入理解JVM

本文整理自:《JRockit权威指南深入理解JVM》作者:Marcus Hirt , Marcus Lagergren出版时间:2018-12-10起步将应用程序迁移到...

2019-10-12 18:06:39 1384

转载 MySQL 面试知识点 汇总

原文地址:https://github.com/CyC2018/CS-Notes/blob/master/notes/MySQL.md一、索引B+ Tree 原理1. 数...

2019-09-25 18:07:44 588

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

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

2019-09-22 15:08:57 1303 1

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

翻译自:JEP 351一、摘要增强ZGC,将未使用的堆内存返回给操作系统。二、动机目前ZGC不会将未使用的内存归还给操作系统,即使该内存已经很长时间没有使用了。这种行为并...

2019-09-18 19:37:12 1279

原创 Java ForkJoin 解析

本文主要想了解两个地方:如何窃取任务、task如何等待(join)代码基于 OpenJDK 12窃取算法(work-stealing)从ForkJoin-Paper-Do...

2019-09-16 21:29:17 1040 2

原创 gRPC 从学习到生产

gRPC Practice了解gRPC,更知REST视频信息grpc: From Tutorial to Productionby Alan Shreveat Gophe...

2019-09-05 18:33:21 1262

原创 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-...

2019-09-02 08:59:19 6804

转载 ElasticSearch 查询的秘密

原文地址:https://neway6655.github.io/elasticsearch/2015/09/11/elasticsearch-study-notes.h...

2019-08-25 16:40:49 641

转载 Elasticsearch 分词器

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

2019-08-21 15:55:20 573

原创 ThreadLocal原理解析

基于OpenJDK 12引本文主要想了解两个地方:ThreadLocal实例看起来是在多个线程共享,但实际上是彼此独立的,这个是怎么实现的?ThreadLocal使用不当...

2019-08-20 18:16:33 1692 9

原创 如何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个人微信公众号:...

2019-08-20 15:23:49 7006 2

转载 API网关架构设计

定义API Gateway一个比较广泛的定义如下:API网关是一个服务器,是系统的唯一入口。从面向对象设计的角度看,它与外观模式类似。API网关封装了系统内部架构,为每个...

2019-08-17 12:06:14 80

原创 Java JUC Atomic LongAdder 详解

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

2019-08-09 07:23:46 2088

原创 Java JUC AtomicLong 实现解析

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

2019-08-07 20:42:24 942

原创 [译]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...

2019-08-07 11:28:07 464

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

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

2019-07-31 07:48:20 720

转载 elasticsearch 倒排索引原理

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

2019-07-29 19:26:20 1708

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

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

2019-07-29 19:23:49 4167 1

原创 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...

2019-07-19 21:05:03 427 1

原创 关于日志的那些事儿

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

2019-07-16 16:41:32 10133 23

转载 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...

2019-06-29 14:08:36 13668

转载 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...

2019-06-14 13:31:31 548

转载 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...

2019-06-13 18:45:42 6382 1

转载 epoll 的本质是什么?

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

2019-05-24 18:30:48 2458 3

原创 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

2019-05-18 08:58:35 4114 1

原创 念念不忘的ReentrantReadWriteLock

来先猜一下ReentrantReadWriteLock会如何实现?都在java.util.concurrent包下,那么可以明确一点,那就是关于锁的实现,应该用的就是AQS,那么,读锁、写锁会不会对应的就是AQS中的共享模式与独占模式?

2019-05-16 07:55:03 1905 7

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

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

2019-05-15 19:42:54 13004 5

原创 售达方、送达方的区别

送达方: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其实简单的说,售达方就是买东西的客户,送达方就是你要发货之后收货的客户...

2019-05-15 09:12:49 3763 2

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

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

2019-05-13 18:26:08 6261 1

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

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

2019-05-08 21:28:06 166263 104

原创 清理 docker registry image

#!/usr/bin/env pythonimport requestsfrom requests.auth import HTTPBasicAuthfrom requests.packages.urllib3.exceptions import InsecureRequestWarningimport jsonimport reimport argparse## this is ...

2019-05-08 18:04:03 1344 3

转载 OAuth 2.0 的四种方式

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

2019-04-24 14:06:25 1756

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

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

2019-04-24 11:52:58 1401 1

原创 Elasticsearch GET 流程

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

2019-04-11 19:50:51 1905

原创 Elasticsearch Search流程

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

2019-04-11 19:50:08 2193

原创 Elasticsearch 写流程

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

2019-04-10 18:17:47 2017 1

原创 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...

2019-04-02 13:15:26 4233

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关注的人

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