RabbitMQ

2020JAVA面试必备的26个关键知识点,刷完面试大厂随便跳

风流意气都作罢 提交于 2020-04-23 01:43:02
(大佬和小白都适合) 前言: 常常一些核心技术等我碰到的时候才发现自己忘得差不多了,甘心安于现状,等自己跟别人有了差距之后才想起来要学习,我太难了,永远不要停下自己学习的脚步,比你厉害的人真的有很多. 今天给大家分享的是一份283页的Java核心知识点(PDF)特别详细,有幸得此宝典,这么详细的核心知识点怎能独吞呢,分享给各位有需要想学习的同仁朋友们, 文末可获取. 由于篇幅限制,不能完整的把全部内容分享出来,如果你觉得此文档对你有帮助,你有需求的话,看到末尾会有福利 包含内容: 26个知识点 Java基础,集合,并发,多线程,JVM,设计模式 Java算法,数据结构 Spring,MyBatis,MVC,netty,tomcat 架构设计,Redis缓存,Zookeeper,kafka,RabbitMQ,负载均衡 SpringBoot,SpringCloud,Dubbo,Docker 适用人群: 个人觉得都适用,不管是小白还是大牛,查漏补缺发现更厉害的你 JVM 线程 JVM内存区域 JVM运行内存 垃圾回收与算法 Java四种引用类型 GC 分代收集算法 VS 分区收集算法 GC 垃圾收集器 JAVA IO/NIO JVM类加载机制 JVM 的内存模型和 JVM 的垃圾回收机制一直是 Java 业内从业者绕不开的话题(实际调优、面试)JVM是java中很重要的一块知识

Wayne

ε祈祈猫儿з 提交于 2020-04-22 10:14:50
Wayne是笔者无意之间刷文章了解到的,简单使用之后发现能解决当前眼下诸多问题,出于推动公司容器化进程的原因选择开始使用,当前所有环境都已经在使用中。借助官方的介绍Wayne 是一个通用的、基于 Web 的 Kubernetes 多集群管理平台。通过可视化 Kubernetes 对象模板编辑的方式,降低业务接入成本,拥有完整的权限管理系统,适应多租户场景,是一款适合企业级集群使用的发布平台。 附上: 喵了个咪的博客: w-blog.cn wayne官方Git地址: https://github.com/Qihoo360/wayne/blob/master/README-CN.md PS:当前最新版本 v1.8.6,官方暂时不支持版本升级能力,不要轻易尝试版本升级; Wayne 已大规模服务于 360 搜索,承载了内部绝大部分业务,稳定管理了近千个业务,上万个容器,运行了两年多时间,经受住了生产的考验。 一、Wayne介绍 要引入任何一个工具首先需要看到问题,如果盲目的引入工具提出要求,有时候不但达不到效果还增加了研发成本。 当时笔者在公司推动容器化陷入了一个僵局,环境都已经准备好了,但是有很多遗留的包袱需要迁移里面就涉及到如下的难点了: 基础yaml文件难以管理,之前使用git维护不便/更新迟滞 开发水平不一,编写yaml文件经常出现各种问题 开发环境需要排查问题登录容器shell

RabbitMQ TroubleShooting

◇◆丶佛笑我妖孽 提交于 2020-04-22 04:25:04
RabbitMQ是一款优秀的消息队列中间件,提供了稳定、监控完善的产品,但是软件就会有bug。为了前进路径可以畅通,我们必须了解出现的一些故障的快速处理方式,毕竟在生产环境,时间就是生命,尽快的处理是避免产生事故的最有效方式。 了解常见的一些故障,我们可以有针对的处理预案,快速、高效的处理故障,更好的运维是我们一直的追求。 查看故障信息,RabbitMQ出现故障,要通过一些有效途径快速的获取故障原因,而不能是每次都通过重启RabbitMQ服务的方式来解决。 如何查看故障信息,从几个方面 通过rabbitmqctl status ,在出现故障 服务器,查看当前MQ运行状态,该命令可以看到一些非常有用的信息 通过rabbitmqctl cluster_status ,查看集群状态是否正常。在RabbitMQ集群由于网络原因而可能出现网络割裂的情况下,可以通过该命令查看集群运行状态 查看rabbitmq 运行日志文件。可能有的小伙伴不知道该文件在哪里,在RABBITMQ_LOG_BASE定义的位置,还有小伙伴可能又要问RABBITMQ_LOG_BASE是什么,我只能说这个是rabbitmq的环境变量值,在rabbitMQ安装路径/sbin 目录下,注意看有一个rabbitmq-env.bat 文件。请通过记事本打开该文件,然后搜索RABBITMQ_LOG_BASE,可以看到具体路径

2020最新Java 200+面试题(补充ThreadLocal 模块解析)

不羁岁月 提交于 2020-04-21 23:48:53
前言: 前部分.是ThreadLocal补充模块解析. 后部分.200+面试题内容. 1.ThreadLocal 是什么? ThreadLocal 是一个本地线程副本变量工具类。 主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰,在高并发场景下,可以实现无状态的调用,适用于各个线程不共享变量值的操作。 2.ThreadLocal 工作原理是什么? ThreadLocal 原理: 每个线程的内部都维护了一个 ThreadLocalMap,它是一个 Map(key,value)数据格式,key 是一个弱引用,也就是 ThreadLocal 本身,而 value 存的是线程变量的值。 也就是说 ThreadLocal 本身并不存储线程的变量值,它只是一个工具,用来维护线程内部的 Map,帮助存和取变量。 数据结构,如下图所示: 3.ThreadLocal 如何解决 Hash 冲突? 与 HashMap 不同,ThreadLocalMap 结构非常简单,没有 next 引用. 也就是说 ThreadLocalMap 中解决 Hash 冲突的方式并非链表的方式,而是采用线性探测的方式. 所谓线性探测,就是根据初始 key 的 hashcode 值确定元素在 table 数组中的位置,如果发现这个位置上已经被其他的 key 值占用

【运维随笔】 记录一次rabbitmq启动故障排查

不羁的心 提交于 2020-04-21 19:13:40
由于故障排查已经过了一段时间再写的这个随便,故这次无相关截图 某天,运行正常的rabbitmq挂掉了,然后去重启的时候报错,启动不了,通过查看systemctl status rabbitmq -l 和journalctl -u rabbitmq 查看错误信息,发现也没有什么有价值的信息。 然后尝试着把/var/lib/rabbitmq/mnesia/ 目录下的文件移走,再重新启动,发现依然是报一样的启动错误,也没有可参考的信息。 接下来再次检查了配置文件,确认配置文件没有写错,关键是检查看有没有格式标点错误,或者被人修改过 检查完和集群其他机器也对比了,无任何有问题的地方。 最后尝试直接使用rabbitmq-server 这种方式直接启动,想着看看前台会输出什么错误信息可供参考。 运行启动程序后,直接输出了一个no space相关的信息。然后df -h 一看,发现确实是没空间了,但是空间刚好还剩一点点,所以在运行命令的时候也还是可以正常的tab补全,导致一开始没有想到空间的问题 来源: oschina 链接: https://my.oschina.net/u/4399154/blog/3291132

Java工程师连斩五份offer,工资20k+,全靠这份PDF面试题!

耗尽温柔 提交于 2020-04-21 17:42:53
由于内容太过全面,所有这里只题目目录截出来粗略的介绍一下,这份PDF文档有将近五百页,内容覆盖了:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux 等技术栈: ( 如果觉得对你有帮助,记得点赞,关注,分享, 三连,非常感谢!!!) 文末可领取: MyBatis(27道) ZooKeeper(28道) Dubbo(30道) Elasticsearch(24道) Memcached(23道) Redis(40道) MySQL(50道) Java 并发编程(一)Java 并发编程(二)(123道) Java面试题(一)Java面试题(二)(228道) Spring 面试题(一)Spring 面试题(二)(119道) 微服务(20道) Linux(45道) Spring Boot(22道) Spring Cloud(8道) RabbitMQ(12道) kafka(18道) 文末有读者福利,往下翻: 答案,关注公众号下面二维码,即可 来源: oschina 链接: https://my.oschina.net/u/4506875/blog/3290565

Docker 安装 RabbitMQ

半世苍凉 提交于 2020-04-21 15:54:13
1、搜索镜像 docker search rabbitmq:management 2、获取镜像 docker pull rabbitmq:management 3、运行镜像 docker run -d -p 5672:5672 -p 15672:15672 --name rabbitmq rabbitmq:management 来源: oschina 链接: https://my.oschina.net/taony/blog/3288350

当你看见我很久没有动静,那是因为我酝酿得深沉...

让人想犯罪 __ 提交于 2020-04-21 08:55:21
  已经许久没有更新博客了,并不是疫情阻挡了我写作的步伐,只是写作已转移到word(整理一下去换稿酬,拿了稿酬可以去换酒钱)。如下图所示,书《Vue.2x实践指南》交稿快半年了,由于疫情原因,预计下个月底才能上架,《Javascript实训教程》已完成写稿60%,《React和Mogodb实训》筹划中。   最近工作上在做啥呢?我也没有闲着,这两天在做的东西: 1.在流程图上可以编辑数据,双击时,显示文本框,编辑完成之后,鼠标失去焦点,自动保存数据(ajax数据回发),其实都不难实现,可就是费时间,因为有很多个流程图。 2.做一个冷站监控界面,要支持控制设备状态(不同状态,不同颜色的图片)、停止的设备水流不动、界面数据实时刷新,点击设备弹窗设备实时数据详情、支持设备数量动态变化。调线费时间,也是有很多种类型的图。 等后面有时间的话,我再戏说这两个的具体实现,主要是基于vue和svg技术。   配置完成之后,系统图中的数据用websock实时刷新,水流线和走向,颜色运行状态,根据实时获取的数据动态变化,最终如下:   现在的前端发展很快,早已不复当年,有些开发人员觉得前端很简单,调用后端的接口,做一下界面和交互就可以了,那后端开发还只要写下CRUD的接口就行了呢。现在前端的各种语言和框架不断的学习后端的一些思想(主要是面向对象和各种设计模式、语法),让前端也能够适应各种大项目的开发

RabbitMQ精讲9:镜像模式集群搭建,整合KeepAlived+HaProxy组件

爱⌒轻易说出口 提交于 2020-04-21 04:16:48
目录 1. 镜像模式集群搭建 1.1 集群节点安装 1、安装依赖包 2、下载安装包 3、安装服务命令 4、修改集群用户与连接心跳检测 5、安装管理插件 6、服务指令 1.2 文件同步步骤 1.3 组成集群步骤 1、停止MQ服务 2、组成集群操作 3、slave加入集群操作(重新加入集群也是如此,以最开始的主节点为加入节点) 4、修改集群名称 5、查看集群状态 6、管控台界面 1.4 配置镜像队列 1.5 安装Ha-Proxy 1、Haproxy简介 HAProxy如何实现性能最大化 2、Haproxy安装 3、Haproxy配置 4、启动haproxy 5、访问haproxy 6、关闭haproxy 1.6 安装KeepAlived 1、Keepalived简介 Keepalived特性 Keepalived高可用原理 2、Keepalived安装 3、Keepalived配置 79节点(Master)配置如下 80节点(backup)配置如下 4、执行脚本编写 5、执行脚本赋权 6、启动keepalived 7、高可用测试 1.7 集群配置文件 环境变量配置文件:rabbitmq-env.conf 配置信息配置文件:rabbitmq.config 2. RabbitMQ集群恢复与故障转移 场景一:A先停, B后停 场景二:A, B同时停机 场景三:A先停, B后停, 且A无法恢复

SpringBoot对消息队列(MQ)的支持

戏子无情 提交于 2020-04-21 03:24:07
1.异步消息的定义   异步消息的主要目的是为了系统与系统之间的通信,所谓异步消息即消息发送者无需等待消息接收者的处理以及返回,甚至无需关心消息是否发送成功   在异步消息中有两个很重要的概念,即消息代理和目的地,当消息发送者发送消息之后,消息将由消息代理接管,消息代理保证消息传递到指定目的地。   异步消息主要有两种目的地形式,队列(queue)和主题(topic),队列用于点对点形式的消息通信,主题用于发布订阅式的消息通信。 1.1目的地形式分类 1.1.1点对点式   当消息发送者发送消息,消息代理将消息后将消息放进一个队列里,当有消息接收者来接收消息的时候,消息将从队列中取出传递给消息接收者,这时候队列里就没有了这条消息。点对点式确保每一条消息只有唯一的发送者和接收者,但这并不能说明只有一个接收者能够从队列中接收消息,因为队列中有多个消息,点对点式只保证每一条消息只有唯一的发送者和接收者 1.1.2发布/订阅式   发布订阅式是消息发送者发送消息到主题,而多个消息接收者监听这个主题,此时的消息发送者和接收者分别叫做发布者和订阅者 1.2 企业级消息代理   JMS即JAVA消息服务,是基于JVM的消息代理规范,ActiveMQ是一个JMS的实现 AMQP也是一个消息代理的规范,他不仅兼容JMS,还支持跨语言和平台,AMQP的主要实现是RabbitMQ 1.3