9 赶路人儿

尚未进行身份认证

我要认证

具有java、C++、python等开发经验; 熟悉系统架构、大数据、机器学习等。

等级
TA的排名 147

HTTP 请求头中的 X-Forwarded-For

通过名字就知道,X-Forwarded-For 是一个 HTTP 扩展头部。HTTP/1.1(RFC 2616)协议并没有对它的定义,它最开始是由 Squid 这个缓存代理软件引入,用来表示 HTTP 请求端真实 IP。如今它已经成为事实上的标准,被各大 HTTP 代理、负载均衡等转发服务广泛使用,并被写入 RFC 7239(Forwarded HTTP Extension)标准之中。X-Forwarded-For 请求头格式非常简单,就这样:X-Forwarded-For: client, prox

2020-08-01 14:47:25

StreamingFileSink压缩与合并小文件

Flink目前对于外部Exactly-Once写支持提供了两种的sink,一个是Kafka-Sink,另一个是Hdfs-Sink,这两种sink实现的Exactly-Once都是基于Flink checkpoint提供的hook来实现的两阶段提交模式来保证的,主要应用在实时数仓、topic拆分、基于小时分析处理等场景下。本篇将会介绍StreamingFileSink的基本用法、如何压缩数据以及合并产生的小文件。一、基本用法StreamingFileSink提供了基于行、列两种文件写入格式,用法:

2020-07-31 20:34:13

flink消费kafka数据,生成parquet结构的数据写到hdfs

参考:

2020-07-31 20:12:47

使用延时队列搞定超时订单处理

参考:https://juejin.im/post/5d822b7a6fb9a06b3260a9e6

2020-07-30 17:03:07

eclipse配置注释(作者,时间)

1、创建一个新类时,自动加上作者、时间注释:windows-->preferenceJava-->Code Style-->Code Templatescode-->new Java files编辑:${filecomment}${package_declaration}/** * @author : ${user}* @date :${date} ${time} * */ ${typecomment}${type_declaration}...

2020-07-29 11:20:03

linux patch命令

patch指令让用户利用补丁文件来修改,更新原始文件,达到升级原始文件功能的目的。linux内核的升级方式也是采用这种。1、生成补丁文件:我们通过diff命令来生成补丁文件,diff -Naur a.txt b.txt首先我们来看两个文件:a.txt,b.txt$ vim -O a.txt b.txt sadfasdfas |sadfasdfas1212 |000.

2020-07-28 22:19:19

jackson使用

json是一个非常轻巧、灵活、易读的数据结构,在很多场景下json已经成了数据交换的标准格式。在java中,json的序列化、反序列化工具库也是层出不穷,使用频率比较多的有:fastjson、jackson、gson,网上对他们的对比非常多,这里我简单说下我的看法:fastjson:阿里开源的一个json库,官方说性能非常高效,我个人觉得最主要是api设计的非常人性化,对于JSONObject、JSONArray的使用非常容易理解;但是其安全漏洞也是让人无语,每次都爆出一大堆漏洞,这也是逼着我使用jac

2020-07-28 17:15:12

bson介绍,以及java示例

BSON介绍BSON是由10gen公司(开发mongodb数据库的公司)开发的一个数据格式,目前主要用于MongoDB中,是MongoDB的数据存储格式。BSON基于JSON格式,选择JSON进行改造的原因主要是JSON的通用性及JSON的schemaless的特性。bson官网:http://bsonspec.org/BSON [bee·sahn]是Binaryary JSON的缩写,是类似于JSON数据结构的二进制编码的序列化文档。像JSON一样,BSON支持数组、对象的嵌套,BSON还扩展

2020-07-27 22:26:27

json数据压缩

json是一种非常简单、易读的数据结构。通常我们在做开发时,会选取json作为数据传输格式。同时为了提升性能、降低带宽,我们一般会对json数据进行压缩。今天我们就来谈谈各种压缩方法。1、常规压缩:默认的json数据是带有换行的,所以最简单的压缩方法是将json中的回车换行去掉,压缩成一行字符串。测试:找了一个大的json字符串,原始大小为1.1m,去掉回车换行压缩成一行后,大小变为了360k。在线压缩工具:https://www.bejson.com/其次,我们还可以将json中的ke

2020-07-24 15:40:18

http 协议中的content-type

content-type可以位于请求头、响应头,分别代表:Request头:请求的与实体对应的MIME信息(post请求时的请求体) Response头:返回内容的MIME类型由于http1.0版规定,头信息必须是 ASCII 码类型(文本),后面的实体数据可以是任何格式。因此,服务器回应的时候,必须告诉客户端,数据是什么格式,这就是Content-Type字段的作用。同样,在请求时,通过它可以告诉服务器post请求体属于那种格式。1、响应头中的content-type:在响应中,Conte

2020-07-18 19:45:05

http协议传输编码

1、什么是传输编码?传输编码在 HTTP 的报文头中,使用 Transfer-Encoding 首部进行标记,它就是指明当前使用的传输编码。Transfer-Encoding 会改变报文的格式和传输的方式,使用它不但不会减少内容传输的大小,甚至还有可能会使传输变大,看似是一个不环保的做法,但是其实是为了解决一些特殊问题。简单来说,传输编码必须配合持久连接去使用,为了在一个持久连接中,将数据分块传输,并标记传输结束而设计的,后面会详细讲解。在早年间的设计里,和内容编码使用 Accept-Enc

2020-07-18 18:43:54

HTTP 协议中的 Transfer-Encoding

Transfer-Encoding,是一个 HTTP 头部字段,字面意思是「传输编码」。实际上,HTTP 协议中还有另外一个头部与编码有关:Content-Encoding(内容编码)。Content-Encoding 通常用于对实体内容进行压缩编码,目的是优化传输,例如用 gzip 压缩文本文件,能大幅减小体积。内容编码通常是选择性的,例如 jpg / png 这类文件一般不开启,因为图片格式已经是高度压缩过的,再压一遍没什么效果不说还浪费 CPU。而 Transfer-Encoding 则是用来改变

2020-07-18 17:37:55

vscode代码截图插件Polacode

今天介绍一款在vscode中对代码截图的插件——polacode,安装插件:选择polacode-2020 安装即可。使用:打开代码编辑页面,然后按"ctrl+shift+p",输入polacode、回车即可。接下来,选中代码,就会生成对应的截图,我们还可以设置大小、透明度、边框、颜色... 最后,点击最下方生成图片按钮。...

2020-07-18 12:28:30

vscode 脑图插件mindmap

在日常办公中,我们经常使用脑图工具来说明一个复杂的“事情”,百度提供了一个在线的脑图工具,https://naotu.baidu.com/今天,我们来看下vscode中如何通过安装插件,来使用。这两个插件作者是同一个(大搜车公司开发的),这里选择第二个(第一个使用中有bug)。...

2020-07-17 18:46:44

json-server使用

json-server是一个在前端本地运行,可以存储数据的server,作用:模拟接口,操作模拟数据。github:https://github.com/typicode/json-server1、安装:$ npm install -g json-server$ json-server -hjson-server [options] <source>Options: --config, -c Path to config file [de

2020-07-16 21:40:53

linux screen 使用

介绍系统管理员经常需要SSH 或者telent 远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为它们执行的时间太长了。必须等待它们执行完毕,在此期间不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了。GNU Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。 GNU Screen可以看作

2020-07-16 16:23:51

JS 中如何判断 undefined null

JavaScript 中有两个特殊数据类型:undefined 和 null,在写代码时该如何判断。1、js中判断undefined:不正确的写法;var exp = undefined;if (exp == undefined){ alert("undefined");}exp 为 null 时,也会得到与 undefined 相同的结果,虽然 null 和 undefined 不一样。注意:要同时判断 undefined 和 null 时可使用本法。正确写法:

2020-07-15 21:41:03

线上日志写磁盘延时问题

线上环境,在高并发场景遇到日志写本地磁盘延迟的情况。例如当前时间17:00,日志最近一条记录是14:00,延迟多个小时,但是日志数量不会发生丢失。且发现内存占用达到10几G,比其他正常机器高出很多倍。过程应用程序在内存中维护一个队列,当用户请求到达,产生用户日志的时候,会将用户日志入队列。同时应用会启一个异步线程,不断的轮询队列,将队列的队头元素出队列,调用IO函数写入磁盘。改造前public class AsyncThread{ public void doWork(){ wh

2020-07-11 15:45:21

Openresty base64编码

OpenResty目前内建支持的有Base64和JSON两种格式,下面我们介绍base64.Base64格式使用64个字符,可以把任意数据转换为ASCII码可见字符串,应用得非常普遍。OpenResty使用ngx.encode_base64和ngx.decode_base64这两个函数实现了标准的Base64编码和解码:local str = "1234" local enc = ngx.encode_base64(str) -- 编码为“ MTizNA==”local dec= ngx

2020-07-09 22:00:26

openresty对响应进行压缩

前面文章介绍了如何使用子请求的方式让nginx帮我们做zip压缩,见:https://blog.csdn.net/liuxiao723846/article/details/107126974这里我们再介绍一种zlib的方式。(注:zlib的压缩不是gzip格式)

2020-07-09 20:11:38

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 分享王者
    分享王者
    成功上传51个资源即可获取