自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 NIO零拷贝

NIO零拷贝waht is 零拷贝?零拷贝(Zero-Copy)是指计算机在执行操作时,CPU不需要先将数据从某处内存复制到一个特定区域,从而节省CPU时钟周期和内存带宽。 —维基百科概念DMA直接内存访问(Direct Memory Access,DMA)是计算机科学中的一种内存访问技术。它允许某些电脑内部的硬件子系统(电脑外设),可以独立地直接读写系统内存,而不需中央处理器(CPU)介入处理 。在同等程度的处理器负担下,DMA是一种快速的数据传送方式。很多硬件的系统会使用DMA,包含硬盘

2020-12-01 19:57:01 230

原创 阿里云开源离线同步工具DataX3.0

DataX3.0概览DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。设计理念为了解决异构数据源同步问题,DataX将复杂的网状的同步链路变成了星型数据链路,DataX作为中间传输载体负责连接各种数据源。当需要接入一个新的数据源的时候,只需要将此数据源对接到DataX,便能跟已有的数据源做到无缝数据同步。开源地址https://github.com/al

2020-11-19 14:55:09 535

原创 线程及线程池初探

线程及线程池文章目录线程及线程池线程是什么上下文切换状态sleep与waitnotify与notifyAll锁池等待池yieldinterruptjoin线程池是什么解决了什么问题核心设计与实现总体设计生命周期管理shutdownshutdownNowawaitTermination任务执行机制任务调度任务缓冲任务申请任务拒绝线程池配置CPU密集型任务IO密集型任务参考文档线程是什么是操作系统能够进行运算调度的最小单位。大部分情况下,它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进

2020-11-19 14:37:24 124

原创 php的base64、chr、ord对应的java代码

php中的base64、chr、ord对应的java代码

2023-02-01 11:11:03 300

原创 服务代理调试大法

服务代理调试大法背景本地无法连接到测试环境的内网数据库(不同网段)运维提供了登陆跳板机供同学们登陆到内网服务器由于服务依赖了mysql数据库,现在想用test环境的数据来进行本地联调,因此陷入了窘境流程下载SSH Proxy软件App Store下载SSH Proxy配置跳板机server、port、username、key确保能连上跳板机查看SSH Proxy的Listening on port:7070配置服务代理在服务启动的VM Options中添加代理参数-D

2022-03-10 17:00:52 1168

原创 java应用诊断神器-arthas

java应用诊断神器-arthas介绍Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?我改的代码为什么没有执行到?难道是我没commit?分支搞错了?遇到问题无法在线上debug,难道只能通过加日志再重新发布吗?线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!是否有一个全局视角来查看系统的运行状况?有什

2022-03-10 16:56:32 113

原创 MapReduce

MapReduce介绍MapReduce是hadoop生态中的一个批量计算的框架,基于该框架,程序员能够容易地编写应用程序。这些应用程序能运行在分布式系统上,并以可靠的、具有容错能力的方式并行地处理TB级别的海量数据。MapReduce的思想核心是“分而治之”:map负责“分”,把复杂的任务分解成若干个简单的任务来并行处理。reduce负责“合”,对map阶段的结果进行汇总。MapReduce可以运行在yarn(Resource Manager、Node Manager)集群上,也支持在本地

2022-02-28 20:23:40 1693

原创 限流-RateLimiter

限流-RateLimiter工作中对外提供的API 接口设计都要考虑限流,如果不考虑限流,会成系统的连锁反应,轻者响应缓慢,重者系统宕机,整个业务线崩溃,如何应对这种情况呢,我们可以对请求进行引流或者直接拒绝等操作,保持系统的可用性和稳定性,防止因流量暴增而导致的系统运行缓慢或宕机。在开发高并发系统时有三把利器用来保护系统:缓存的目的是提升系统访问速度和增大系统处理容量降级是当服务出现问题或者影响到核心流程时,需要暂时屏蔽掉,待高峰或者问题解决后再打开限流的目的是通过对并发访问/请求进行限速,或

2022-02-25 17:11:02 760

原创 SnowFlake brief introduction

SnowFlake brief introduction简介Snowflake算法是Twitter设计的一个可以在分布式系统中生成唯一的ID的算法。特点性能(Performance)minimum 10k ids per second per process;response rate 2ms (plus network latency)每个进程每秒10K;响应速度2ms协调性(Uncoordinated)For high availability within and a

2022-02-25 17:09:20 74

原创 Bootstrap源码分析

开篇今天,给大家分享一下netty中的bootstrap与unsafe。unsafeunsafe接口是内部接口,是netty为了方便操作channel而设计的一个辅助接口,它一般不允许被用户直接调用。主要用于实际的IO操作,例如:bind端口、处理accept、read事件、把channel注册到NioEventLoop上…。下面的图是unsafe的继承类图,我们主要关注下nio相关的类:NioByteUnsafe以及NioMessageUnsafe。NioByteUnsafe以及NioMessa

2021-10-13 21:27:01 850

原创 LongAdder与高并发场景下的qps计算

高并发场景下的qps计算qps通常可以定义为:对一秒内该进程中的各个线程对某一个切入点的次数进行累加计数。业务场景公司层面已经有一套针对服务的SLA监控。但我负责的这个服务是一套地理位置服务,属于公共支撑类服务,因此该服务要对接多个业务方。为了知道上线后,各个业务方的qps以及天级流量,我们就需要孵化出一个工具对这两个metric行统计。术语定义bucket:桶,描述单位时间内的请求数量bucketWindow:时间窗口,描述需要统计时间窗口的数据,一个时间窗口包含多个桶。例如:需要统计qps

2021-02-01 15:20:38 323

原创 hive orc write引发oom

起因使用datax从mongo导出到格式为orc的hdfs文件过程中,报了oom:2021-01-09 00:05:02.038 [5358205-0-0-writer] ERROR WriterRunner - Writer Runner Received Exceptions:java.lang.OutOfMemoryError: Java heap space at org.apache.orc.impl.DynamicByteArray.grow(DynamicByteArray.java:

2021-01-15 21:36:03 1544

原创 浅谈加解密算法

浅谈加解密算法背景早之前,公司有很多套lbs服务,散落在各个部门。大数据部门也拥有自己的一套lbs。这套lbs应用范围较广,功能较齐全。所以,现阶段,出于成本节约、易用性、统一管理的考虑,我们把其他部门的lbs也整合过来了。整合过来后,面临一个问题:无法规范地管理业务方,并保证系统的安全性。因此,我们需要一套加密算法来解决这个问题。加密和解密加密数据加密的基本过程,就是对原来为明文的文件或数据按某种算法进行处理,使其成为 不可读的一段代码,通常称为“密文”。通过这样的途径,来达到保护数据不被

2020-12-30 14:32:28 497

原创 nohup和&

nohup理解run command,ignoring hangup signals(即:运行命令,忽略挂起信号当运行"nohup ./a.sh"时,是用ctrl c进行关闭时,进程会被kill,不免疫SIGINT信号。语法nohup Command [ Arg … ] [ & ]&理解backgroun,后台运行当运行"./a.sh &"时,直接关掉shell,进程会被kill,不免疫SIGHUP信号nohup与&结合不受

2020-12-14 14:06:18 156

原创 java中的IO流

java中的I/O流为什么需要I/O流试想一下,当我们的服务需要从本地磁盘、网络…中读取或者写入大量数据的时候。但是我们的内存和带宽都是很有限的,无法一次性地读取大量地数据。而流可以实现一点一点地逐步传输数据。当我们下载大文件地过程中,服务并不会占用很大地内存空间,而只是从内存中划分出一个缓冲区,当缓冲区满地时候再把数据flush到磁盘。流是什么通过流的形式允许java程序使用相同的方式来访问不同的输入/输出源;stream是从起源(source)到接收的(sink)的有序数据;我们这里把输入/

2020-11-28 16:02:04 98

原创 线程间的协作-wait/notify与condition

线程间的协作有些时候,线程之间需要相互配合,完成某项工作。例如:A线程修改了一个对象的值,而B线程想要感知这个变化,然后进行相应的操作。整个过程中,A线程可以看成是“生产者”,B线程可以看成是消费者。在这个场景中,简单的方式是让消费者线程不断地循环检查变量是否符合预期。但这种方式会存在以下弊端:难以保证及时性资源开销大,自旋会浪费cpu资源因此,我们需要寻找新的方式来解决线程之间的协作问题。显然,jdk已经为我们考虑在内了。解决此问题的方法在java中有以下两种方式:基于内置锁sync

2020-11-25 16:54:27 265

原创 基准测试-JMH

基准测试-JMHif 快还是 switch 快?HashMap 的初始化 size要不要指定,指定之后性能可以提高多少?各种序列化方法哪个耗时更短?无论出自何种原因需要进行性能评估,量化指标总是必要的。在大部分场合,简单地回答谁快谁慢是远远不够的,如何将程序性能量化呢?这就需要我们的主角 JMH 登场了!简介JMH(Java Microbenchmark Harness)是用于代码微基准测试的工具套件,主要是基于方法层面的基准测试,精度可以达到纳秒级。该工具是由 Oracle 内部实现 JIT

2020-11-24 10:29:47 240

原创 split

split介绍按照数据大小、行数来分割文件参数-a:指定后缀长度为N (默认为2)-b:指定每个输出文件的字节大小-C:指定每个输出文件里最大行字节大小-d:使用数字后缀代替字母后缀-l:指定每个输出文件有多少行demo按照行数分割,并生成test前缀一系列文件split -l 10000 test.txt test按照字节数分割split -b 100m test.txt test按照行数分割,并指定分割前缀名,以及添加数字后缀split -l 2000

2020-11-19 15:45:29 125

原创 Apache Hadoop入门

Apache Hadoop Learning文章目录Apache Hadoop LearningHDFS简介概念交互流程示意图搭建shell命令学习MapReduce简介工作机制设计举个栗子????yarn简介设计执行流程hive简介概念架构执行流程远程模式搭建hive命令参考文献HDFS简介HDFS称为分布式文件系统(Hadoop Distributed Filesystem),有时也简称为DFS。我们可以用以下几个key描述HDFS:超大文件GB、TB甚至PB级别的数据。流式数据访问

2020-11-19 15:32:37 305

原创 SnowFlake brief introduction

SnowFlake brief introduction简介Snowflake算法是Twitter设计的一个可以在分布式系统中生成唯一的ID的算法。特点性能(Performance)minimum 10k ids per second per process;response rate 2ms (plus network latency)每个进程每秒10K;响应速度2ms协调性(Uncoordinated)For high availability within and a

2020-11-19 14:49:34 126

原创 avro

avro背景avro是hadoop中的一个子项目,是一个基于二进制数据传输高性能的中间件。avro支持本地和远程(RPC)调用。基于Http协议的avro远程调用,首先需要定义一个JSON文件作为双方通信的传输协议规范。特点丰富的数据结构紧凑、快速的二进制数据格式远程过程调用简单的动态语言集成avro vs jsonjson是一种轻量级的数据传输格式,但对于大数据集,json数据会显得力不从心。json的格式是key:value型,每条记录都需要附上key的名字,对空间浪费十分严重。

2020-11-19 14:34:02 354

空空如也

空空如也

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

TA关注的人

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