自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Leon的博客

更多内容见https://leon-wtf.github.io/

  • 博客(19)
  • 收藏
  • 关注

原创 HTTP

HTTP请求流程域名解析 --> 发起TCP的3次握手 --> 建立TCP连接后发起http请求 --> 服务器响应http请求,浏览器得到html代码 --> 浏览器解析html代码,并请求html代码中的资源(如js、css、图片等) --> 浏览器对页面进行渲染呈现给用户HTTP头POST vs PUThttps://stackoverflow.co...

2019-08-11 16:04:10 117

原创 TCP

连接建立

2019-08-11 14:50:44 105

原创 MyBatis(3)-执行流程

DataSourceTransactionFactorySqlSession

2019-08-11 14:12:34 136

原创 Why Kafka is so fast?

https://blog.csdn.net/chunlongyu/article/category/6417583

2019-08-04 18:02:08 160

原创 Java concurrency in practice

Aspects in ConcurrencyAtomicity竞态条件(Race Condition): 计算的正确性取决于线程执行顺序,如:Check-And-Act,既通过一个可能失效的状态来决定下一步动作Visibility失效数据(Data Loss): 线程读取到失效的共享变量除了锁机制,volatile可以保证变量的可见性Publish and Escape发布(Pub...

2019-08-03 17:29:30 410

原创 HashMap & LinkedHashMap & ConcurrentHashMap

HashMap内部用数组存储内部类Node包装的Key,Value,用Key的hash code来计算数据在数组中的位置,如果遇到计算出来的位置已经有值,则以链表的方式在后面添加,当链表长度变大时,则将其转为红黑树final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict...

2019-08-02 15:16:47 115

原创 ZooKeeper Atomic Broadcast Implementation

Consistency algorithmFast Leader ElectionWhenever the QuorumPeer changes its state to LOOKING, lookForLeader in FastLeaderElection is invoked to start a new round of leader election.// Increase th...

2019-08-01 17:30:03 103

原创 ZooKeeper in Kafka

TasksRequirements for common-used distributed architecture:Master electionIt is critical for progress to have a master available to assign tasks to workers.Crash detectionThe master must be able...

2019-08-01 10:15:48 141

原创 Kafka Producer

Kafka producer overviewpython clients:confluent-kafka-python : created by Confluent which is based on C client librdkafkakafka-python: created by open source community which is fully written by pyt...

2019-07-27 23:28:28 994

原创 Simple sort algorithm

Bubble SortBubble Sort is the simplest sorting algorithm that works by repeatedly swapping the adjacent elements if they are in wrong order. It can be optimized by stopping the algorithm if inner lo...

2019-07-27 22:50:16 168

原创 Linear Sort Algorithm

Bucket SortCreate m empty buckets (Or lists) in order.Split the data into the m bucketsSort each bucket internally using for example: quick sort or merge sortConcatenate all sorted bucketsWith ...

2019-07-27 21:51:32 272

原创 LeetCode-数组中的第K个最大元素

题目在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明:你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。https://leetcode...

2019-07-26 16:40:34 84

原创 Quick Sort & Merge Sort Algorithm

It is used in Arrays.sort() of Java:One-pivot Quick SortQuick Sort is a Divide and Conquer algorithm. It picks an element as pivot and partitions the given array around the picked pivot. There are m...

2019-07-26 10:46:00 548

原创 LeetCode-三数之和

题目给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[[-1, 0, 1],[-1, -1, 2]]https://leetcod...

2019-07-25 19:26:04 89

原创 LeetCode-两数之和

题目给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]https:/...

2019-07-25 16:03:27 74

原创 FTP简介

文件传输协议(File Transfer Protocol),是用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式。采用两个TCP连接来传输文件:控制连接:服务器监听21端口,客户端发起连接,并通过该连接发送命令,接收服务器应答。如:list:获取文件目录,reter:取一个文件,store:存一个文件数据连接:每当一个文件在客户端与服务器之间传输时,就建立一个全新的数据连接站...

2019-07-20 22:49:31 156

原创 记python logging非进程安全踩得坑

背景有两个python进程A和B复用同一个logger创建模块,往同一个文件里写日志,用的是TimedRotatingFileHandler,并且每天午夜进行文件rollover,保留15天的文件现象偶尔会发现某一天的日志里记录的时间是后一天的,并且只有几行原因虽然官方文档中说logging handler提供的类都是多线程安全的,但并不是多进程安全的,通过分析源码发现事实也确实如此。l...

2019-07-20 22:47:13 503

原创 多线程安全的单例模式

单例模式被认为是最简单的设计模式,属于创建型(设计模式又被分为:创建型、结构型和行为型),经常被用到,下面以我在实际项目中用到的一个单例模式为例,看下如何利用经典的两次判空方法令其高效、安全得工作在多线程环境(见代码中注释)。package core;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session...

2019-07-20 22:41:45 123

原创 开篇词

转眼间,工作已经5年半了。从传统的高端制造业跨国公司转行加入工业互联网行业初创团队也已经一年半了,负责设备数据收集、传输、存储、计算平台的设计与搭建,以及平台上算法的实现。一直在利用碎片时间通过极客时间、公众号、技术博客等方式进行学习,虽然收获颇丰,并已经将一部分知识实践到了我的平台设计中,但还是感觉学到的知识过于零散,有很多由于目前团队人数、业务量、业务性质的原因没有机会实践,所以希望利用技术博...

2019-07-20 22:39:38 108

空空如也

空空如也

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

TA关注的人

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