自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【工作流】Activiti工作流引擎架构设计原理总结

Activiti是由Alfresco软件发布的业务流程管理(BPM)框架。它为新的BPMN 2.0标准提供了支持,包括支持对象管理组(OMG),面对新技术的机遇,诸如互操作性和云架构,提供技术实现。到目前为止,Activiti共有三个版本体系:...

2021-10-24 23:58:11 1554

原创 跳跃列表(skipList)、压缩列表(zipList)和快速列表(quicklist)

跳跃列表(skipList)、压缩列表(zipList)和快速列表(quicklist)都是Redis底层重要的数据结构跳跃列表(skipList)Redis使用跳跃表作为有序集合键的底层实现之一,通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的,如果一个有序集合包含的元素数量比较多,又或者有序集合中元素的成员(member)是比较长的字符串时,Redis就会使用跳跃表来作为有序集合键的底层实现。Redis只在两个地方用到了跳跃表,一个是实现有序集合键,另一个是在集群节点

2021-05-17 23:18:44 1952 1

原创 Flink常用算子总结

Streaming 算子DataSet算子

2021-03-01 23:55:34 684

原创 Flink的状态管理和端到端Exactly Once 语义实现

Flink的状态管理Flink 可以处理有状态的数据,通过自身的 state 机制来保障作业 失败时数据不丢失;Flink 的 checkpoint 和故障恢复算法保证了故障发生后应用状态的一致性。因此,Flink 能够在应用程序发生故障时,对应用程序透明,不造成正确性的影响。Flink 提供了内置的状态管理,可以把这些状态存储在Flink内部,而不需要把它存储在外部系统。这样做的好处是第一降低了计算引擎对外部系统的依赖以及部署,使运维更加简单;第二,对性能带来了极大的提升:如果通过外部去访问

2021-02-27 22:32:09 253

原创 TCP连接生命周期的11种状态详解

TCP 连接的生命周期建立TCP连接 与服务器建立TCP连接 向服务器发送请求报文 服务器返回应答报文关闭TCP连接TCP 生命周期中包含的所有状态https://blog.csdn.net/chaofanwei2/article/details/51425022https://segmentfault.com/a/1190000019620421https://blog.csdn.net/jchnlau/article/details/8269276...

2021-02-25 21:50:44 1037

原创 块存储、文件系统存储以及对象存储的特性及其应用

块存储如磁盘阵列、硬盘主要是将裸磁盘的空间映射给主机使用,提供数据保护,提高容量,提升读写效率,但主机之间无法共享数据使用场景:虚拟机磁盘存储分配、日志存储、文件存储文件系统存储如FTP、NFS服务器解决了块存储文件无法 共享的问题造价低、方便文件共享,但读写速度低,传输效率慢适用场景:日志存储、有目录结构的文件存储对象存储结合块存储和文件系统存储的优点,具备块存储的读写高速,也具备文件存储的共享特性,提供了具有高性能,高可靠性,跨平台以及安全的数..

2021-01-17 23:38:46 424

原创 SpringBoot源码——SpringApplication对象初始化过程

Spring Boot启动时会创建一个SpringApplication对象,所以SpringBoot的初始化过程其实是创建并初始化SpringApplication对象的过程。

2021-01-17 23:22:56 190

原创 SpringBoot源码—— @SpringBootApplication注解代替@Configuration, @EnableAutoConfiguration 和 @ComponentScan

@SpringBootApplication 作用这个注解是替代@Configuration, @EnableAutoConfiguration 和 @ComponentScan 注解的,这样开发起来更方便,不用再主类里面写三个注解可以看到源码@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@SpringBootConfiguration@EnableAutoConf

2021-01-11 18:26:52 726

原创 人工智能(AI)、深度学习(DL)、机器学习(ML)、神经网络(RNN/CNN)、自然语言处理(NLP)等概念科普

机器学习 机器学习(MachineLearning)简称ML。机器学习属于人工智能的一个分支,也是人工智能的和核心。机器学习理论主要是设计和分析一些让计算机可以自动”学习“的算法。深度学习 深度学习(DeepLearning)简称DL。最初的深度学习是利用深度神经网络来解决特征表达的一种学习过程。深度神经网络本身并不是一个全新的概念,可大致理解为包含多个隐含层的神经网络结构。为了提高深层神经网络的训练效果,人们对神经元的连接方法和激活函数等方面做出相应的调整。深度学习是机器学习研究中...

2020-12-09 18:30:09 4762

原创 kubernetes基础篇——kubectl常用命令总结

在接触kubernetes的过程中经常会用到kubectl与集群通信,总结下常用的命令get获取列出一个或多个资源的信息。(资源分为pod、instance、service等很多种) Namespace Pod Node Deployment Service ReplicaSetkubectl get cs # 查看集群状态kubectl get nodes # 查看集群节...

2020-12-08 18:28:44 632

原创 使用Protobuf实现私有协议消息编解码

Protobuf是一种轻便高效的结构化数据存储格式,常用于序列化,以message的方式管理数据、跨平台、跨语言、高性能、高可靠 语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。 种灵活,高效,自动化机制的结构数据序列化方法-可类比 XML,但是比 XML 更小(3 ~ 10倍)、更快(20 ~ 100倍)、更为简单。定义个简单消息syntax="proto3";//生成的包名option java_package="fun.codenow.socket

2020-12-07 18:16:10 1452

原创 kubernetes基础篇——kubernetes存储机制

##kubernetes存储volume(卷)####为何需要使用volume处理存储1、防止容器重新创建启动时导致的数据丢失2、解决容器之间的文件数据共享问题####kubernetes的volume和docker的volume之间的区别Docker也有Volume的概念,但对它只有少量且松散的管理。在Docker中,Volume是磁盘上或者另外一个容器内的一个目录。直到最近,Docker才支持对基于本地磁盘的Volume的生存期进行管理。...

2020-11-24 23:55:39 633

原创 kubernetes 运维——v1.9.0 安装ingress-nginx-controller出错MountVolume.SetUp failed for volume “webhook-cert“

kubernetes 1.9.0 安装ingress-nginx-controller出错:MountVolume.SetUp failed for volume "webhook-cert" : secret "ingress-nginx-admission" not foundFailed to pull image "k8s.gcr.io/ingress-nginx/controller:v0.41.2@sha256:1f4f402b9c14f3ae92b11ada1dfe9893a88f0fa

2020-11-24 00:08:40 7693 6

原创 Kubernetes基础篇——Pod以及Pod控制器应用

创建主容器为其必须的操作,初始化容器(init containter)、启动后钩子post start hook、存活性探测、就绪性探测、pre stop hook为可选执行。pause容器Pod总会处于以下几个相位(phase)之一: Pending:创建了pod资源并存入etcd中,但尚未完成调度,或扔处于从仓库下载镜像的过程 Running:Pod已经被调度到某节点,并且所有容器都已经被kubectl创建完成 Succeeded:Pod中的所有容器都已...

2020-11-23 23:04:36 298

原创 Kubernetes基础篇——资源对象及其yaml方式描述

Kubernetes对象的概念在 Kubernetes 系统中,Kubernetes 对象 是持久化的实体。 Kubernetes 使用这些实体去表示整个集群的状态。它们主要描述了如下信息: 哪些容器化应用在运行(以及在哪些节点上) 可以被应用使用的资源 关于应用运行时表现的策略,比如重启策略、升级策略,以及容错策略kubernetes对象的类别资源对象的类别PodPod 是最小的可部署的 Kubernetes 对象模型。Pod 表示集群上正在运行的进程。一...

2020-11-18 18:21:01 453

原创 Kubernetes基础篇——kubernetes1.19.0架构原理与特性

kubernetes是谷歌开源的容器管理平台,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能核心组件Kubernetes主要由以下几个核心组件组成:etcd 保存了整个集群的状态;apiserver 提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制;controller manager 负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;scheduler 负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上;.

2020-11-17 18:27:22 356 1

原创 kubernetes运维——CentOS 7 部署Kubernetes 1.19.0 集群测试环境

1、准备三台测试机器安装centos7并配置好环境系统CentOS Linux release 7.8.2003 (Core)内存 2GCPU 双核磁盘 50G安装过程:[root@slave122 opt]# yum install -y kubelet-1.19.0 kubeadm-1.19.0 kubectl-1.19.0Loaded plugins: fastestmirrorLoading mirror speeds from cached hostfileCoul...

2020-11-16 19:49:34 1056

原创 kubernetes运维——集群添加节点报错error execution phase preflight: couldn‘t validate the identity of the ……

在对kubernetes 1.19.0 集群扩容的时候报错失败,控制台打印信息如下[preflight] Running pre-flight checkserror execution phase preflight: couldn't validate the identity of the API Server: could not find a JWS signature in the cluster-info ConfigMap for token ID "9igmi0"To see

2020-11-13 10:38:44 4995

原创 Flink编程模型详解

Flink 为流式/批式处理应用程序的开发提供了Stateful Stream Processing、DataStream/DataSet ApI 、Table API和SQL这四个不同级别的抽象,如下如所示:1、SQL这层抽象在语义和程序表达式上都类似于 Table API,但是其程序实现都是 SQL 查询表达式。SQL 抽象与 Table API 抽象之间的关联是非常紧密的,并且 SQL 查询语句可以在 Table API 中定义的表上执行。2、Table API以表(Table

2020-10-22 00:05:10 607

原创 Flink的滚动窗口、会话窗口、滑动窗口及其应用

Flink窗口

2020-10-13 23:53:11 3036

原创 OLTP,OLAP以及HTAP的区别

OLTP,OLAP以及HTAP的区别本文链接:https://blog.csdn.net/ZG_24/article/details/87854982收起OLTPOn-Line Transaction Processing联机事务处理过程(OLTP)也称为面向交易的处理过程,其基本特征是前台接收的用户数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果,是对用户操作快速响应的方式之一。这样做的最大优点是可以即时地处理输入的数据,及时地回答。也称为实时系统(Real tim

2020-09-28 12:32:21 837

原创 Hive架构原理与实战——apache-hive-3.1.2+Mysql部署与配置

Hive是一个数据仓库基础工具在Hadoop中用来处理结构化数据。它架构在Hadoop之上,总归为大数据,并使得查询和分析方便。并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行Hive特点它存储架构在一个数据库中并处理数据到HDFS。它是专为OLAP设计。它提供SQL类型语言查询叫HiveQL或HQL。它是熟知,快速,可扩展和可扩展的。Hive架构下面的组件图描绘了Hive的结构:该组件图包含不同的单元。下表描述每个单元: 单元名

2020-09-23 23:25:30 1483 2

原创 HBase RIT异常分析及其解决方案, region(s)in transistion for more than 60000 milliseceonds

最近的一段时间,HBase集群突然出现了一些异常,偶尔部分机器会出现RIT的情况,

2020-09-20 23:21:22 4545

原创 HBase-2.2.4 Shell操作指令和Java Api归纳

Shell 数据定义create: 用于创建一个表。create 'order','info','user'create 'userlog','info','params','result'list: 用于列出HBase的所有表。hbase(main):009:0> listTABLEorderuserlog2 row(s)Took 0.0088 seconds=> ["order", "userlog"]disable: 用于禁用表。h.

2020-09-16 23:48:21 176

原创 HBase-2.2.4架构原理与完全分布式使用

HBase的架构通过上图我们可以得出Hbase中的每张表都按照一定的范围被分割成多个子表(HRegion),默认一个HRegion超过 256M 就要被分割成两个,由 HRegionServer管理,管理哪些HRegion由HMaster分配。现在我们来介绍一下HBase中的一些组成部件以及它们起到的作用:Client:包含访问HBase的接口,并维护cache来加快对HBase的访问。Zookeeper:HBase依赖Zookeeper,默认情况下HBase管理Zookeeper.

2020-09-15 23:58:43 256

原创 HDFS架构与可靠性

Block数据块基本存储单位,一般为128M(Hadoop1.x默认64M,Hadoop2.x默认128M)基本的读写单位,类似于磁盘的页,每次读写一块每个块默认复制三分存储到多台机器NameNode存储文件的metadata,运行时所有metadata数据都保存到内存,因此整个HDFS可存储的文件数受限于NameNode的内存大小 一个Block在NameNode中对应一条记录(一般一个block占用150字节),如果是大量的小文件,会消耗大量内存。同时map tas...

2020-09-07 23:23:34 282

原创 Hadoop大数据生态系统测试环境构建——基于CentOS7.8部署Hadoop3.1.4集群

1、准备三台测试机器并配置好网络和免密登录, 配置4G 双核 500G ,系统 CentOS Linux release 7.8.2003 (Core)(如果觉得麻烦可以在虚拟机上搭建) ip和hostname分别是: 192.168.236.128 Master.Hadoop 192.168.236.129 Slave1.Hadoop 192.168.236.130 Slave2.Hadoop我们可以先简单试下有没有问题...

2020-09-04 12:07:53 1138

原创 YARN资源调度中的细节探究

1. Job submission从ResourceManager中获取一个Application ID 检查作业输出配置,计算输入分片 拷贝作业资源(job jar、配置文件、分片信息)到HDFS,以便后面任务的执行2. Job initializationResourceManager将作业递交给Scheduler(有很多调度算法,一般是根据优先级)Scheduler为作业分配一个Container,ResourceManager就加载一个application master ...

2020-09-01 23:55:50 445

原创 深入理解主从Reactor多线程模型

Reactor主线程对象通过select监听连接事件,通过Acceptor处理连接事件当Acceptor处理连接事件后,主reactor将连接分配给从Reactor从Reactor将连接加入到连接队列进行监听,并创建handler进行各种事件处理当有新事件发生时,从reactor就会对用对应的handler处理...

2020-06-28 23:53:02 3874

原创 kubernetes的dashboard报错unable to decode no kind Role is registered for version

dashboard报错unable to decode "https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml": no kind "Role" is registered for version "rbac.authorization.k8s.io/v1"unable to decode "https://raw.githubusercontent.com/kubernete

2020-06-15 23:51:01 4010 4

原创 深入理解LSM存储模型

LSM(log-structed-merge-tree)

2020-05-27 23:56:34 1190

原创 hbase/hadoop异常:No lease on /hbase/archive/data/... File is not open for writing

./hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot "MODEL.THIRD_PARTY_KV-11211752-snapshot" -copy-from hdfs://fromIP:9000/hbase -copy-to hdfs://toIP:9000/hbase -mappers 40 -bandwidth 300错误日志;org.apache.hadoop.hdfs.server.namenode.LeaseExp

2020-05-23 00:03:45 809

原创 BIO、NIO、AIO、同步、异步、阻塞、非阻塞和多路复用模型

IO、NIO、BIO、AIO、阻塞、非阻塞和多路复用

2020-05-13 20:52:43 287

原创 快速排序、归并排序、选择排序和插入排序的Java实现

快速排序 快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists)。快速排序又是一种分而治之思想在排序算法上的典型应用。本质上来看,快速排序应该算是在冒泡排序基础上的递归分治法。在平均状况下,排序 n 个项目要 Ο(nlogn) 次比较。在最坏状况下则需要 Ο(n2) 次比较,但这种状况并不常见。事实上,快速排序通常明显比其他 Ο(nlogn) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地..

2020-05-13 20:32:53 398

原创 红黑树的实现与应用

红黑树

2020-05-03 23:41:23 609

原创 SpringBoot自动配置实现平台核心服务自动加载

什么是自动配置 看下官方原文咋说的,Spring Boot auto-configuration attempts to automatically configure your Spring application based on the jar dependencies that you have added. For example, ifHSQLDBis on your c...

2020-05-01 23:02:54 255

原创 真的搞懂了网络七层协议吗?

真的搞懂了网络七层协议吗?

2020-04-30 23:38:32 246

原创 git 报错Could not read from remote repository. Please make sure you have the correct access rights an

最近在拉取github、gitlab中的项目时,git 报了这样的错误,错误很简单,但是也是常碰到的Warning: Permanently added the RSA host key for IP address '13.250.177.223' to the list of known [email protected]: Permission denied (publickey...

2020-04-28 00:02:25 955

原创 HBase海量业务数据二级查询实现毫秒级响应,HBase原理与数据模型设计详解

为什么需要使用HBase做海量业务数据的存储1、扩展性强、容量大,支持百亿行、百万列数据的存储。HBase底层基于HDFS,可动态增加节点2、高可靠性,WAL机制保证数据的安全性,Replication机制保证集群的数据容灾能力3、高性能,由于底层的LSM数据结构和RowKey有序排序,HBase具备较好的随机读取性能,RowKey的查询可达毫秒级响应4、稀疏性、面向列存储,空列不...

2020-04-27 23:29:03 853

原创 真的搞懂Mybatis原理了吗

Mybatis是一个开源的支持定制化 SQL、存储过程以及高级映射的半ORM框架它的底层操作封装了JDBC的API,工作原理以及核心流程与JDBC的使用步骤一脉相承首先弄清楚核心对象(1)SqlSession对象,该对象中包含了执行SQL语句的所有方法,类似于JDBC里面的Connection 。(2)Executor接口,它将根据SqlSession传递的参数动态地生成需要执行的S...

2020-04-26 23:52:39 138

空空如也

空空如也

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

TA关注的人

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