自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(26)
  • 资源 (17)
  • 收藏
  • 关注

原创 Guava RateLimiter算法原理及源码解读

目录前言原理RateLimiter原理SmoothBursty关键属性关键方法doSetRatereserveEarliestAvailableSmoothWarmingUpWarmingUp原理核心方法doSetRatestoredPermitsToWaitTime前言互联网高并发、高流量业务特性使大家都关注可保障系统稳定的...

2019-12-30 00:05:32 1605 2

原创 C4模型理解

谈C4前说两句架构设计,“纸上的不是架构,每个人脑子里的才是架构“。还有一句就是,“那些精妙的方案之所以落不了地,是因为设计上没有兼容人类的愚蠢”,即把思想问题转变成情绪问题。)认可这两句话本身是一种无奈,但架构师还是得手持架构原则去做好每一个架构方案,架构方案的落地都是艺术品。Software System 和Container:可以映射到应用组件(Code:ArchiMate中没有类似概念,可映射到应用功能 (Person:C4中代表系统使用人,可映射到业务参与者。

2022-09-18 22:18:44 697 1

原创 架构师杂谈

序言一路跌跌撞撞、摸爬滚打做软件架构已有七八载,从鸿蒙初开到明心见性,从罗汉渡己到菩萨渡人,一介凡尘终是轮转不息。当我们拿着Martin Fowler<Patterns Of Enterprise Application Architecture>时,"Microservice Architecture Style" 成为云时代天选之子,当我们秉烛夜读<Pattern-Oriented Software Architecture>时,"Just Enough So...

2022-02-01 15:38:45 2623 3

原创 Flink-基本使用总结

Flink:source+operator+sinkSource: SourceFunction:open CheckpointedFunction:initializeState、snapshotState 一般是source+checkpointFlinkKafkaConsumerBase:有四种启动模式:EARLIEST、LATEST、SPECIFIC_OFFSETS、GROUP_OFFSETS EARLIEST:从最早的offset开始读取 ...

2021-09-22 00:04:12 526

原创 Flink-Streaming之StreamPartitioner

在介绍流分区器前,为方便大家理解,我们解释下文中会用到的Flink几个关键名词概念。Parallelism:Flink中Parallelism表示并行度,假设source算子的parallelism=2,集群有2个TaskManager,每个TaskMananger有一个slot,那么source算子会同时在2个TaskManager中运行。Operator:一个算子,比如map算子就是OperatorUpStream:上游流DownStream:下游流文中的例子upStream为source算子.

2021-09-20 17:20:16 401

原创 Flink之SourceFuction

SourceFunction自定义数据源,通常使用RichParallelSourceFunciton作为父类,实现open、run、cancel三个方法 方法名 作用 open 初始化信息 run 一般使用死循环不断输出数据 cancel 销毁资源 package flink.sourcefunctionimport org.a

2020-10-03 00:22:01 2046

原创 Kafka常见问题解决思路

一个从kafka集成消费记录的客户端。KafkaConsumer透明处理的Kafka brokers的错误 ,并且自适配Topic-Partition在集成中的迁移。KafkaConsumer使用consumer group去平衡消费。KafkaConsumer维持必要的TCP连接从borkers获取数据,关闭失败会导致连接泄露。注意:KafkaConsumer不是线程安全的。&lt...

2020-03-29 13:24:38 387

原创 Kafka consumer group balance原理及源码解读(range/round robin/sticky)

目录序言Range算法示例Round Robin算法核心源码示例Sticky数据结构&算法数据结构算法示例核心方法代码步骤平衡判断序言kafka在0.11版本后提供了Range、Round Robin、Sticky三种consumer group partition分配策略,其中Range、Round Robin...

2020-01-20 01:20:55 1229 1

原创 kafka 事务

目录概述幂等事务2PC协议代码示例事务流程事务状态Server侧状态LSO概述kafka从0.11版本开始支持exactly-once语义。从此,流式处理框架数据准确性语义at-most-once、at-least-once、exactly-once全部支持。exactly-once语义的支持复杂度是最高的,单纯从语义角度上可理解为exactly...

2019-12-10 17:47:34 527 2

原创 企业IT架构转型之道 阿里巴巴中台战略思想与架构实战阅后总结

介绍了建设共享业务中台的架构目的、建设原则和思路、技术攻克点、运营能力、平台稳定能力及与上下游的协作、最终案例说明能力输出。这一切都是围绕支撑业务快速创新、试错的目标开展工作。...

2019-09-11 20:24:13 220

原创 Spark之任务调度

目录调度模式调度时机可调度任务任务级别Schedulable属性方法SchedulableBuilder排序算法FIFOSchedulingAlgorithm.comparatorFairSchedulingAlgorithm.comparator任务调度器PreferredLocationPending TaskTask调度器...

2019-08-21 01:01:26 557 1

原创 Spark-Speculative Task

背景: 分布式计算模型中,如Hadoop的MR,Spark的RDD,在任务处理过程中经常会出现某个Task执行很慢,拖慢了整个批次计算。为解决此问题,Hadoop提出来了Speculative Task方案。思路: 监控每个Task执行情况,对慢于平均进度(或者其它可以衡量进度的指标)的Task重新启动一个Task,结果集用率先完成的Task,并Kill另外没有执行完...

2019-08-05 17:21:57 511

原创 ElasticSearch 2.3 Master OOM

环境ESversion:2.3.0部署:Master Node+Data Node配置:3台 master为8C8G,data node为8C16G备注:此问题与JDK、操作系统无关,因此就没列详细信息问题描述ES集群每天动态创建500+索引,索引保留三天,三天后清掉。近期,Master出现两次OOM,且内存一直不会释放。查看dump文件如下: ...

2019-08-04 01:40:03 540

原创 基于Redis的延迟队列

业务背景7号10:00创建活动,7号0:00到7号10:00之间下单未支付的用户push催付,7号10:00后用户下单5分钟内没有支付,以PUSH的方式催付方案0-10点间数据可理解为离线数据,可通过创建一个ad-hoc查询任务,并吐出人群到给发送服务。下单后5分钟后没有支付以push催付,采用Redis的延迟列队方案如果为下单半个小时后催付,建议采用DB轮询方案。http...

2019-07-07 12:30:51 5258

原创 延迟调度总结

流式计算的调度复杂性在于需要考虑公平性和数据本地化。FIFO调度FIFO是一个简单的调度策略,适合用于作业并发少,或者无作业并发,且作业的map任务数量大,最好是大于等于集群的slot数量。FIFO调度中经典的两个问题head-of-line小作业,多作业并发的场景,量化数据本地化的公式为,为总的slot,为map任务需要的slotsticky slots大作业,多作业并发...

2019-07-05 15:53:13 2561

翻译 延迟调度(A Simple Technique for Achieving Locality and Fairness in Cluster Scheduling)

2. 背景Hadoop实现了类似Google的MapReduce。Hadoop运行在一个称为HDFS人分布式文件系统上,类似GFS每个数据块存储三份副本。用户提交的作业由一个map函数和一个reduce函数组成。Hadoop拆解每个job为多个task。首先,map任务处理每个输入的数据块(物理大小为64MB)并以键值对方式生成中间结果。每个输入数据块对应一个map任务。接下来,reduce ...

2019-07-04 20:06:51 1234

原创 延迟任务解决方案

业务场景举例: 用户下单5分钟内没有支付,以PUSH的方式催付解决方案:方案A:定时轮询当天全量的订单数据,找到符合要求的数据。方案特点:1.方案简单、不依赖过多的技术组件2.轮询效率过低,不适合大数据量业务场景方案B:--建议方案发送RocketMQ支持的延迟消息,Consumer侧消息延迟消息即可方案特点:1.方案简单,但依赖MQ中间件...

2019-05-22 00:38:30 1017

原创 Spark之Task状态与异常

目录Task状态Task 异常Task状态与异常Task状态TaskState对Task的生命周期定义了6个状态,每种状态会做不同的处理。Launching:Task已经从Driver侧发送给了Executor侧(被DAGScheduler调度了,Task是通过Endpoint发出,RDD和Stage由BroadCast广播)Running:Executor正在执...

2019-04-28 16:12:30 1708

原创 Spark之Task构建

我们已经知道DAGScheduler通过RDD算子构建DAG,再基于RDD算子之间的宽、窄依赖来切分所涉算子,最终得到一个Stage集合。每个Stage再基于Partitioner生成Task,Task集合包装成TaskSet(可能会管道化),最终TaskSet包装成TaskSetManager。注意: TaskSetManager实现了Schedulable的调度能力,这样把Task、S...

2019-04-28 15:35:04 375

原创 Spark之Task的定义

一个供Executor执行的可执行的逻辑单元,Spark目前提供了两类Task,分别为ShuffleMapTask和ResultTask。Job会由一个或者多个Stage,一个Spark Job基于Stage构建成逻辑执行计划和物理执行计划。如: Job A={S1,S2,S3} 由三个Stage构成,那么S1、S2会由ShuffleMapTasks构成,S3作为Job的最后一个Stage由多个R...

2019-04-28 15:23:49 2831

原创 Netty相关介绍

Spark使用Netty作为网络通住框架,顺带研究了下Netty,把今天成果总结下,后面持续更新。目录架构介绍Reactor模式内存模型架构介绍Netty由Core、Transport Services、Protocol Support三部分组成。Core主要由三部分组成,分别是Zero-Copy-Capable Rich Byte Buffer、Universal C...

2019-04-12 19:18:40 349

原创 Spark Streaming序言(流式计算概览)

上半部分已经系统性的介绍了RDD模型及实现,下半部分介绍Spark的D-Streams模型原理及D-Streams模型的实现框架Spark Streaming的具体实现以及在大规模流处理上的应用。文章中的原理章节有部分参考和借鉴了<An Architecture for Fast and General Data Processing on Large Clusters >、<G...

2019-04-11 20:17:54 442

原创 Spark-Listener(事件驱动的异步化编程框架)

事件驱动的异步化编程事件驱动的异步化编程EventListenerListenerBus事件驱动的异步化编程 我们以前经常看到基于事件的监控,基于事件的数据采集等等,Spark-Core内部的事件框架实现了基于事件的异步化编程模式。它的最大好处是可以提升应用程序对物理资源的充分利用,能最大限度的压榨物理资源,提升应用程序的处理效率。缺点比较明显,降低了应用程序的可读性。Spark的基于事件...

2019-04-11 14:59:45 1785

原创 TOGAF 9.1 译者序

Enterprise :一定复杂度的任何组织系统,指正式或非正式的各类社会组织,并不专指企业。Architecture:架构,架构是包含功能和行为的。 复杂组织的两个层面的能力:1. 需要满足外部需要的业务2. 业务要不仅能适应外部竞争与约束,还能最高效地运行。这两层的内容就是能力建设。综合论述:1. 组织管理的主客体复杂度不断提高2. 能力建设需求不断提高...

2018-10-27 08:42:48 179

原创 分布式理论-----Lease机制

概念    Lease本质是合同,参与方基于一个有期限的时间范围内对某项内容做出的一种承诺,在有效期内参与方均需要遵守承诺。    原文定义:A Lease is a contract that gives its holder specific rights over property for a limited period of time.角色    授权者、被授权者由来   Lease最经...

2018-07-10 11:45:02 376

原创 zookeeper源码分析一

interface Watcher  定义了client 和 server之间5种事件类型,6个状态。6个状态:Disconnected(0),SyncConnected(3),AuthFailed(4),ConnectedReadOnly(5),SaslAuthenticated(6);Expired(-112)5个事件类型:None(-1),No

2016-04-26 00:13:53 127

codis-proxy2,codis-server

只需要设置gopath,就可以直接使用,所有的依赖包都已经加到里面了

2015-12-30

codis-proxy

都已经完全编译好了,可以直接使用,只需要设置一个gopath

2015-12-30

go语言编程

适合入门 《Go语言编程》首先引领读者快速浏览Go 语言的全貌,迅速消除读者对这门语言的陌生感,然后循序渐进地介绍了Go 语言的面向程和面向对象的编程语法,其中穿插了一些与其他主流语言的比较以让读者理解Go 语言的设计动机,接着探讨了Go 语言重要的并行编程方法,之后介绍了网络编程、工程管理、安全编程、开发工具等非语法相关但非常重要的内容,最后为一列关于Go 语言的文章,可以帮助读者更深入了解这门全新的语言。   《Go语言编程》适合所有层次的开发者阅读。

2015-12-23

深入理解Java虚拟机

深入理解Java虚拟机中文版 影印版,希望对大家有用

2015-11-24

分布式系统原理与范型

编辑推荐 《世界著名计算机教材精选•分布式系统原理与范型(第2版)》适用对象广泛,不仅可以作为学习分布式计算机的本科生和研究生的教材,对于从事分布式计算研究和工程应用的科技人员和工程技术人员来说,《世界著名计算机教材精选•分布式系统原理与范型(第2版)》也是一本优秀的读物。 作者简介 作者:(美国)特尼博姆(Andrew S.Tanenbaum) 等 译者:辛春生 陈宗斌 目录 第1章 概述 1.1 分布式系统的定义 1.2 目标 1.2.1 使资源可访问 1.2.2 透明性 1.2.3 开放性 1.2.4 可扩展性 1.3 分布式系统的类型 1.3.1 分布式计算系统 1.3.2 分布式信息系统 1.3.3 分布式普适系统 本章小结 习题 第2章 体系结构 2.1 体系结构的样式 2.2 系统体系结构 2.2.1 集中式体系结构 2.2.2 非集中式体系结构 2.2.3 混合体系结构 第3章 进程 第4章 通信 第5章 命名系统 和6章 同步化 第7章 致性和复制 第8章 容错性 第9章 安全性 第10章 基于对象的分布式系统 第11章 分布式文件系统 文摘 第2章 体系结构 分布式系统往往是由各种复杂的系统组成,其组件按定义分散在多台机器之中。要掌握这些复杂性,关键是恰当地组织好这些系统。察看分布式系统的组织结构的方法有多种,其中常见的一种是区分软件组件集的逻辑组织和实际物理实现的差别。 分布式系统的组织结构主要是指组成该系统的软件组件,这种软件体系结构(software architecture)告诉我们不同的软件组件是如何组织的,它们应如何相互作用。本章我们首先来看看一些常见的组织(分布式)计算机系统的实用方法。 分布式系统的真正实现要求我们真实地把软件组件放置在真实的机器上。这样做的选择有多种。软件体系结构的最终实例又称为系统体系结构(system architecture)。本章我们将看看传统的集中式体系结构,其中,单个服务器实现了大多数的软件组件(及其功能),而远程客户使用简单的通信方法就可以访问该服务器。另外,我们还将察看非集中式体系结构,其中的每个机器起着同等的作用,就像混合组织结构一样。 正如在第1章中所介绍的那样,分布式系统一个重要的目标是,通过提供一个中间件层,把应用程序与底层平台分开。采用这样一层是一个重要的体系结构决策,其目的是提供分布式透明性。然而,要获得透明性是需要付出代价的,需要不同的技术来使得中间件为可适应的。本章将介绍一些更为常见的实用技术,它们本身也影响着中间件的组织结构。 通过使分布式系统监视自己的行为,当需要时采取适当的措施,就可以获得适应性。这就导致了自治系统(Autonomic Systems)的出现。这种分布式系统经常组成反馈控制循环的形式,形成了系统设计中一个重要的体系结构元素。本章将用一节的篇幅来介绍自治分布式系统。

2015-11-15

JDBC3.0 4.0规范

JDBC3.0 4.0规范

2014-05-11

servlet 3.1规范,中英文版本

servlet 3.1规范,中英文版本

2014-05-11

Java加密与解密

Java加密与解密的艺术

2013-07-24

阿里接口义

阿里接口义

2013-06-27

样例展示

样例展示

2013-06-24

sina-blogger_weibo

sina-blogger_weibo

2013-06-24

图片识别小工具,不过不太准确

图片识别小工具,JAVA实现的

2013-06-24

hadoop-1.1.2

hadoop-1.1.2,用于分布式并发编程,这个框架目前很多公司都在用

2013-03-13

Eclipse Memory Analyzer

Eclipse Memory Analyzer插件,用于定位JAVA内存泄露

2013-01-06

空空如也

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

TA关注的人

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