自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

随我的博客

菜鸟的日常学习记录,CSDN更新不勤,主要更新个人博客https://suiwo.xyz,我会不定期的将个人博客的文章copy到CSDN中。...

原创 Flume初识

本文是尚硅谷Flume课程随手笔记,记录课程的一些实战的操作步骤 一、安装Flume并实现一个简易端口监控 实现监控端口案例,通过Flume来监听端口数据,并将数据打印到控制台 1. 首先进入官网下载Flume源码包 2. 修改flume-env.sh文件 export JAVA_HO...

2020-05-26 14:29:15 31 0

原创 Hive初识

一、 安装Hive并启动 1. 下载源码包 解压源码包后,配置hive-env.sh (a)配置 HADOOP_HOME 路径 export HADOOP_HOME=${Hadoop的路径} (b)配置 HIVE_CONF_DIR 路径 export HIVE_CONF_DIR=${Hive配...

2020-05-26 14:28:27 37 0

原创 YARN集群搭建

本文主要是记录集群搭建流程,具体细节较为简略 一、YARN简介 Apache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入...

2020-05-24 22:45:02 28 0

原创 HDFS高可用集群搭建

环境 CentOS 7 JAVA 1.8 Zookeeper 2.9.2 Hadoop 3.4.14 一、简单HDFS集群中存在的问题及解决办法 如何解决NameNode的单节点问题 多个NameNode备份原NameNode数据 如何解决多个NameNode是集群脑裂问题 使用Q...

2020-05-24 22:44:11 40 0

原创 汉诺塔问题总结

一、基本递归实现 下面是普遍的汉诺塔问题的递归解法代码 public class Hanoi{ public static void hanoi(int n, String x, String y, String z){ if (n == 1){ S...

2020-05-24 22:38:57 41 0

原创 HBase中使用过滤器筛选数据

一、过滤器能干什么 HBase为筛选数据提供了一组过滤器,通过过滤器可以在HBase中的数据的多个维度(行,列,数据版本)上进行对数据的筛选操作。 通常来说,通过行键、列来筛选数据的应用场景较多。 二、常见的过滤器 基于行的过滤器 PrefixFilter: 行的前缀匹配 PageFi...

2020-05-24 22:36:53 99 0

原创 使用Java操作HBase数据库

一、添加依赖 首先我们在maven项目中添加下面两个依赖 <!-- hbase依赖 --> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbas...

2020-05-24 22:36:05 32 0

原创 HBase伪分布式集群安装

一、下载HBase安装包 为了防止HBase和Hadoop版本间冲突,可以在CDH上下载和Hadoop兼容的HBase版本,本次搭建选择的是hbase-1.2.0 下载路径:http://archive.cloudera.com/cdh5/ 二、配置伪分布式环境 HBase相关配置文件在/co...

2020-05-24 22:34:42 61 0

原创 hadoop伪分布式集群安装

一、下载hadoop安装包 hadoop安装包分为apache官方以及CDH,具体区别在此不做介绍,本次搭建选择的是hadoop-2.6.0-cdh5.7.0版本 下载路径http://archive.cloudera.com/cdh5/ 二、配置hadoop hadoop相关配置文件在/etc...

2020-05-24 22:33:49 39 0

原创 使用iTerm2和OhMyZsh实现一个强大终端

参考文章: https://blog.csdn.net/qianghaohao/article/details/79440961 https://www.jianshu.com/p/9c3439cc3bdb https://www.jianshu.com/p/d194d29e488c?open_s...

2020-05-24 22:32:43 118 0

原创 Kafka初试

二、安装Kafka 安装Java 安装Zookeeper 启动命令: zkServer.sh start 停止命令: zkServer.sh stop 安装Kafka 启动命令: kafka-server-start.sh config/server.properties 启动命令: k...

2020-05-24 22:30:19 19 0

原创 创建一个基于redis的id生成器

参考文章: https://blog.csdn.net/hengyunabc/article/details/44244951 https://www.jianshu.com/p/955909e1bd71 https://tech.meituan.com/2017/04/21/mt-leaf.h...

2020-05-24 22:28:36 64 0

原创 手写SpringMVC,剑指优秀开源框架灵魂

由于Spring官方就是选择gradle作为自动化构建工具,所以我们在本次尝试中就按照spring的选择也是用gradle 在整个项目中,我们一共包含两个模块framework模块用于首先实现我们springmvc的常见功能,test模块则是用来测试我们手写的模块是否正确 项目链接:https:/...

2020-05-24 22:27:19 27 0

原创 Springboot集成mapstruct

一、什么是mapstruct MapStruct是一个代码生成器的工具类,简化了不同的Java Bean之间映射的处理,所以映射指的就是从一个实体变化成一个实体。在实际项目中,我们经常会将PO转DTO、DTO转PO等一些实体间的转换。在转换时大部分属性都是相同的,只有少部分的不同,这时我们可以通过...

2019-10-07 22:28:44 1862 0

原创 aop链式调用

多个aop如果叠加 采用了责任链的模式 使用ConcerteHandler实现类实现HandleProcess接口同时这个实现类又组合了这个接口,通过successor判断来进行链式调用 首先我们新建一个Handler public abstract class Handler { ...

2019-10-07 22:26:53 36 0

原创 cglib动态代理

首先我们看一下如何实现cglib的动态代理 cglib通过实现MethodInterceptor接口来实现动态代理 public class DemoMethodInterceptor implements MethodInterceptor { @Override public...

2019-10-07 22:25:56 34 0

原创 JDK动态代理解析

首先我们生成的时候调用了Proxy.newInstance()这个方法,这个方法会调用getProxyCLass0()方法,而getProxyCLass0()是从ProxyClassFactory中生成proxy代码,而ProxyClassFactory又是使用ProxyGenerator来生成的...

2019-10-07 22:24:54 40 0

原创 静态代理与动态代理

静态代理 静态代理存在一些缺点,如每当要代理的方法越多,那你需要代理的方法也越多,这样可能会有很多的重复 下面我们先实现以下静态代理的例子 先创建一个接口 public interface Subject { void request(); } 创建一个实现类 public class ...

2019-10-07 22:24:12 33 0

原创 Stream流编程

外部迭代与内部迭代 public class StreamDemo { public static void main(String[] args) { int[] nums = {1, 2, 3}; int res1 = 0; for(in...

2019-10-07 22:23:31 49 0

原创 lambda表达式

什么是lambda表达式 “Lambda 表达式”(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭包(注意和数学...

2019-10-07 22:21:48 34 0

原创 消费端限流、重回队列、TTL以及死信队列

什么是消费端的限流? 假设一个场景,首先,我们Rabbitmq服务器有上万条未处理的消息,我们随便打开一个消费者客户端,会出现下面情况: 巨量的消息瞬间全部推送过来,但是我们单个客户端无法同时处理这么多数据! RabbitMQ提供了一种qos (服务质量保证)功能,即在非自动确认消息的前提下,如果...

2019-10-07 22:20:38 48 0

原创 RabbitMQ生产端可靠性投递

对于消息的生产端的可靠投递,我们常见的解决方案有两种 1.消息落库,对消息状态进行打标 2.消息的延迟投递,做二次确认,回调检查 1、消息落库,对消息状态进行打标 上面图片为消息落库,对消息状态进行打标的常见步骤(状态0表示已发送,1表示已消费,2表示失败) 首先将将要发送的数据持久化到BI...

2019-10-07 22:19:49 40 0

原创 如何保证消息消费的幂等性

幂等性概念及业界主流解决方案 幂等性:就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。举个最简单的例子,那就是支付,用户购买商品使用约支付,支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,...

2019-10-07 22:17:24 40 0

原创 手写Spring框架

项目结构 ├── pom.xml ├── spring-demo.iml ├── src └── main ├── java │ └── xyz │ └── suiwo │ ├── action ...

2019-08-13 11:41:57 223 0

原创 Springboot集成POI

本文比较简单。。。希望想真正使用的同学。。去看别人整理的吧。。。我怕这次整理比较乱。。影响大家阅读 什么是POI Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。 添加依赖 <depende...

2019-08-13 11:41:03 2806 0

原创 Java遍历一个类的所有属性和值

今天在尝试使用Java反射来实现Java导出数据库数据到Excel中,然后在尝试获取类所有的属性的时候,由于对于反射的不熟练,然后找到了一篇博文,所以在此进行记录,以供未来参考,原博文地址: https://blog.csdn.net/ztx114/article/details/78274314...

2019-08-13 11:40:16 5713 0

原创 RabbitMQ事务以及confirm机制

本文是参考下面这篇博客然后进行复现浓缩后的总结 https://www.cnblogs.com/vipstone/p/9350075.html 正常情况下,如果消息经过交换器进入队列就可以完成消息的持久化,但如果消息在没有到达broker之前出现意外,那就造成消息丢失,有没有办法可以解决这个问题...

2019-08-13 11:39:43 383 0

原创 Redis与LRU

参考文章 https://zhuanlan.zhihu.com/p/34133067 https://blog.csdn.net/azurelaker/article/details/85045245 https://www.bilibili.com/video/av45625512 最近在使用...

2019-08-13 11:38:59 4005 0

原创 Springboot集成RabbitMQ

一、什么是RabbitMQ RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。 二、添加依赖 <dep...

2019-08-13 11:38:03 47 0

原创 springboot集成Log4j2

前言:关于Log4j2,SLF4J,LogBack以及其他的一些日志框架的区别,建议大家可以先了解一下 一、添加依赖 <!--SpringBoot默认日志框架为LogBack所以我们需要将LogBack依赖移除--> <dependency> <groupId...

2019-08-13 11:37:08 149 0

原创 springboot集成Redis

由于之前在项目中集成了身份验证以及权限功能,所以在请求操作时会有大量数据库读操作来获取用户的角色以及所拥有的权限,这对于数据库来说是一个巨大的性能开支,所以我打算尝试使用redis来减少数据库读写,而是使用缓存读写,本文是在看完集成Redis入门后所做的总结,所以对很多地方还有疑问,请大家酌情参考...

2019-08-13 11:36:07 1371 0

原创 springboot集成定时任务功能

参考文章:http://www.ityouknow.com/springboot/2016/12/02/spring-boot-scheduler.html 1.集成pom包依赖 <dependencies> <dependency> <groupId>o...

2019-08-13 11:35:06 287 0

原创 springboot集成多线程功能

参考文章 https://segmentfault.com/a/1190000015766938 https://blog.csdn.net/qq_34545192/article/details/80484780 在平时我们写多线程可能更多是使用new Thread() 或者创建线程池来实现的...

2019-08-13 11:34:10 2193 0

原创 springboot集成Shiro

一、介绍 Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。本文是使用Shiro + JWT(Json Web Token)实现的,对...

2019-07-31 17:34:33 390 0

原创 如何使用JWT

参考博文:https://www.jianshu.com/p/576dbf44b2ae 一、介绍 Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(...

2019-07-31 17:33:30 65 0

原创 关于MySQL日期相关语句

1.MySQL按照时间范围进行查询的SQL语句 # DATE_FORMAT(字段名, 格式化规则) startDate endDate指代查询范围 select * from t_name where DATE_FORMAT(c_date, '%Y%m%d%H%i') betw...

2019-07-31 17:32:30 189 0

原创 基于编程方式实现条件装配

本文主要讲通过编程方式来实现条件装配 —— @Condition 首先我们添加判断类 OnSystemPropertyCondition.java package xyz.suiwo.diveinspringboot.condition; import org.springframework...

2019-07-31 17:31:32 52 0

原创 基于配置方式实现自定义条件装配

本文主要讲通过配置方式来实现自定义条件装配 —— @Profile 我们尝试使用Profile实现两个计算服务,分别是Java7的for循环以及Java8的lambda表达式 首先我们先新建一个计算服务接口 CalculateService.java package xyz.suiwo.div...

2019-07-31 17:29:18 82 0

原创 Java通过RMI实现手写RPC框架

参考视频:https://www.bilibili.com/video/av30168877/?p=3 参考文章:https://blog.csdn.net/shan9liang/article/details/8995023 1.RPC与RMI RMI(remote method invoca...

2019-07-31 17:27:44 208 0

原创 synchronized及其优化

参考博文: http://www.cnblogs.com/wade-luffy/p/5969418.html http://www.cnblogs.com/kniught-ice/p/5189997.html https://www.zhihu.com/question/270564693 一...

2019-07-31 17:26:29 258 0

提示
确定要删除当前文章?
取消 删除