- 博客(29)
- 资源 (2)
- 收藏
- 关注
转载 大数据环境搭建步骤详细指南(转)
传送门:大数据环境搭建步骤详解(Hadoop,Hive,Zookeeper,Kafka,Flume,Hbase,Spark等安装与配置)
2020-03-23 17:10:24 660
原创 消息队列-面试连环炮
1:为什么使用消息队列? 限流:流量削锋也是消息队列中的常用场景,一般在秒杀或团抢活动中使用广泛。 应用场景:秒杀活动,一般会因为流量过大,导致流量暴增,应用挂掉。为解决这个问题,将请求消息放入消息队列,应用按照处理能力消费处理消息 异步:如用户下单发送短信或者邮件通知,可将通知消息交由消息中间件进行异步通知处理,提高系统的响应时间 解耦:...
2020-02-27 17:25:49 258
转载 十进制与26进制英文字母互转
最近在封装Excel组件,需要提供两个接口,分别根据单元索引和单元名称访问单元格。例如,GetCell(1, 2)和GetCell(“A2”),这两种方法返回的结果是相同的。这里遇到一个问题,如何在单元索引([1,2])和单元名称(A2)之间相互转换?由于在单元索引和单元名称中,行号是相同的,所以我们只需要转换列号就可以了。本来以为是个很简单的问题,结果调试了好长时间才搞定。于是写了这篇文章,总...
2020-02-07 09:59:48 4886
原创 记录服务器被矿机程序攻击解决过程
问题描述: 前端时间买了阿里云服务器准备用来自己学习,装好必要软件准备部署服务愉快学习。结果第二天上午手机一直收到cup满负荷告警短信,查看服务器存在一个异常进程持续占用cup超过80%以上(该进程杀死之后会自动重启),怀疑被植入矿机程序,现将定位解决步骤总结如下。解决步骤: 1:top命令查看cup占用最高进程(排序 查询可疑进程) 2:...
2019-12-27 15:31:56 1875
原创 CentOS7(Linux)安装MySQL5.7流程
最近自己买了台阿里云服务器用来学习,在安装mysql的时候遇到很多坑,后来参考下边这位老哥的步骤,成功完成安装。感觉挺详细靠谱,推荐给大家以供学习。安装必要的组件yum install –y autoconf automake imake libxml2-devel expat-devel cmake gcc gcc-c++ libaio libaio-devel bzr biso...
2019-12-11 17:36:06 206
转载 Java中的各种锁对比分析附带实例详细介绍
乐观锁、悲观锁、自旋锁、适应性自旋锁、无锁、偏向锁、轻量级锁、公平锁、非公平锁、可重入锁、非可重入锁、独享锁、共享锁
2019-11-27 11:11:10 500 1
转载 分布式开放消息系统(RocketMQ)的原理与实践
分布式开放消息系统(RocketMQ)的原理与实践分布式消息系统作为实现分布式系统可扩展、可伸缩性的关键组件,需要具有高吞吐量、高可用等特点。而谈到消息系统的设计,就回避不了两个问题:消息的顺序问题 消息的重复问题RocketMQ作为阿里开源的一款高性能、高吞吐量的消息中间件,它是怎样来解决这两个问题的?RocketMQ 有哪些关键特性?其实现原理是怎样的?关键特性以及...
2019-11-27 10:59:49 459
原创 通用列表转换树形结构实现算法(JAVA版)
树形结构构造大体分为如下三步: (1)构造基类对象 (2)构造扩展类对象 (3)组装算法一 构造基类对象 基类对象必须包含对象id、父级id、子对象集合,其他属性根据需要可自行定义,如下图所示:import lombok.Getter;import lombok.Setter;import lombok.ToString;import ja...
2019-11-26 16:49:06 806
转载 从实践角度重新理解 BIO 和 NIO
实现一个简易单线程服务器要讲明白BIO和NIO,首先我们应该自己实现一个简易的服务器,不用太复杂,单线程即可。为什么使用单线程作为演示因为在单线程环境下可以很好地对比出BIO和NIO的一个区别,当然我也会演示在实际环境中BIO的所谓一个请求对应一个线程的状况。服务端publicclassServer{publicstaticvoidmain...
2019-11-18 17:05:44 196
转载 spring事物隔离级别,传播特性由浅入深,@Transactional注解
本人在学习spring注解时通过网上各个博客浏览,把好多人的结论总结到一起,喜欢就看看吧。spring支持编程式事务管理和声明式事务管理两种方式。 编程式事务管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事务管理,spring推荐使用TransactionTemplate。 声...
2019-11-15 10:30:40 178
转载 Redis-sentinel哨兵模式集群方案配置
原文转自:http://blog.51cto.com/dengaosky/2091877最近研究了redis的集群方案,第一个方案是创建 redis cluster,第二种方案就是用哨兵模式来进行主从替换以及故障恢复。一、sentinel介绍Redis Sentinel<span style="color:#333333"><span style="color:...
2019-11-14 11:23:54 193
转载 数据结构与底层存储 & 事务 & 持久化 & lua(转)
参考文档:redis持久化:http://blog.csdn.net/freebird_lb/article/details/7778981https://blog.csdn.net/jy692405180/article/details/72026745redis数据结构&底层存储https://www.cnblogs.com/hjwublog/p/5639990.htmlr...
2019-10-29 19:09:33 249
转载 Java 并发之AbstractQueuedSynchronizer(AQS)操作图解细节
关键字:CLH,Node,线程,waitStatus,CAS,中断目录图解AQS的操作细节0、前言1、基本概念1.1、CAS自旋1.2、Node1.3、CLH & AQS1.4、ReentrantLock2、图解AQS2.1、线程A单独运行2.2、线程B开始运行2.3、线程C开始运行2.4、线程A停止运行,线程B继续运行2.5.1、线程B停止运行,线程C继续...
2019-10-25 15:37:40 414
转载 深入理解JVM-内存模型(jmm)和GC
1 CPU和内存的交互了解jvm内存模型前,了解下cpu和计算机内存的交互情况。【因为Java虚拟机内存模型定义的访问操作与计算机十分相似】有篇很棒的文章,从cpu讲到内存模型:什么是java内存模型在计算机中,cpu和内存的交互最为频繁,相比内存,磁盘读写太慢,内存相当于高速的缓冲区。但是随着cpu的发展,内存的读写速度也远远赶不上cpu。因此cpu厂商在每颗cpu上加上高速缓存...
2019-10-24 14:49:18 339
转载 挑战10个最难的Java面试题(附答案)
这是收集的10个最棘手的Java面试问题列表。这些问题主要来自 Java 核心部分 ,不涉及 Java EE 相关问题。你可能知道这些棘手的 Java 问题的答案,或者觉得这些不足以挑战你的 Java 知识,但这些问题都是容易在各种 Java 面试中被问到的,而且包括我的朋友和同事在内的许多程序员都觉得很难回答。1 为什么等待和通知是在 Object 类而不是 Thread 中声明的?一个...
2019-10-23 16:48:54 177
原创 springBoot注解事务失效分析总结
一 问题背景 前段时间在项目中使用到spring事务注解功能,在自测代码时发现异常下未能产生回滚操作,借此空闲将之前问题定位思路整理如下,希望对大家定位该类问题提供解决思路。二 分析与解决本次测试工程采用springBoot+mybits+mysql进行验证,在controller中注入service调用service的实现类进行事务操作,项目结构如下图所示 ...
2019-10-23 11:17:50 2840
转载 redis搭建持久化集群详细资料
Redis笔记1-redis的搭建和使用Redis笔记2-发布订阅Redis笔记3-redis事务Redis笔记4-持久化方案Redis笔记5-redis高可用方案Redis-sentinel笔记6-哨兵模式集群方案配置Redis笔记 redis主从复制下哨兵模式---选举原理 ...
2019-01-10 11:07:29 172
原创 JSONObject强转对象数组不能循环遍历问题
一:问题描述 在开发一个测试工具的时候,请求调用其他模块返回的JSONObject对象在代码里边强制转换List对象数组成功,但是在后续循环遍历的时候报java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to com.example.demo.bean.DepartmentInfo错误具体代码如下...
2018-09-06 18:46:37 3084
转载 Linux常用命令总结
linux文件目录说明: 1) bin -> usr/bin : 这个目录存放最经常使用的命令 2) boot : 这个目录存放启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文 件 3) dev: dev 是 Device(设备)的缩写, 该目录下存放的是 Linux 的外部设备,Linux 中的设备也 是以文件的形式存在 ...
2018-07-31 10:16:05 152
原创 分布式概述笔记
一.分布式事务事务 ACID特性原子性(A):就是说在事务执行的过程中要么全部执行,要么全部执行,不存在中间状态。一旦事务执行过程中发生错误,即回滚操作,像什么都没有发生一样。一致性(C):一致性就是要保证事务执行过程中系统要保持一致不便,比如A用户转账给B用户,在事务执行完成后要保证A和B两个用户的账户金额总值保持不变。隔离性(I ):指事务执行过程中相互之间不干扰,数据不会共享...
2018-07-17 16:18:32 169
转载 进程间和线程间通信方式(转)
几种进程间的通信方式(1) 管道(pipe):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有血缘关系的进程间使用。进程的血缘关系通常指父子进程关系。(2)有名管道(named pipe):有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间通信。(3)信号量(semophore):信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它通常作为一种锁机制,防止某进程正在访问共...
2018-07-10 11:07:56 144
原创 Java线程学习笔记
1. 线程与进程区别进程:进程是资源分配的最小单位,每个进程都有独立的代码和资源空间,一个进程包含多个线程线程:线程是cup调度的最小单位,每个线程都有独立的运行栈和程序计数器,同一类的线程共享代码和内存空间在Java中每当运行一个程序的时候都会至少启动两个线程,一个是main线程,一个是垃圾回收线程。在执行一个类的时候都会启动一个jvm,每个jvm相当于操作系统内的一个线程。2.实现多线程三种方...
2018-06-30 15:25:31 352
原创 JVM知识点学习总结
一.JVM内存结构 先看一张图,这张图能很清晰的说明JVM内存结构布局。 JVM内存主要分为堆内存、方法区以及栈内存,堆内存是JVM中占用空间最大的区域,它又包括年轻代、老年代,而年轻代又可以划分为EdenSpace空间、FromSpace空间、ToSpace空间,一般按照8:1:1对年轻代进行划分;JVM和系统调用之间的关系如下图所示:方法区和堆是所有线程共享的内存区域;而java栈、...
2018-06-28 14:07:07 195
原创 windows安装kafka报找不到主类错误解决
[Kafka][错误: 找不到或无法加载主类 Files\Java\jdk1.8.0_101\lib\dt.jar;C:\Program]现象:cmd进入命令窗口输入命令kafka-server-start.bat ..\..\config\server.properties命令窗口提示:错误: 找不到或无法加载主类 Files\Java\jdk1.8.0_101\lib\dt.jar;C:\Pr...
2018-06-26 19:08:36 566
转载 redis持久化方式总结
转自:https://www.cnblogs.com/chenliangcl/p/7240350.htmlredis持久化的几种方式1、前言Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合。支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能。所以Redis也可以被...
2018-06-26 16:56:08 120
原创 Oracle游标分批循环处理总结
此处理方式适用于数据量巨大的循环处理方面,能有效提循环处理效率,具体语句块示例如下所示:DECLARE CURSOR cur IS SELECT * FROM t_table; TYPE rec IS TABLE OF t_table%ROWTYPE; recs rec; BEGIN OPEN cur; WHILE (TRUE) LOOP FET...
2018-06-25 20:53:56 1807
原创 Linux常用命令整理
1.创建文件夹madir test.txt2.解压缩文件tar -zxvf test.tar.gz3.复制test文件夹下文件到test1文件夹下cp -Rf ./test/* /test14.赋权读(r)=4 写(w)=2 执行(x)=1,777分别代表文件所有者权限,同组用户权限,其他用户权限chmode 777 ./test 5.查看test进程信息ps -ef|grep tes...
2018-06-25 20:36:28 124
原创 如何定位cup占用过高问题
CPU负载过高解决问题过程(1)根据top命令找到占用cup高的进程编号,此处以pid 8211为例(2)找到该进程pid后,首先显示该进程线程列表,并按照cup占用高的线程进行排序 ps -mp 8211 -o THREAD,tid,time | sort -rn(3)找到耗时高 cup占用率高的线程号 如8251,将该线程id转换为16进制的格式 ...
2018-06-25 16:45:33 1019
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人