程序人生
赵士杰_
learning!!!
展开
-
Concurrency
一、简介 多线程表示同一应用程序中具有多个执行线程 二、说明 线程 守护线程 程序运行时在后台提供服务的线程,不属于程序中不可或缺的部分 当所有非守护线程结束时,程序也就终止,同时会杀死所有守护线程 JAVA 线程状态 新建:创建后尚未启动 可运行:正在JVM中运行(具体有没有运行要看操作系统的资源调度) 阻塞:请求获取 monitor lock (被动) 无限期等待:等待其它线程显式地唤醒 (主动) 限期等待:在一定时间之后会被系统自动唤醒 (主动) 死亡:线程运行结束或产生了异常而结束 实原创 2020-09-29 19:50:24 · 175 阅读 · 0 评论 -
Kafka
一、简介 Kafka 是一个分布式消息队列 二、说明 设计 生产者 负载均衡 批量异步发送 消费者 批量拉取数据 监听轮询、控制传输大小 单个分区单个消费者维持偏移量 流处理提供持久消费者ID 消息传递 幂等发送 流处理提供恰好一次传递 高可用 主从复制 通过zookeeper心跳机制保持会话 从节点同步主节点写入 平衡分区主从 ISR机制 只需两个副本和一次确认 无需为崩溃副本恢复完整数据 全部崩溃后则等待ISR副本或选择第一个副本 ack机制 高并发原创 2020-09-29 14:09:36 · 320 阅读 · 0 评论 -
Redis
一、简介 Redis 是一个非关系型内存键值数据库、支持不同类型的值、可持久化到磁盘 二、说明 相比于Memcached Redis Memcached 支持多种数据类型 仅支持字符串 RDB和AOF持久化 不支持持久化 Redis Cluster 不支持分布式 不固定大小存储、存在碎片 固定大小存储、存在浪费 使用场景 计数器 缓存 查找表 消息队列 会话缓存 分布式锁实现 数据类型 STRING 值:字符串、整数或者浮点数 用例: 缓存HTML 操作: 对整原创 2020-09-27 14:18:32 · 153 阅读 · 0 评论 -
JAVA IO
一、简介 Java对数据的操作是通过流的方式,通过IO流来处理设备之间的数据传输,上传和下载 二、说明 Java 的 IO 操作有以下几类 字节IO:InputStream 和 OutputStream 字符IO:Reader 和 Writer 对象IO:Serializable 磁盘IO:File 网络IO:Socket 非阻塞IO:NIO 字节IO 采用装饰者模式实现 InputStream:字节输入流,抽象类 OutputStream:字节输出流,抽象类 FileInputStream:文件输入原创 2020-09-22 19:21:46 · 157 阅读 · 0 评论 -
Elasticsearch
一、简介 Elasticsearch:是一个分布式、可扩展、近实时的搜索与数据分析引擎 二、说明 应用 结构化搜索 数据分析 复杂的人类语言处理 地理位置和对象间关联关系 存储 //TODO 高可用 至少三个主节点 每个分片至少两个节点 每个分片至少有两个副本(一个主副本和一个或多个副本) 连接查询过程 query 1、协调节点广播每一个shard、命中文档的TopN优先级队列 2、每个shard返回doc_id和_source给协调节点 3、协调节点全局排序 fetch 4、协调节点发送原创 2020-09-22 13:57:21 · 103 阅读 · 0 评论 -
Git
一、简介 Git 是一个分布式版本控制系统 二、说明 相比于SVN Git 分布式 以元数据形式存储 无全局版本号 分支通过指针维护 SVN 集中式 以文件形式存储 有全局版本号 分支为全新目录 工作区、暂存区、版本库 工作区:本地目录 暂存区:索引文件 版本库:维护版本、分为本地仓库和远程仓库 .gitignore 文件 提交时忽略的文件: 操作系统自动生成的文件,比如缩略图 编译生成的中间文件,比如 Java 编译产生的 .class 文件 自己的敏感信息,比如存放口令的配置文原创 2020-09-22 11:57:12 · 73 阅读 · 0 评论 -
Spark
一、简介 Spark:是一个并行分布式计算引擎 二、说明 相比于MapReduce 数据处理过程 MapReduce:把数据从磁盘读到内存,在内存中完成计算,再写回磁盘。下一个mr程序要继续对这批数据进行处理,又要重复这一过程。有多少个mr程序,就有多少次读磁盘和写磁盘的过程,效率低下。 Spark:把数据读到内存之后,在多个RDD之间形成转换流,而RDD借助于exector的缓存,是可以在内存中完成计算。因此只需要一次读和一次写磁盘的过程。 任务处理流程 1、client提交应用 2、mast原创 2020-09-21 21:38:50 · 83 阅读 · 0 评论 -
Docker
一、简介 Docker:主要解决环境配置问题,它是一种虚拟化技术,对进程进行隔离,被隔离的进程独立于宿主操作系统和其它隔离的进程。 二、说明 相对于虚拟机 虚拟机也是一种虚拟化技术,它与 Docker 最大的区别在于它是通过模拟硬件,并在硬件上安装操作系统来实现。 启动速度: 虚拟机需要先启动虚拟机的操作系统,再启动应用 Docker相当于启动宿主操作系统上的一个进程 资源占用: 虚拟机是一个完整的操作系统,需要占用大量的磁盘、内存和CPU资源,一台机器只能开启几十个的虚拟机 Docker是一原创 2020-09-21 21:25:49 · 123 阅读 · 0 评论 -
Activiti
一、简介 Activiti:是领先的轻量级,基于Java的开源BPMN引擎,可满足ERP、OA等项目中的流程自动化需求 工作流:是将一组任务组织起来以完成某个经营过程。为了实现某个业务目标,利用计算机在多个参与者之间按某种预定规则自动传递文档、信息或者任务。可以修改配置业务流程,减少代码的修改 二、说明 1、Activiti的常用概念 部署(deployment):一次资源的部署 实例(instance):一个流程每发起一次就是一个实例 执行(execution):一个流程实例的执行路径 任务原创 2020-09-21 17:39:23 · 177 阅读 · 0 评论