Java知识梳理(行业讲座培训课件模板)_第1页
Java知识梳理(行业讲座培训课件模板)_第2页
Java知识梳理(行业讲座培训课件模板)_第3页
Java知识梳理(行业讲座培训课件模板)_第4页
Java知识梳理(行业讲座培训课件模板)_第5页
已阅读5页,还剩97页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、JAVA知识梳理演讲人:XXX20XX-XX-XX(行业讲座培训课件)JAVA知识梳理演讲人:XXX20XX-XX-XX(行业讲座01项目中的架构(行业讲座培训课件)01项目中的架构(行业讲座培训课件)项目中的架构前端 运维持久层消息队列全局搜索(行业讲座培训课件)项目中的架构前端 (行业讲座培训课件)项目中的架构前端 VueHtmlAjax(行业讲座培训课件)项目中的架构前端 VueHtmlAjax(行业讲座培训课件)项目中的架构运维nginx分发1Docker2Zookeeper(cp原则)3Redis4(行业讲座培训课件)项目中的架构运维nginx分发1Docker2Zookeep持久化

2、节点PERSISTENT 持久化节点: 所谓持久节点,是指在节点创建后,就一直存在,直到 有删除操作来主动清除这个节点。否则不会因为创建该节点的客户端会话失效而消失。Zookeeper(cp原则)(行业讲座培训课件)持久化节点PERSISTENT 持久化节点: 所谓持久节点,持久化有序节点PERSISTENT_SEQUENTIAL 持久顺序节点:这类节点的基本特性和上面的节点类 型是一致的。额外的特性是,在 ZK 中,每个父节点会为他的第一级子节点维护一份时序, 会记录每个子节点创建的先后顺序。基于这个特性,在创建子节点的时候,可以设置这个属 性,那么在创建节点过程中,ZK 会自动为给定节点名

3、加上一个数字后缀,作为新的节点名。 这个数字后缀的范围是整型的最大值。 在创建节点的时候只需要传入节点 “/test_”,这样 之后,zookeeper 自动会给”test_”后面补充数字。Zookeeper(cp原则)(行业讲座培训课件)持久化有序节点PERSISTENT_SEQUENTIAL 持临时节点EPHEMERAL 临时节点:和持久节点不同的是,临时节点的生命周期和客户端会 话绑定。也就是说,如果客户端会话失效,那么这个节点就会自动被清除掉。注意,这里提 到的是会话失效,而非连接断开。另外,在临时节点下面不能创建子节点。 这里还要注意一件事,就是当你客户端会话失效后,所产生的节点也不

4、是一下子就消失 了,也要过一段时间,大概是 10 秒以内,可以试一下,本机操作生成节点,在服务器端用 命令来查看当前的节点数目,你会发现客户端已经 stop,但是产生的节点还在。Zookeeper(cp原则)(行业讲座培训课件)临时节点EPHEMERAL 临时节点:和持久节点不同的是,临临时有序节点EPHEMERAL_SEQUENTIAL 临时自动编号节点:此节点是属于临时节点,不过带 有顺序,客户端会话结束节点就消失 Zookeeper(cp原则)(行业讲座培训课件)临时有序节点EPHEMERAL_SEQUENTIAL 临时自设计目的https:/0103最终一致性可靠性实时性0204050

5、6等待无关(wait-free)原子性顺序性(行业讲座培训课件)设计目的0103最终一致最终一致性client无论连接到那一台server,那么它得到的都是同样的视图,这是zookeeper最重要的性能设计目的(行业讲座培训课件)最终一致性client无论连接到那一台server,那么它得可靠性简单、健壮、良好的性能,如果一个消息被一台服务器接受, 那么它将被所有的服务器接受设计目的(行业讲座培训课件)可靠性简单、健壮、良好的性能,如果一个消息被一台服务器接受,实时性Zookeeper 保证客户端将在一个时间间隔范围内获得服务器的更新信息,或 者服务器失效的信息。但由于网络延时等原因,Zook

6、eeper 不能保证两个客户端能同时得到 刚更新的数据,如果需要最新数据,应该在读数据之前调用 sync()接口。设计目的实时性Zookeeper 保证客户端将在一个时间间隔范围内获等待无关(wait-free)慢的或者失效的 client 不得干预快速的 client 的请求,使得每 个 client 都能有效的等待。设计目的(行业讲座培训课件)(行业讲座培训课件)等待无关(wait-free)慢的或者失效的 client 原子性更新只有成功或者失败设计目的原子性更新只有成功或者失败设计目的顺序性全局顺序偏序设计目的(行业讲座培训课件)顺序性全局顺序设计目的(行业讲座培训课件)BCDEA1.

7、string:最基本的数据类型,二进制安全的字符串,最大512M。2.list:按照添加顺序保持顺序的字符串列表。 232-1(4GB)3.set:无序的字符串集合,不存在重复的元素。232-1(4GB)4.sorted set:已排序的字符串集合。232-1(4GB)5.hash:key-value对的一种集合。232-1(4GB)Redis支持数据格式(行业讲座培训课件)BCDEA1.string:最基本的数据类型,二进制安全的字穿透Redis指的是:访问不存在的key,导致直接穿透缓存,访问数据库穿透Redis指的是:访问不存在的key,导致直接穿透缓存,指的是:存在redis中的key

8、同一时间失效,导致流量全部访问数据库限流, 降级, 本地ehcache缓存雪崩指的是:存在redis中的key同一时间失效,导致流量全部访击穿 缓存中的热点key突然失效, 原本走缓存的大量请求直接打向了数据库, 就好像在缓存中击穿了一个洞 1.在被查询的数据上加互斥锁, 这样其他的请求只能等待击穿尽可能使用散列表(hashes),散列表(是说散列表里面存储的数少)使用的内存非常小,所以你应该尽可能的将你的数据模型抽象到一个散列表里面。比如你的web系统中有一个用户对象,不要为这个用户的名称,姓氏,邮箱,密码设置单独的key,而是应该把这个用户的所有信息存储到一张散列表里面.Redis内存优化

9、尽可能使用散列表(hashes),散列表(是说散列表里面存储项目中的架构持久层mybatis01druid02hibernate03项目中的架构持久层mybatis01druid02hibermybatis01手写sql灵活、高效能够很好的集成spring学习简单,半ORM框架优点02移植性差sql能力要求较高缺点03#,是预处理,替换成? 使用PreparedStatement替换值$ 直接替换值#和$的区别是什么?mybatis01手写sql灵活、高效优点02移植性差缺点0消息队列RabbitMq项目中的架构消息队列RabbitMq项目中的架构全局搜索Elasticsearch(ES)项目

10、中的架构全局搜索Elasticsearch(ES)项目中的架构02多线程02多线程多线程线程池volatile作用ReentrantLock与Synchronized JUCAQS(AbstractQuenedSynchronizer) 多线程线程池多线程线程池SingleThreadExecutor1FixedThreadPool 2CachedThreadPool3ScheduledThreadPool4多线程线程池SingleThreadExecutor1FixSingleThreadExecutor这 个 线 程 池 只 有 一 个 核 心 线 程 在 工 作 ,也 就 是 相 当 于

11、 单 线 程 串 行 执 行 所 有 任 务 。如 果 这 个 唯 一 的 线 程 因 为 异 常 结 束 ,那 么 会 有 一 个 新 的 线 程 来 替 代 它 。 此 线 程 池 保 证 所 有 任 务 的 执 行 顺 序 按 照 任 务 的 提 交 顺 序 执 行SingleThreadExecutor这 个 线 程 池 FixedThreadPool 固定线程池:只 有 核 心 线 程 。 每 次 提 交 一 个 任 务 就 创 建 一 个 线 程 ,直 到 线 程 达 到 线 程 池 的 最 大 大 小 。线 程 池 的 大 小 一 旦 达 到 最 大 值 就 会 保 持 不 变

12、,如 果 某 个 线 程 因 为 执 行 异 常 而 结 束 ,那 么 线 程 池 会 补 充 一 个 新 线 程 。 FixedThreadPool 固定线程池:只 有 核 心 CachedThreadPool无边界线程池, 会回收空闲的的线程, 任务增加时也会新建线程(数量由JVM指定),通常用于短任务 CachedThreadPool无边界线程池, 会回收空闲的核 心 线 程 池 固 定 , 大 小 无 限 的 线 程 池 。ScheduledThreadPool核 心 线 程 池 固 定 , 大 小 无 限 的 线 程 多线程volatile作用AB线程间可见:当一个线程修改值后, 其

13、它线程立即可见禁止指令重拍多线程volatile作用AB线程间可见:当一个线程修改值后ReentrantLock与Synchronized 特点:要么不占, 要么独占多线程ReentrantLock与Synchronized 特点:reentrantLock 优点 等待可中断超时直接返回 可判断是否有其他线程等待该锁可实现公平锁高竞争的情况下, 性能维持常态缺点 不可以自动释放锁,需要手动unlock reentrantLock 优点synchronized 优点 JVM底层实现, 异常可自动释放锁低竞争的情况下, 性能比renntrantLock要好缺点 高竞争的情况下, 性能下降比较快sy

14、nchronized 优点多线程JUCCyclicBarrier 02Semaphor03CountDownLatch01多线程JUCCyclicBarrier 02SemaphorCountDownLatch阻塞当前线程,等所有的线程都处理后, 在运行 CountDownLatch阻塞当前线程,等所有的线程都处理循环栅栏:主要调用await方法,每调用一次减一, 计数为0的时候, 解除阻塞; CyclicBarrier 循环栅栏:主要调用await方法,每调用一次减一, 计数为0限制同一时间,访问资源的线程数量;aquire 获取许可, release 释放许可 Semaphor限制同一时间

15、,访问资源的线程数量;aquire 获取许可, AQS(AbstractQuenedSynchronizer) 构建同步锁的框架多线程AQS(AbstractQuenedSynchronizer03数据库03数据库数据库https:/0103最左侧原则簇拥索引与非簇拥索引索引02040506innoDbMyISAM事务数据库0103最左侧原则数据库设计范式数据库设计范式最左侧原则针对复合索引,先使用复合索引最前面的索引(精确查找),直到范围查找数据库最左侧原则针对复合索引,先使用复合索引最前面的索引(精确查找数据库簇拥索引与非簇拥索引簇拥索引:数据和索引放在一起非簇拥索引:数据与索引分开放数据

16、库簇拥索引与非簇拥索引簇拥索引:数据和索引放在一起非簇拥数据库索引hash索引01Btree索引02有序数组03数据库索引hash索引01Btree索引02有序数组03hash索引对于哈希索引来说,底层的数据结构就是哈希表,因此在绝大多数需求为单条记录查询的时候,可以选择哈希索引,查询性能最快;其余大部分场景,建议选择BTree索引;hash索引对于哈希索引来说,底层的数据结构就是哈希表,因此Btree索引B树 叶子节点存储多个元素(包含key和value)B+树 叶子节点只存key, 非叶子节点存储值;Btree索引B树有序数组有序数组在等值查询和范围查询场景中的性能都非常优秀。用二分法就可

17、以快速找到(时间复杂度为O(logN))。但是如果要往中间插入一条数据,则必须挪动后面的所有记录,成本较高。因此,有序数组只适用于静态存储引擎,即数据表一旦建立后不再会修改。有序数组有序数组在等值查询和范围查询场景中的性能都非常优秀。数据库innoDb优点索引组织表存储方式索引使用的是B+树数据库innoDb优点索引组织表存储方式索引使用的是B+树优点支持事务行级锁优点支持事务存储方式共享表空间存储 所有表的数据文件和索引文件都保存在一个表空间里,一个表空间可以有多个文件,通过innodb_data_file_path和innodb_data_home_dir参数设置共享表空间的位置和名字,一

18、般共享表空间的名字叫ibdata1-n。多表空间存储 以表名为文件名称存储存储方式共享表空间存储数据库MyISAM优点缺点堆表数据库MyISAM优点缺点堆表支持 FULLTEXT类型的全文索引优点支持 FULLTEXT类型的全文索引优点缺点不支持事务不支持外键不支持行级锁(只支持表级锁)缺点不支持事务2堆表在磁盘存储上有三个文件,每个文件名以表名开头,扩展名指出文件类型.MYI 用于存放表索引.MYD 用于存放数据.frm 用于存储表的定义2堆表在磁盘存储上有三个文件,每个文件名以表名开头,扩展名指数据库事务ABCD原子性持久性一致性隔离性数据库事务ABCD原子性持久性一致性隔离性未授权读取,

19、也称脏读,在数据修改的时候允许读取授权读取,也称提交后读取可重复读取:禁止不可重复读取和脏读取,但是有时可能出现幻读数据。读取数据的事务将会禁止写事务(但允许读事务),写事务则禁止任何其他事务。可以通过“共享读锁”和“排他写锁”实现。序列化:提供严格的事务隔离。它要求事务序列化执行,事务只能一个接着一个地执行,不能并发执行。仅仅通过“行级锁”是无法实现事务序列化的,必须通过其他机制保证新插入的数据不会被刚执行查询操作的事务访问到。幻读不可重复事务隔离未授权读取,也称脏读,在数据修改的时候允许读取事务隔离事务隔离脏读事务隔离脏读幻读针对多个数据事务隔离幻读针对多个数据事务隔离不可重复针对单个数据

20、事务隔离不可重复针对单个数据事务隔离脏读读取了另一个事务未提交的数据事务隔离脏读读取了另一个事务未提交的数据事务隔离数据库设计范式单击此处添加标题9,300 Million第一范式:所有的字段都是最小的, 不可拆分;例如 高级职称 可分为 教授与副教授(不符合第一范式)第二范式:表中所有列都依赖于主键,也就是说一张表只描述一件事情第三范式:数据不能存在传递关系,例如:学号,班级 就是属于传递单击此处输入你的正文,文字是您思想的提炼,为了最终演示发布的良好效果,请尽量言简意赅的阐述观点;根据需要可酌情增减文字,以便观者可以准确理解您所传达的信息。数据库设计范式单击此处添加标题9,300 Mill

21、ion第一04加密04加密加密与解密都使用同一个秘钥,只有一个秘钥, 称为私钥DES 算法AES 算法3DES 算法对称加密加密与解密都使用同一个秘钥,只有一个秘钥, 称为私钥DES 加密与解密使用不同的秘钥,公钥和私钥(互为解密)RSAECC非对称加密加密与解密使用不同的秘钥,公钥和私钥(互为解密)RSA非对称05分布式架构05分布式架构mysql 分库分表CAP Consistency(一致性)Availability(可用性)Partition tolerance(分区容错性)分布式架构mysql 分库分表分布式架构06虚拟机06虚拟机虚拟机Native方法栈01程序计数器04堆02方法

22、区05java jvm栈03垃圾回收算法06虚拟机Native方法栈01程序计数器04堆02方法区05j程序计数器线程切换,CPU调度可以正确的回到原来的线程虚拟机程序计数器线程切换,CPU调度可以正确的回到原来的线程虚拟机方法区类的信息, 以及static final 变量虚拟机方法区类的信息, 以及static final 变量虚拟机虚拟机垃圾回收算法复制算法01标记清除02标记整理03虚拟机垃圾回收算法复制算法01标记清除02标记整理0307dubbo07dubbodubbo dubbo 08集合类08集合类集合类 集合类 09Spring09SpringSpring事务的实现、传递性优

23、点Bean设计模式Spring事务的实现、传递性Spring优点1代码低侵入性2对象之间的依赖交于框架, 降低耦合3支持主流框架,自成体系4提供AOP服务, 更好的复用代码Spring优点1代码低侵入性2对象之间的依赖交于框架, 降优点代码低侵入性优点代码低侵入性优点对象之间的依赖交于框架, 降低耦合优点对象之间的依赖交于框架, 降低耦合优点支持主流框架,自成体系优点支持主流框架,自成体系提供AOP服务, 更好的复用代码JDK动态代理 不支持普通类支持接口Cglib 支持普通类支持接口提供AOP服务, 更好的复用代码JDK动态代理CglibBean生命周期SpringBean生命周期SpringBean生命周期2.属性依赖注入021.初始化Bean013.aware接口034.beanPostProce

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论