开头

关于程序员,除了做项目、看视频来提高自身的技术之外,还有一种提升自己的专业技能就是:多!看!书!MySQL俨然已经成为了IT技术人员必须掌握的核心技能之一!

《MySQL从入门到精通》

本书详细介绍了如何安装、管理、备份、维护和优化一个 MySQL 系统。对于每一件服务器操作都提出了多种的解决方案。对于每一种的方法,虽然不一定都是非常实用的方法,读者能通过这些方法,熟悉 MySQL 的特点和强大的功能。

第一章简单介绍了 MySQL 的历史、特点,同时对 SQL 的语法进行了简单的介绍。如果读者对第一章的内容不能很好的掌握,可以略过不了解的内容,在阅读二、三章之后重新理解其中内容。
第二章介绍了如何安装一个 MySQL 系统。
第三、四章详细叙述了如何利用 SQL 语言以及其它的客户工具对 MySQL 数据库中的数据进行操作。
第五、六章介绍了数据库目录以及如何备份、恢复和维护数据库安装。
第七章介绍了 MySQL 权限系统和如何为数据库创建、撤销授权。
第八章则对优化数据库性能的各个方面进行了阐述。

由于pdf文档里的细节内容实在过多所以只编辑了部分知识点的章节粗略的介绍下,每个章节小节点里面都有更细化的内容!以下就是部分章节目录,由于头条的篇幅限制目录上的详细讲解也无法一一列出,文末底下有获取以下章节的所有详细知识讲解。

1. 消息的可靠性投递

在使用 RabbitMQ 的时候,作为消息发送方希望杜绝任何消息丢失或者投递失败场景。

RabbitMQ 为我们提供了两种方式用来控制消息的投递可靠性模式。

confirm 确认模式:当消息从 producer 发送到 exchange 则会执行 confirmCallback中的confirm方法。

return 退回模式:当消息发送给Exchange后, Exchange将消息路由到queue失败会执行ReturnCallBack。

确认模式会返回{1.相关配置信息, 2.交换机是否成功接收到消息 , true 成功 false失败 3.失败原因 }

回退模式会返回{1.消息对象,2.错误码,3.错误信息,4.交换机名称,5.路由键}

2.Consumer ACK(消费者 ACK)

ack指Acknowledge,确认。 表示消费端收到消息后的确认方式。

RabbitMQ提供三种确认方式:

自动确认: acknowledge=“none” 当消息一旦被Consumer接收到,则自动确认收到,并将相应 message 从 RabbitMQ 的消息缓存中移除。

手动确认: acknowledge=“manual” 如果出现异常,则调用channel.basicNack()方法,让其自动重新发送消息。

根据异常情况确认:acknowledge=“auto”。

3. 消息过期(TTL)

TTL 全称 Time To Live(存活时间/过期时间)。当消息到达存活时间后,还没有被消费,会被自动清除。

RabbitMQ可以对消息设置过期时间,也可以对整个队列(Queue)设置过期时间。

消息过期, 可以让队列统一过期, 也可以让它单独的消息过期。

4. 死信队列

死信队列,英文缩写:DLX 。Dead Letter Exchange(死信交换机),当消息成为Dead message (死信)后,可以被重新发送到另一个交换机,这个交换机就是DLX。

消息成为死信的三种情况:

1.队列消息长度到达限制;

2.消费者拒接消费消息,并且不把消息重新放入原目标队列;

3.原队列存在消息过期设置,消息到达超时时间未被消费;

死信队列和死信交换机:

死信队列和死信交换机与正常的队列和交换机一模一样, 没有任何区别 !! 

如何实现队列与死信交换机绑定 , 给队列设置如下参数:

  • x-dead-letter-exchange : 设置死信交换机

  • x-dead-letter-routing-key : 设置死信路由key

5. 延迟队列

消息进入队列后不会立即被消费,只有到达指定时间后,才会被消费。 例如:

延迟队列是一个很强大的功能 , 但是在RabbitMQ中并没有提供延迟队列功能。

可以使用:TTL(消息过期)+死信队列组合实现延迟队列的效果。

实现流程图如下 :

6. 消费端限流

当系统峰值比较高的时候 , 我们我们可以使用RabbitMQ实现削峰填谷, 让我们系统处理的请求更加平稳

实现步骤

  1. 设置akc机制为手动确认

  2. 配置监听容器

7.RabbitMQ应用问题 (消息补偿机制)

我们通过之前的消息可靠性投递 , ACK 确认机制 , 以及死信队列 , 基本上已经能够保证消息投递成功了 !

为什么还要消息补偿机制呢? 难道消息还会丢失,没错,系统是在一个复杂的环境,不要想的太简单了,虽然以上的三种方案,基本可以保证消息的高可用不丢失的问题,但是作为有追求的程序员来讲,要绝对保证我的系统的稳定性,有一种危机意识。

比如:持久化的消息,保存到硬盘过程中,当前队列节点挂了,存储节点硬盘又坏了,消息丢了,怎么办?

产线网络环境太复杂,所以不知数太多,所以要做消息补偿机制 !

消息补偿机制需要建立在业务数据库和MQ数据库的基础之上 , 当我们发送消息时 , 需要同时将消息数据保存在数据库中, 两者的状态必须记录。 然后通过业务数据库和MQ数据库的对比检查消费是否成功,不成功,进行消息补偿措施,重新发送消息处理

最后分享一波,Java核心架构进阶知识点

面试成功其实都是必然发生的事情,因为在此之前我做足了充分的准备工作,不单单是纯粹的刷题,更多的还会去刷一些Java核心架构进阶知识点,比如:JVM、高并发、多线程、缓存、Spring相关、分布式、微服务、RPC、网络、设计模式、MQ、Redis、MySQL、设计模式、负载均衡、算法、数据结构、kafka、ZK、集群等。而这些也全被整理浓缩到了一份pdf——《Java核心架构进阶知识点整理》,全部都是精华中的精华,本着共赢的心态,好东西自然也是要分享的

内容颇多,篇幅却有限,这就不在过多的介绍了,大家可根据以上截图自行脑补,不过这份《Java核心架构进阶知识点整理pdf》以及前面P8整理的全套系列大厂面试题皆可免费分享给有需要的你,点击这里即可免费领取文中所有资料

介绍了,大家可根据以上截图自行脑补,不过这份《Java核心架构进阶知识点整理pdf》以及前面P8整理的全套系列大厂面试题皆可免费分享给有需要的你,点击这里即可免费领取文中所有资料

北大青鸟java半年学费,Java核心知识点相关推荐

  1. java中解密的思想_北大青鸟翔天解密,Java核心思想两大点

    Java已经成为一个庞大而复杂的技术平台,对于开发人员而言,要想更好的掌握Java技术,深入理解底层的技术处理细节必不可少.对核心概念和思想的掌握可以帮助我们举一反三.触类旁通,有助于提升我们对整个J ...

  2. Java程序员必备核心知识点整理,建议收藏!

    说实话,作为一名 Java 程序员,不论你需不需要面试都应该好好看下这份资料.我大概撸了一遍,真的是堪称典范. 就目前国内的面试模式来讲,在面试前积极的准备面试,复习整个 Java 知识体系将变得非常 ...

  3. 【北大青鸟天府校区的Java专业怎么样?】

    北大青鸟天府校区是北大青鸟总部在西南投资兴办的重点校区,拥有极为强大的外部教育资源和就业资源,使咱们的学员能够享受更好.更完善的教学资源.超过23年的办学经验,培养了超过10000位学员,保障就业,学 ...

  4. 北大青鸟Accp5.0 S1 Java项目——骑士飞行棋

    经过一个多月的学习终于学完了使用Java语言理解程序逻辑课程,花了一周的时间写完了项目案例--骑士飞行棋.为了方便大家的交流学习,先将代码上传,欢迎大家批评指正.注:我把Game类的play方法中'开 ...

  5. java北大青鸟视频_西安java se视频

    如//添定字段的换处理f加指值转,西安无论单个对象还是列表数据数据,西安添加的值指定字段转换处理,如下代码,进行转换处理,响应现的对象段统以把一处和u理了就可这样中出e字所有,问题乱码中文处理,非常方 ...

  6. java s2 宠物商店_北大青鸟accp S2 java宠物商店项目案例代码有数据库表

    [实例简介] 这是 北大青鸟 6.0 S2 JAVA课本的项目案例 代码有注视 [实例截图] [核心代码] 51071f31-b79d-42d6-9b52-feb0304525bc └── ch15 ...

  7. Java 面试全解析:核心知识点与典型面试题

    课程背景 又逢"金九银十",年轻的毕业生们满怀希望与忐忑,去寻找.竞争一个工作机会.已经在职的开发同学,也想通过社会招聘或者内推的时机争取到更好的待遇.更大的平台. 然而,面试人群 ...

  8. 学python和java哪个难?,java和python哪个难学

    java和python哪个好学 ①python比Java简单,学习成本低,开发效率高;②Java运行效率高于python,尤其是纯python开发的程序,效率极低;③Java相关资料多,尤其是中文资料 ...

  9. 长沙北大青鸟java 学费_长沙北大青鸟学校好不好 长沙北大青鸟实力学费一览表:Java代码编写规范(二)...

    原标题:长沙北大青鸟学校好不好 长沙北大青鸟实力学费一览表:Java代码编写规范(二) 文件名规范 1.一个Java源文件只能存储个Java类. 2.文件名与Java类名相同. 3.一个类文件的代码行 ...

最新文章

  1. 学计算机如何防辐射,长期对电脑怎么防辐射
  2. 系统监控:top vs Htop vs Glances
  3. 前端知识点回顾之重点篇——JavaScript异步机制
  4. 历史性难题——如何为Kafka挑选合适的分区数?
  5. 虚拟键码对照表与ASCII对照表的区别
  6. Uipath 学习栏目基础教学:9、Excel 的基本操作之读写 Excel
  7. Kubernetes权威指南精彩段落
  8. jQuery原理第五天
  9. Docker的安装及操作
  10. Java分段函数选择结构,编程流程作业选择结构(50题)
  11. PlaceholderImageView
  12. 下载时,要关闭休眠功能
  13. ERStudio逆向工程生成ER模型
  14. 自制XILINX FPGA JTAG下载器
  15. Google Earth Engine(GEE)——估计未来人口密度(越南2100年人口预测)
  16. linux shell fflush,強制shell腳本fflush
  17. html设置一句话的样式,页面上的div标签,其HTML代码为divid=boxstyle=color:red文字/div,为其设置CSS样式如下:...
  18. php 时间加法函数_PHP 日期时间函数的高级应用技巧
  19. Game with Chips(思维)
  20. oracle中带有in查询的子查询绑定变量方式

热门文章

  1. manjaro安装gcc
  2. Cyanine5.5 phosphoramidite,5‘-terminal可用于在寡核苷酸合成器中直接标记
  3. abaqus失效单元删除_abaqus部分单元失效
  4. RocketMQ原理
  5. LeetCode(779):第K个语法符号 K-th Symbol in Grammar(Java)
  6. (转载)散射线对X线照片质量的影响
  7. 树莓派实践系列2-人体红外感应传感器、声音传感器、红外避障传感器
  8. 亚马逊刷好评的方法有哪些?
  9. vue实现rtsp视频直播流
  10. 【爬虫+数据可视化毕业设计:英雄联盟数据爬取及可视化分析,python爬虫可视化/数据分析/大数据/大数据屏/数据挖掘/数据爬取,程序开发-哔哩哔哩】