
Java 组件使用
文章平均质量分 90
Java 组件使用,包括线程池技术。
偶入编程深似海
这个作者很懒,什么都没留下…
展开
-
第二节 Redis Cluster 集群与性能调优 2022-1-2
Java组件总目录Redis Cluster 集群与性能调优Java组件总目录一 Redis-cluster 集群1.1 RedisCluster 集群创建1.2 工作原理节点说明1.3 Redis-cluster 投票:容错节点失效判断集群失效判断1.4 优缺点1.5 主从切换1.6 副本漂移1.7 扩展集群1 添加节点2 分配slot1.8 添加从节点1.9 收缩集群1 首先删除master对应的slave2 清空master的slot3 下线(删除)节点二 Redis数据存储的细节2.1 内存结构2原创 2022-01-04 19:22:43 · 2342 阅读 · 2 评论 -
第一节 Redis 使用及哨兵集群 2022-1-2
Java组件总目录Redis 高级数据类型及基础特性Java组件总目录一 Redis基本数据类型使用场景1 String2 List 存储列表结构3 Hash4 Set5 Zset二级目录三级目录二 Redis 的补充数据类型1 BitMap2 HyperLogLog3 Geospatial三 Redis 消息模式 (了解)3.1 队列模式注意事项:缺点:3.2 发布订阅模式四 Redis Stream4.1 消息队列相关命令:4.2 消费者组相关命令:五 Redis 事务5.1 事务失败处理Redis原创 2022-01-03 18:48:40 · 1643 阅读 · 2 评论 -
Nignx 应用与功能实现 2022-1-1
Java调优进阶总目录Nginx 核心功能与配置Java调优进阶总目录1 请求定位1.1 资源访问1.2 路径匹配优先级1.2.1 普通匹配1.2.2 长路径相匹配1.2.3 正则匹配1.2.4 短路匹配1.2.5 精确匹配1.3 缓存配置1.3.1 http{}模块的缓存全局定义proxy_cache_pathproxy_temp_path1.3.2 location{}模块的缓存局部定义1 proxy_cache mycache2 proxy_cache_key3 proxy_cache_bypass原创 2022-01-01 20:49:34 · 1660 阅读 · 5 评论 -
Nginx 介绍、安装与参数调优 2021-12-31
Java组件总目录Nginx 核心功能与配置Java组件总目录一 Nginx 概述1 代理服务器1.1 正向代理1.2 反向代理2 Nginx服务器特点2.1 高并发2.2 低消耗2.3 热部署2.4 高可用2.5 高扩展3 Nginx 的下载与安装3.1 安装4 Nginx 命令说明4.1 测试配置文件命令4.2 停止命令4.3 平滑重启命令 nginx –s reload二 Niginx 性能调优1 零拷贝(Zero Copy)1.1 传统拷贝方式1.2 零拷贝方式1.3 Gather Copy DM原创 2022-01-01 11:48:26 · 1804 阅读 · 0 评论 -
第2节 Java8 Stream 流编程(Lambda 表达式) 2021-12-29
Java组件总目录Java8 Stream 流编程Java组件总目录1 Stream 概述1 注意的问题2 惰性求值2 Stream 流的创建3 并行处理与串行处理4 Stream 流的中间操作1 无状态操作1 map(Function1 Stream 概述它属于结构化编程的一种,主要思想是把对数据的一连串操作通过链式函数调用的方式来实现。JDK8 中,Stream 是一个接口,其中包含了很多的方法,这些方法可以对流中的数据进行操作。这些方法共分为三类:创建 Stream 接口对象的方法,这些方原创 2021-12-30 10:47:32 · 494 阅读 · 0 评论 -
第1节 Java8 Stream 流编程(Lambda 表达式) 2021-12-29
Java组件总目录Java8 Stream 流编程Java组件总目录一、Lambda 表达式1 无参数无返回值2 有参数有返回值3 函数式接口与默认方法二、函数式接口编程1 Predicate 接口2 Consumer 接口3 Supplier 接口4 Function 接口5 UnaryOperator 接口6 BiFunction 接口7 BinaryOperator 接口三、Lambda 方法引用一、Lambda 表达式Lambda表达式是JDK8中出现的新特性,其是函数接口的一种实现方式原创 2021-12-29 20:05:25 · 595 阅读 · 0 评论 -
第5节 MySQL 性能优化篇 2021-12-28
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、性能优化的思路二、慢查询日志开启慢查询功能慢查询日志格式分析慢查询日志的工具三、查看执行计划参数说明1 id2 select_type(重要)3 table4 partitions5 type(重要)1 const(重要)system2 eq_ref(重要)3 ref4 fulltext5 ref_or_null6 unique_subquery7 index_subquery8 range(重要)9 index_merge10原创 2021-12-28 18:42:43 · 1430 阅读 · 0 评论 -
第3节 MySQL 索引数据结构及使用 2021-12-28
Java组件总目录MySQL 索引数据结构及使用Java组件总目录一、索引介绍二、索引的优缺点1.优势2.劣势三、索引的数据结构1.索引的要求2.数据结构的选用1 Hash表2 二叉排序树(二叉查找树)3 平衡二叉查找树4 B树:改造二叉树主要特点:B树的缺点:5 B+树:改造B树等值查询过程范围查询过程四、MySQL索引实现主键索引辅助索引组合索引一、索引介绍官方介绍索引是帮助MySQL 高效获取数据的数据结构 。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度 。一般来说原创 2021-12-28 16:53:45 · 1265 阅读 · 0 评论 -
第4节 MySQL 锁的分类及实现原理 2021-12-25
Java组件总目录提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档MySQL 锁的分类Java组件总目录一、Upate 语句执行整体流程二、MySQL锁介绍1.锁的粒度分类2.锁的功能分类共享锁Shared Locks(S锁):排他锁Exclusive Locks(X锁):三、 全局锁四、MySQL表级锁1. 表读、写锁读锁:写锁2. 元数据锁3. 意向锁4. 自增锁五、MySQL行级锁1 行锁介绍按照锁定范围划分按照功能划分2 意向锁 Intention Locks2 作用3 记录锁原创 2021-12-25 14:18:26 · 1012 阅读 · 0 评论 -
第2节 Mysql事务及事务实现原理 2021-12-24
Java组件总目录Mysql 事务Java组件总目录一、插入数据执行流程二、事务概述三、事务的隔离级别四、事务和MVCC底层原理详解1 思考:丢失更新2 解决方案解决方案1:LBCC解决方案2:MVCC3 InnoDB的MVCC实现1 undo log更新数据的版本链结构2 read viewReadView 的主要变量不同事务隔离级别的实现方式五、 MVCC下的读操作1.当前读2. 快照读六、 事务回滚和数据恢复redo log数据库事务的整个流程正常情况未提交崩溃提交后崩溃一、插入数据执行流程原创 2021-12-24 21:06:43 · 998 阅读 · 0 评论 -
第1节 MySQL 架构篇 2021-12-24
Java组件总目录MySQL 架构篇Java组件总目录一、mysql文件结构1. 日志文件(顺序IO)1)错误日志(errorlog)2)二进制日志(bin log)3)通用查询日志(general query log)4)慢查询日志(slow query log)2. 数据文件(随机IO)redolog文件:InnoDB数据文件:MyIsam数据文件二、mysq的架构三、MySqlServer层对象Sql语句执行流程四、InnoDB存储引擎1 InnoDB架构图2 InnoDB磁盘文件 (ON-Disk原创 2021-12-24 13:38:59 · 1875 阅读 · 0 评论 -
FastDFS集群同步合并压缩机制介绍
FastDFS整合Nginx与集群问题说明一、FastDFS 的 Nginx 模块原理分析1.1 模块介绍二、集群下的文件同步2.1 12.1何时开启同步线程2.2 同步规则2.3 同步流程1. Binlog 目录结构Mark 文件Binlog 文件2.4 同步过程1 启动同步线程2 同步线程执行过程2.5 文件同步时间戳2.6问题解释三、 合并存储1 合并存储好处海量小文件存储问题1 元数据管理低效2 数据布局低效3 IO访问流程复杂2 合并存储介绍3 合并存储介绍概念区分Trunk文件内部结构合并存储配原创 2021-12-23 15:37:07 · 3667 阅读 · 0 评论 -
FastDFS单机及集群环境搭建
能够完成FastDFS环境搭建(使用docker镜像即可)在Docker 环境下安装FastDFS,集群FastDFS搭建原创 2021-12-18 16:29:12 · 2645 阅读 · 0 评论 -
FastDFS分布式文件系统
FastDFS一一、传统文件存储弊端1 单体架构项目2 集群架构3 使用第三方文件服务器二、使用步骤1.引入库2.读入数据总结一、传统文件存储弊端1 单体架构项目单体架构项目–所有业务在一个项目中。存在的不足1、文件越来越多,性能变差。2、安全性3、单点故障2 集群架构1、文件越来越多,性能变差。文件和 jar 包在一起。2、IO资源浪费 (第三方服务器存储文件)3、负载均衡问题 (nginx服务器(理论并发量性能5w,实际3-4w), 1vs, F5)集群情况下,负载均衡问题,主从模原创 2021-12-18 14:32:01 · 1082 阅读 · 0 评论 -
持久层优化-大数据保存数据库优化案例 2021-10-11
持久层优化一、 功能与需求说明对9万条数据表复制100次,保存到新表中,得到数量量为900万的数据表。1.1 第一版:基础实现 @Transactional public Result buildData(int count) { log.info("循环次数:" + count); log.info("插入数据,开始时间:" + new SimpleDateFormat("HH:mm:ss:SSS").format(new Date()));原创 2021-10-11 23:58:39 · 464 阅读 · 0 评论 -
架构演进-从单体架构到分布式架构 2021-10-11
一、单体架构特点:1、所有的功能集成在一个项目工程中。2、所有的功能打一个war包部署到服务器。3、应用与数据库分开部署。4、通过部署应用集群和数据库集群来提高系统的性能。优点:项目架构简单,前期开发成本低,周期短,小型项目的首选。缺点:1、全部功能集成在一个工程中,对于大型项目不易开发、扩展及维护。2、系统性能扩展只能通过扩展集群结点,成本高、有瓶颈。3、技术栈受限。二、瓶颈的突破单体架构存在瓶颈:并发量等方面,为解决相关的问题。2.1 持久层突破关系型数据库以MySQL为原创 2021-10-11 22:46:32 · 976 阅读 · 0 评论 -
docker下的Nignx 安装与静态文件配置 2021-10-3
Java调优进阶总目录docker下的Nignx 安装与静态文件配置一、 docker下的Nignx 安装使用docker 安装Nignx的命令如下。先安装复制配置文件后删除,重新构建。docker ps -a #下载 docker pull nginx#运行docker -p 80:80 nginx -d nginx #复制配置文件 #在mydata创建nginx,存放nginx相关配置文件cd mydata mkdir nginx#拷贝nginx容器 etc/nginx下原创 2021-10-03 18:40:34 · 268 阅读 · 0 评论 -
持续集成Jenkins环境搭建 2021-10-02
Java调优模块总目录持续集成Jenkins环境搭建Jenkins基于Java开发,服务器必须是要有Java的运行环境!自动化构建、测试、打包、发布:将本地开发环境基本移植到云端!git、maven、wget、axel【多线程下载工具,下载快】、跨服务区异步文件同步rsync!tree。一、 Jenkins环境搭建Jenkins支持主从模式,这将会把构建任务分发到多个从节点去执行,这样就可以支撑起多个项目的大量 构建任务,提升构建效率。同时,你可以提供多种环境(如:开发环境、生产环境)来对同一个原创 2021-10-03 00:22:22 · 560 阅读 · 1 评论 -
Java调优模块总目录 2021-10-02
单体架构之性能优化集群与大数据处理Nignx 应用FastDFS分布式文件系统原创 2021-10-02 10:07:11 · 387 阅读 · 1 评论 -
Java异步编排 2021-09-11
Java 异步并发与池化技术异步计算Java 异步并发与池化技术一、什么是异步二 Future接口三、CompletableFuture接口实现异步编排3.1串行关系执行总结一、什么是异步异步调用实现一个不需要被等待的方法的返回值;让调用者(主线程)继续执行(异步执行);在 java 中,简单的讲就是开启另一个线程完成程序计算(子线程),使得调用者(主线程)继续执行,不需要等待计算的结果,但是调用者任然需要获取线程的计算结果(不需要同步阻塞等待)。调用后无需等待,任务交给子线程,主线程继续执行。原创 2021-09-12 14:49:21 · 2850 阅读 · 0 评论 -
Java线程创建的3种方法 2021-08-29
Java 线程1 创建的3种方法 1、继承 Thread 类,实现多线程2、 实现 Runnable 接口,实现多线程2.1 普通构建方式2.2 匿名内部类的构建方式2.3 lambda 表达式实现3 Callable + FutureTask 实现多线程3.1 普通实现方式3.2 匿名内部类3.3 lambda 表达式项目开发中,不会使用下面 3 种线程的实现方式,因为上面 3 种线程实现方式无法控制线程,可能会造成系统资源耗尽,浪费系统资源,造成系统的性能下降。仅做原理理解。1、继承 Thread原创 2021-08-30 00:12:30 · 311 阅读 · 0 评论 -
Java线程池的创建与使用 2021-09-11
Java 异步并发与池化技术Java多线程Java 异步并发与池化技术一、线程池是什么?1.1 线程从创建到消耗经历那些过程1.2 直接创建与线程池对比二、创建线程池2.1 线程池的使用2.2 参数说明2.3 使用ThreadPoolExecutor 类创建线程池2.3.1 参数说明2.3.2 参数设置三、队列使用一、线程池是什么?项目开发中,不会使用直接创建线程的方式,因为直接创建线程实现方式无法控制线程,可能会造成系统资源耗尽,浪费系统资源,造成系统的性能下降; 在企业业务开发中,必须使用线程池原创 2021-09-11 22:11:57 · 529 阅读 · 0 评论