【工作流】Activiti工作流引擎架构设计原理总结 Activiti是由Alfresco软件发布的业务流程管理(BPM)框架。它为新的BPMN 2.0标准提供了支持,包括支持对象管理组(OMG),面对新技术的机遇,诸如互操作性和云架构,提供技术实现。到目前为止,Activiti共有三个版本体系:...
跳跃列表(skipList)、压缩列表(zipList)和快速列表(quicklist) 跳跃列表(skipList)、压缩列表(zipList)和快速列表(quicklist)都是Redis底层重要的数据结构跳跃列表(skipList)Redis使用跳跃表作为有序集合键的底层实现之一,通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的,如果一个有序集合包含的元素数量比较多,又或者有序集合中元素的成员(member)是比较长的字符串时,Redis就会使用跳跃表来作为有序集合键的底层实现。Redis只在两个地方用到了跳跃表,一个是实现有序集合键,另一个是在集群节点
Flink的状态管理和端到端Exactly Once 语义实现 Flink的状态管理Flink 可以处理有状态的数据,通过自身的 state 机制来保障作业 失败时数据不丢失;Flink 的 checkpoint 和故障恢复算法保证了故障发生后应用状态的一致性。因此,Flink 能够在应用程序发生故障时,对应用程序透明,不造成正确性的影响。Flink 提供了内置的状态管理,可以把这些状态存储在Flink内部,而不需要把它存储在外部系统。这样做的好处是第一降低了计算引擎对外部系统的依赖以及部署,使运维更加简单;第二,对性能带来了极大的提升:如果通过外部去访问
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...
块存储、文件系统存储以及对象存储的特性及其应用 块存储如磁盘阵列、硬盘主要是将裸磁盘的空间映射给主机使用,提供数据保护,提高容量,提升读写效率,但主机之间无法共享数据使用场景:虚拟机磁盘存储分配、日志存储、文件存储文件系统存储如FTP、NFS服务器解决了块存储文件无法 共享的问题造价低、方便文件共享,但读写速度低,传输效率慢适用场景:日志存储、有目录结构的文件存储对象存储结合块存储和文件系统存储的优点,具备块存储的读写高速,也具备文件存储的共享特性,提供了具有高性能,高可靠性,跨平台以及安全的数..
SpringBoot源码——SpringApplication对象初始化过程 Spring Boot启动时会创建一个SpringApplication对象,所以SpringBoot的初始化过程其实是创建并初始化SpringApplication对象的过程。
SpringBoot源码—— @SpringBootApplication注解代替@Configuration, @EnableAutoConfiguration 和 @ComponentScan @SpringBootApplication 作用这个注解是替代@Configuration, @EnableAutoConfiguration 和 @ComponentScan 注解的,这样开发起来更方便,不用再主类里面写三个注解可以看到源码@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@SpringBootConfiguration@EnableAutoConf
人工智能(AI)、深度学习(DL)、机器学习(ML)、神经网络(RNN/CNN)、自然语言处理(NLP)等概念科普 机器学习 机器学习(MachineLearning)简称ML。机器学习属于人工智能的一个分支,也是人工智能的和核心。机器学习理论主要是设计和分析一些让计算机可以自动”学习“的算法。深度学习 深度学习(DeepLearning)简称DL。最初的深度学习是利用深度神经网络来解决特征表达的一种学习过程。深度神经网络本身并不是一个全新的概念,可大致理解为包含多个隐含层的神经网络结构。为了提高深层神经网络的训练效果,人们对神经元的连接方法和激活函数等方面做出相应的调整。深度学习是机器学习研究中...
kubernetes基础篇——kubectl常用命令总结 在接触kubernetes的过程中经常会用到kubectl与集群通信,总结下常用的命令get获取列出一个或多个资源的信息。(资源分为pod、instance、service等很多种) Namespace Pod Node Deployment Service ReplicaSetkubectl get cs # 查看集群状态kubectl get nodes # 查看集群节...
使用Protobuf实现私有协议消息编解码 Protobuf是一种轻便高效的结构化数据存储格式,常用于序列化,以message的方式管理数据、跨平台、跨语言、高性能、高可靠 语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。 种灵活,高效,自动化机制的结构数据序列化方法-可类比 XML,但是比 XML 更小(3 ~ 10倍)、更快(20 ~ 100倍)、更为简单。定义个简单消息syntax="proto3";//生成的包名option java_package="fun.codenow.socket
kubernetes基础篇——kubernetes存储机制 ##kubernetes存储volume(卷)####为何需要使用volume处理存储1、防止容器重新创建启动时导致的数据丢失2、解决容器之间的文件数据共享问题####kubernetes的volume和docker的volume之间的区别Docker也有Volume的概念,但对它只有少量且松散的管理。在Docker中,Volume是磁盘上或者另外一个容器内的一个目录。直到最近,Docker才支持对基于本地磁盘的Volume的生存期进行管理。...
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
Kubernetes基础篇——Pod以及Pod控制器应用 创建主容器为其必须的操作,初始化容器(init containter)、启动后钩子post start hook、存活性探测、就绪性探测、pre stop hook为可选执行。pause容器Pod总会处于以下几个相位(phase)之一: Pending:创建了pod资源并存入etcd中,但尚未完成调度,或扔处于从仓库下载镜像的过程 Running:Pod已经被调度到某节点,并且所有容器都已经被kubectl创建完成 Succeeded:Pod中的所有容器都已...
Kubernetes基础篇——资源对象及其yaml方式描述 Kubernetes对象的概念在 Kubernetes 系统中,Kubernetes 对象 是持久化的实体。 Kubernetes 使用这些实体去表示整个集群的状态。它们主要描述了如下信息: 哪些容器化应用在运行(以及在哪些节点上) 可以被应用使用的资源 关于应用运行时表现的策略,比如重启策略、升级策略,以及容错策略kubernetes对象的类别资源对象的类别PodPod 是最小的可部署的 Kubernetes 对象模型。Pod 表示集群上正在运行的进程。一...
Kubernetes基础篇——kubernetes1.19.0架构原理与特性 kubernetes是谷歌开源的容器管理平台,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能核心组件Kubernetes主要由以下几个核心组件组成:etcd 保存了整个集群的状态;apiserver 提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制;controller manager 负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;scheduler 负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上;.
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...
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
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