01 2020 档案
摘要:前言 大概几个月之前项目中用到事务,需要保证数据的强一致性,期间也用到了mysql的锁,但当时对mysql的锁机制只是管中窥豹,所以本文打算总结一下mysql的锁机制。 本文主要论述关于mysql锁机制,mysql版本为5.7,引擎为innodb,由于实际中关于innodb锁相关的知识及加锁方式很多
阅读全文
摘要:处理过线上问题的同学基本上都会遇到系统突然运行缓慢,CPU 100%,以及Full GC次数过多的问题。 当然,这些问题的最终导致的直观现象就是系统运行缓慢,并且有大量的报警。 本文主要针对系统运行缓慢这一问题,提供该问题的排查思路,从而定位出问题的代码点,进而提供解决该问题的思路。 对于线上系统突
阅读全文
摘要:1、kafka与rabbitmq的区别?从架构上去分析 2、如何保证消息的顺序 3、
阅读全文
摘要:前言原文发布于: http://blog.ztgreat.cn/article/59 前面分析了Spring BeanFactory,接着分析了Spring IOC的初始化过程,对整个流程有了一定的认识,当然没有面面俱到,当然也不可能,我自己本身定位就是把握主要脉络,前面遗留了一个问题,就是在Spr
阅读全文
摘要:springMVC源码解析:http://www.51gjie.com/javaweb/938.html 设计模式详解: http://c.biancheng.net/design_pattern/ http://laijianfeng.org
阅读全文
摘要:一、springMvc概念 springMvc是基于servlet的web框架,其简化了web程序的开发 二、springMvc请求流程 在阅读时不妨可以带着几个问题阅读: 1.我们通常在浏览器输入的接口怎么由DispatcherServlet调到具体的Handler的(就是我们自己开发的Contr
阅读全文
摘要:RouteLocator 有三个实现类,在使用@EnableZuulServer 使用到 SimpleRouteLocator,CompositeRouteLocator 作为简单的路由定位,如开启的是@EnableZuulProxy 则使用到DiscoveryClientRouteLocator
阅读全文
摘要:本文是笔者在学习NIO过程中发现的一些比较容易让人忽略的知识的一个总结,而这些让人忽略的小细节恰恰是NIO网络编程中必不可少。虽然现在我们不会直接编写NIO来完成我们的网络层通讯,而是使用成熟的基于NIO的网络框架来实现我们的网络层。如,netty、mina。但对NIO网络编程过程的了解,非常有助于
阅读全文
摘要:dubbo中netty的使用: https://blog.csdn.net/zongyeqing/article/details/83242557 dubbo面经以及源码:https://www.jianshu.com/p/292fcdcfe41e netty简单教程:http://www.tian
阅读全文
摘要:转载:https://linling1.github.io/programming_blog/2019/10/15/%E5%A4%A7%E5%9E%8B%E7%BD%91%E7%AB%99%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1-%E5%A4%A7%E5%9E%8B%
阅读全文
摘要:1、在 java 中守护线程和本地线程区别?2、线程与进程的区别?3、什么是多线程中的上下文切换?4、死锁与活锁的区别,死锁与饥饿的区别?5、Java 中用到的线程调度算法是什么?6、什么是线程组,为什么在 Java 中不推荐使用?7、为什么使用 Executor 框架?8、在 Java 中 Exe
阅读全文
摘要:5.JVM面试题 1、JVM三大性能调优参数,JVM 几个重要的参数2、JVM调优3、JVM内存管理,JVM的常见的垃圾收集器,G1垃圾收集器。GC调优,Minor GC ,Full GC 触发条件4、java内存模型5、Java垃圾回收机制6、jvm怎样 判断一个对象是否可回收,怎样的对象才能作为
阅读全文
摘要:2.Dubbo 面试题 1、Dubbo是什么?2、为什么要用Dubbo?3、Dubbo 和 Spring Cloud 有什么区别?4、dubbo都支持什么协议,推荐用哪种?5、Dubbo需要 Web 容器吗?6、Dubbo内置了哪几种服务容器?7、Dubbo里面有哪几种节点角色?8、画一画服务注册与
阅读全文
摘要:1.Redis 面试题 1、什么是 Redis?.2、Redis 的数据类型?3、使用 Redis 有哪些好处?4、Redis 相比 Memcached 有哪些优势?5、Memcache 与 Redis 的区别都有哪些?6、Redis 是单进程单线程的?7、一个字符串类型的值能存储最大容量是多少?8
阅读全文
摘要:普通的延迟队列不细说了,无论是设置统一的队列TTL,还是设置消息的TTL,全都是利用DeadLetterQueue:消息失效后扔到死信队列,消费者从死信队列里读消息。但在消息失效的过程中存在一个问题,比如如下场景: 延迟队列中依次收到如下消息 Message A: TTL 2000 Message
阅读全文
摘要:前言:单线程Reactor模型的缺点 紧接着上篇Reactor单线程模型的例子来,假设Handler的read那里的处理方式延迟5s,当做是业务性能瓶颈,改变下原来的Handler,让其read方法在处理时延迟5s: private void read() throws IOException {
阅读全文
摘要:一、Selector&Channel 1.1:各种channel 写这个模型需要提前了解Selector以及Channel,之前记录过FileChannel,除此之外还有以下几种Channel: ServerSocketChannel:用于监听新的TCP连接的通道,负责读取&响应,通常用于服务端的实
阅读全文
摘要:Selector:java nio无阻塞io实现的关键。阻塞io和无阻塞io:阻塞io是指jdk1.4之前版本面向流的io,服务端需要对每个请求建立一堆线程等待请求,而客户端发送请求后,先咨询服务端是否有线程相应,如果没有则会一直等待或者遭到拒 绝请求,如果有的话,客户端会线程会等待请求结束后才继续
阅读全文
摘要:1、引言 Java NIO是Java 1.4版加入的新特性,虽然Java技术日新月异,但历经10年,NIO依然为Java技术领域里最为重要的基础技术栈,而且依据现实的应用趋势,在可以预见的未来,它仍将继续在Java技术领域占据重要位置。 网上有关Java NIO的技术文章,虽然写的也不错,但通常是看
阅读全文
摘要:前言 我们知道volatile关键字的作用是保证变量在多线程之间的可见性,它是java.util.concurrent包的核心,没有volatile就没有这么多的并发类给我们使用。 本文详细解读一下volatile关键字如何保证变量在多线程之间的可见性,在此之前,有必要讲解一下CPU缓存的相关知识,
阅读全文
摘要:背景 在一次项目的性能调优中,发现出现竞争瓶颈,导致在资源未使用满的情况下,TPS已经无法提升。祭起JMC(JAVA MISSON CONTROL)飞行记录器大法后,发现线程集中等待在logback写日志的地方,如下图所示: 由于项目组多线程写如同一个文件日志,导致存在IO竞争,一般解决这种问题有三
阅读全文
摘要:首先,所有的系统调用都是原子性的。这句话来自TLPI: "All system calls are executed atomically. By this, we mean that the kernel guarantees that all of the steps in a system c
阅读全文
摘要:1. 为什么是Reactor模式 写多了代码的兄弟们都知道,JAVA代码由于到处面向接口及高度抽象,用到继承多态和设计模式,程序的组织不是按照正常的理解顺序来的,对代码跟踪很是个问题。所以,在阅读别人的源码时,如果不了解代码的组织方式,往往是晕头转向,不知在何处。尤其是阅读经典代码的时候,更是如此。
阅读全文
摘要:select、poll、epoll之间的区别(搜狗面试) (1)select==>时间复杂度O(n) 它仅仅知道了,有I/O事件发生了,却并不知道是哪那几个流(可能有一个,多个,甚至全部),我们只能无差别轮询所有流,找出能读出数据,或者写入数据的流,对他们进行操作。所以select具有O(n)的无差
阅读全文
摘要:在《Unix网络编程》一书中提到了五种IO模型,分别是:阻塞IO、非阻塞IO、多路复用IO、信号驱动IO以及异步IO。 下面就分别来介绍一下这5种IO模型的异同。 1.阻塞IO模型 最传统的一种IO模型,即在读写数据过程中会发生阻塞现象。 当用户线程发出IO请求之后,内核会去查看数据是否就绪,如果没
阅读全文

浙公网安备 33010602011771号