- 博客(16)
- 收藏
- 关注
原创 003-常见问题整理
熟悉Java虚拟机原理,Java高级特性和类库,Java网络与服务器编程,Java多线程编程,常见开源产品,精通1-2种常见开源产品的实现原理; 理解tcp协议各种状态流转、以及原理,理解linux epoll等网络io模型,理解netty/mina等网络框架的实现原理;1. 基础知识相关: 1.1 mongo集群架构: 副本集:集群当...
2020-05-04 13:59:40 154
原创 002-日常总结
1. 线程与性能相关 类别 总结 性能问题排查步骤 1. CPU占比过高: 1.1 top命令查看CPU占比高的进程,然后top -Hp pid查看异常线程; 1.2 jstack pid查看进程的各线程栈信息,找到异常线程的堆栈信息,分析堆栈调用的类、方法; 2. GC相关信息: ...
2020-05-04 13:59:09 175
原创 001-基本操作与命令
1. linux常用命令 类别 操作 命令 登陆与账号 登陆其他机器 ssh root@99.12.86.19 Qzmp123!@# 更换账号 su - hadoop, hadoop 切换roo...
2020-05-04 13:57:56 372
原创 MyBatis使用细节
1. 错误:with a primitive return type (int).原因:返回值类型为int,但是查询出来的结果有空值(null),无法转换成基本类型。包括char,long,short都有可能。解决方式:1. select ifnull(value, 0) from xxx;结果为空时默认返回返回值0。2. 如果where 条件命中不上,select语句则不会执行(wher...
2018-08-22 11:22:49 256
原创 常用软件整理
java:idea,eclipsepython:pychame文档:nodepad++浏览器:chrome,ie,360浏览器工作:maven, git, robo, navicat,beyondCompare,java decompiler, xshell,postman,,subline, winscp,jmeter日常事务:桌面日历截图工具:Snipaste ...
2018-08-21 10:00:45 134
原创 常用linux命令总结
常用linux命令:++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++maven本地编译 mvn install -Dmaven.test.skip=true登陆其他机器 ssh root@99.12.86.19 Qzmp123!@#更换账号 ...
2018-08-20 08:42:54 130
原创 中间件与分布式系统
1. 分布式系统基本知识1.1 单机系统的局限性a) 升级单机处理能力的性价比越来越低;b) 单机处理能力存在瓶颈;c) 出于稳定性和可用性的考虑。1.2 多线程协同模式a) 基于共享容器或共享对象的协同对于线程不安全的容器或对象,一般通过加锁或通过Copy on Write的方式来控制并发。如果读写比例很高,加锁会考虑读写锁。而对于线程安全的容器或对象,可以直接在多线程环境下使用。b) 基于事件...
2018-06-24 21:44:31 3975
原创 服务系统设计原则
1. 服务系统设计原则1.1 高并发原则1. 无状态:设计的应用是无状态的,那么应用容易水平扩展,生产中常见的是应用无状态,配置文件有状态,例如不同机房读取不同的数据源,这就需要配置文件或配置中心指定。2. 拆分:垂直拆分、水平拆分、读写服务拆分、功能维度拆分。3. 服务化:基础服务模块化,引进服务框架,服务注册与发现。服务的分组与隔离,服务限流、黑白名单等等。4. 消息队列:解耦不同应用、异步...
2018-06-24 21:42:17 1953
原创 大型网站技术框架
1 大型网站架构演化过程1.1 应用服务和数据服务分离应用服务和数据分离体现在三个模块:应用服务器、文件服务器和数据服务器。应用服务器需要处理大量业务逻辑,因此重点关注CPU使用;数据服务器需要快速磁盘检索和数据缓存能力,重点在更快的磁盘和更大的内存;文件服务器需要存储大量用户上传的文件,因此关注点在更大的硬盘上。1.2 缓存的使用根据二八定律,80%的业务访问集中在20%的数据上,那么这一部分热...
2018-06-24 21:37:24 3749
原创 分布式一致性原理
分布式一致性原理分布式一致性问题通常存在于分布式文件系统、缓存系统和数据库等大型存储系统中。分布式系统另外一个要解决的问题是数据的复制,原因在于:一是提高系统的可用性,防止单点故障引起的系统宕机;二是提升系统性能,通过负载均衡技术,让分布在不同地方的数据副本能均衡提供服务。分布式一致性问题简单讲,即在分布式环境中引入数据复制机制后,不同数据节点中可能出现的数据不一致问题。也就是对一个副本数据进...
2018-05-04 18:05:20 457
原创 并发容器框架
1 并发容器框架1.1 ConcurrentHashMap与HashMap、HashTable比较HashMap在并发环境容易出现死循环,而线程安全的HashTable效率又比较低下,因此ConcurrentHashMap在并发环境使用比较多。HashMap是线程不安全的,原因在于并发环境下对HashMap进行put操作,会导致HashMap的Entry链表形成环形数据结构,那么Entry的n...
2018-05-04 18:04:51 119
原创 Java虚拟机
JVM虚拟机2. JVM的基本结构2.1 JVM的基本架构Java虚拟机的基本结构类加载子系统负责从文件系统或网络加载Class信息,加载的类信息存放在方法区。方法区除了类信息外,还包括常量池信息(字符串字面量、数字常量等)。Java堆在JVM启动的时候建立,它是Java程序最主要的内存工作空间。几乎所有的Java对象实例都存放在Java堆中。 堆空间是所有线程共享的内存空间。直接内存区域是J...
2018-05-04 18:03:57 596 1
原创 Spring相关内容
Spring相关知识1. Spring基本概念1.1 Spring降低java开发复杂性的关键方式:基于POJO的轻量级和最小侵入编程;通过依赖注入和面向接口实现松耦合;基于切面和惯例进行声明式编程;通过切面和模4板减少样本式代码。1.2 依赖注入:降低组件之间的耦合程度传统方式上,每个对象负责管理与自己相互协作的对象(即其依赖的对象)的引用,这会导致代码高度耦合且难以测试。依赖注入...
2018-05-04 18:02:30 121
原创 Java并发编程的艺术
1. 并发编程的挑战1.1 上下文切换CPU通过给每个线程分配时间片来实现线程间的切换,一般时间片为几十毫秒。当切换线程时,会在切换前保存上一个任务的状态,并加载这个任务的状态,从保存到再加载的过程就称为一次上下文切换。1.2 减小上下文切换的方式一般而言,减小上下文切换的方式有:无锁并发编程、CAS算法、使用最小线程和使用协程。无锁并发编程:当多线程竞争锁的时候,会引起锁等待资源...
2018-05-01 14:36:45 114
原创 设计模式
1. 创建型1. 单例模式作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。特点:1. 单例类只有一个实例;2. 必须自己创建自己的唯一实例;3. 必须给所有其他对象提供这个实例。饿汉式单例类:饿汉式是典型的空间换时间,当类装载的时候就会创建类的实例,不管你用不用,先创建出来,然后每次调用的时候,就不需要再判断,节省了运行时间。懒汉式单例类:懒汉式是...
2018-04-09 19:04:20 89
原创 编程思想笔记
编程思想笔记1. 对象初始化当已经定义一个构造器之后(无论有无参数),那么编译器就不会自动创建默认构造器。假设希望在方法内部获取当前对象的引用,可以使用this关键字。this关键字只能在方法内部使用,表示对“调用方法的那个对象”的引用。当在方法内部调用同一个类的另一个方法时无需使用this,直接调用即可。当一个类有多个构造器,从某个构造器中调用另一个构造器的时候,可以使用this关键字...
2018-04-09 19:03:15 111
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人