自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 资源 (1)
  • 收藏
  • 关注

原创 阿里云centos8 单机版zookeeper + kafka搭建

Zookeeper + Kafka单机版搭建说明 :搭建Kafka需要先安装JDK和zookeeper并且做一下IP和主机名的映射!①、jdk安装# 1、下载jdk的rpm包wget jdk下载地址# 2、安装jdkrpm -ivh jdk-8u191-linux-x64.rpm # 3、配置JAVA_HOMEvim /etc/profile# 添加如下配置export JAVA_HOME=/usr/local/jdk1.8.0_201export JRE_HOME=${JAV

2021-01-09 12:01:28 10

原创 MySQL数据库安装及主从复制搭建

1、环境说明1、两台服务器(centos8)2、MySQL版本号 8.0.212、安装两台MySQL注意主从MySQL版本要一致1、获取安装包并安装wget https://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpmrpm -ivh mysql80-community-release-el7-3.noarch.rpm yum install mysql-server -y2、初始化MySQL# 初始化

2021-01-04 10:19:24 20

原创 Spring事务原理探究

一、spring事务使用流程1、使用spring提供的事务管理的时候,需要向容器中注入数据源 DataSource、注入事务管理器 PlatformTransactionManager,然后开启事务管理 @EnableTransactionManagement。2、上面三步执行完毕之后,就可以在需要使用事务管理的类或者方法上使用 @Transactional注解即可。二、Spring事务原理探究Ⅰ、spring事务执行流程1、首先,在容器启动的时候,会向容器中注册数据源、事务管理器、事务属性、

2020-10-28 21:15:30 78

原创 Mybatis运行流程源码解析

一、debug源码环境准备1、下载mybatis源码调试mybatis源码理解mybatis工作原理,首先需要下载mybatis源码!下载地址:https://github.com/mybatis/mybatis-3带中文注释的源码: https://github.com/tuguangquan/mybatis2、下载mybatis-parent源码并编译**注意:**下载的mybatis-parent版本要和mybatis源文件pom.xml 版本一致。下载地址:https://g

2020-10-21 22:29:30 48

原创 Java反射常用API

Java反射机制1、什么是Java反射机制JAVA反射机制是在运行状态中,对于任意一个实体类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。Java的反射机制允许编程人员在对类未知的情况下,获取类相关信息的方式变得更加多样灵活,调用类中相应方法,是Java增加其灵活性与动态性的一种机制。2、反射的源头反射是通过什么为源头来取得一个实体类的所有属性和方法的呢?反射是通过对一个类的Cl

2020-07-24 14:32:19 142

原创 MySql查询、插入过程解析

1、MySQL查询SQL的执行流程?首先贴出执行流程图:示例SQL:select user_id,user_name,age from user where id = 1 and age = 23以上面的SQL为例讲解,当我们执行这条SQL语句的时候,执行流程如下:1、首先会使用用户名和密码和MySQL数据库建立连接2、查询缓存,如果缓存命中,则直接返回3、若缓存中不存在,则开始执行解析器a)、先进行词法解析: 词法分析就是把一个完整的 SQL 语句分割成一个个的字符串,比如上面的那条

2020-07-09 20:00:14 139

原创 ThreadLocal源码解析

一、什么是ThreadLocal变量ThreadLoal 变量,线程局部变量,同一个 ThreadLocal 所包含的对象,在不同的 Thread 中有不同的副本。因为每个 Thread 内有自己的实例副本,且该副本只能由当前 Thread 使用。这是也是 ThreadLocal 命名的由来。既然每个 Thread 有自己的实例副本,且其它 Thread 不可访问,那就不存在多线程间共享的问题。总的来说,ThreadLocal 适用于每个线程需要自己独立的实例且该实例需要在多个方法中被使用,也

2020-06-20 14:07:00 94

原创 HashMap集合原理

HashMap集合原理0、问题hashmap的结构是什么?(数组 + 链表 + 红黑树)为什么要进行扩容?何时扩容?每次扩容多少?(均匀散列,提高效率。默认每次扩容为原来的一倍)key值是如何定位在table数组中的索引位置的?(key的 hashcode & (table数组长度 - 1))如何得到的散列值?如何尽可能确保key均匀且高效的散列到数组中? hash & (table数组长度 - 1)为什么不用hashcode取模运算取得hash值?而是使用hashcode

2020-06-19 10:20:48 109

原创 Java反射机制详解

1、什么是Java反射机制JAVA反射机制是在运行状态中,对于任意一个实体类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。Java的反射机制允许编程人员在对类未知的情况下,获取类相关信息的方式变得更加多样灵活,调用类中相应方法,是Java增加其灵活性与动态性的一种机制。2、反...

2019-12-03 17:54:54 174

原创 最新版乐优商城笔记、源码、资料

共享一个黑马传智播客的微服务项目实战《乐优商城》的笔记、源代码、以及所用到的所有资料和工具。来自一位好心人的分享!百度云盘提取:https://pan.baidu.com/s/1Ea1cP_fW31VZt9IRXKvEKA提取码:53d5个人跟着课程敲出的代码已托管到GitHub上:微服务后台源码:https://github.com/wenpanwenpan/leyou-p...

2019-11-25 17:23:16 7229 13

原创 多线程中主存与线程工作空间同步数据的时机

在测试volatile关键字如何保证数据在多个线程中的可见性问题的时候,引发的思考!对于一个临界资源,如果使用volatile关键字修饰,那么就可以保证该变量在多个线程中可见。对于原理的理解不是很难,但是使用到代码来模拟多线程问题的时候,对于何时从主存读取共享变量何时将工作内存刷写到主存的时机却不是特别清楚。导致对于多线程理解不够透彻!1、线程的工作内存刷写到主存以及从主存读取到工作内存的...

2019-11-22 16:40:47 1524 8

原创 Java多线程volatile关键字

一、volatile介绍1、什么是volatilevolatile是Java提供的一种轻量级的同步机制。Java语言包含两种同步机制:1、同步块(或同步方法) 2、volatile变量。相比于synchronized加锁同步,volatile关键字比较轻量级,开销更低,因为他不会引起线程上下文的切换调度。2、volatile定义Java编程语言允许线程访问共享变量,为了确保共享变量...

2019-11-18 17:32:34 274

原创 java8中的lambda表达式理解

Java8在2014年3月发布,但是作为IT公司往往不是追求技术的新,而且追求技术的稳定。所以大多用的之前的版本。Java 8 新特性简介速度更快(1、修改底层数据结构:如HashMap(数组-链表-红黑树),HashSet,ConcurrentHashMap(CAS算法)2、修改垃圾回收机制:取消堆中的永久区(PremGen)->回收条件苛刻,使用元空间(MetaSpace)...

2019-11-15 16:15:35 142

原创 阿里云服务器(centos7)上配置实现MySQL可远程连接

前提:已经在服务器上安装完毕MySQL!当在阿里云的服务器上安装完毕MySQL数据库以后,默认是不能进行远程连接的,我们需要做如下配置:一、授权1、设置数据库用户在所有ip下以及在本地可访问,以下用root用户做演示①、在MySQL的命令行,依次输入如下命令grant all privileges on *.* to root@"%" identified by "你的密码";g...

2019-11-14 13:21:56 274

原创 vmware workstation pro 无法在 windows 上运行解决方案

今天打开VMware的时候突然发现打不开了,以前都是好好的呀,也没做任何的更改!出现了如下情况!原因:造成这个问题的原因是因为win10的更新造成的,在更新了win10系统之后,VMware14不兼容Windows10 1903。我们可以把win10的自动更新禁止掉(其实win10的自动更新打补丁对我们一般人也没啥实际的用处)解决方案:1、按 win + R 打开运行,输入co...

2019-10-21 17:49:14 8402

原创 Java自定义类加载器

记录一个自定义的类加载器,并且使用自定义的类加载器来加载类。自定义类加载器步骤1、继承ClassLoader类2、自定义获取.class文件数据的方式(一般使用文件流的方式来获取.class文件)3、然后重写ClassLoader类的findClass方法4、在findClass方法中,将获取到的字节数组数据以及要加载的类的全限定名传入ClassLoader类的defineClass...

2019-10-13 10:39:19 162

原创 JVM中Class文件常量池中存放了哪些信息

目录直接引用和符号引用简述:Class常量池局部变量的讨论拓展知识直接引用和符号引用简述:举个例子:现在我要在A类中引用到B类,符号引用就是我只要知道B类的全类名是什么就可以了,而不用知道B类在内存中的那个具体位置(有可能B类还没有被加载进内存呢)。直接引用就相当于是一个指针,能够直接或者间接的定位到内存中的B类的具体位置。将符号引用转换为直接引用简单来说就是:在A类中可以...

2019-09-26 13:24:36 1962

原创 源码分析JDBC加载数据库驱动

通过源码分析JDBC加载数据库驱动本文是对类加载器学习总结!!!一、问题引入1、我们平时如果在项目中需要使用到数据库(以MySQL数据库为例)首先我们需要将MySQL数据库的驱动放在class path下2、在需要使用数据库的地方使用 Class.forName(“com.mysql.jdbc.Driver”);来加载数据库驱动3、使用DriverManager.getConnectio...

2019-09-21 22:31:26 233

原创 详解ServiceLoader如何将class path下服务实现类加载到jvm

ServiceLoader源码分析和SPI总结????​:最近两天通过阅读了一些源码和java doc对JVM有了粗浅的认识,特此做个知识记录!????介绍这个问题之前一定要对SPI知识有所了解!SPI介绍0. 问题引入1、拿我们的JDBC来引入问题,我们在自己的应用程序中如果要使用到数据库,我们只需要将该数据库的驱动jar包引入到应用的classpath下,然后在项目中使用Class.forNam...

2019-09-21 20:54:02 1141

原创 使用Tampermonkey油猴子给浏览器开个挂

油猴简介一、油猴是什么油猴(Tampermonkey)是免费的浏览器扩展和用户脚本管理器, 油猴子很特别, 它本身是一个无限手套(脚本管理器), 通过安装无限宝石(脚本), 能为我们提供超神的功能!它可以应用在多款浏览器上,比如谷歌浏览器,QQ浏览器,火狐,Opera Next,Microsoft Edge等。二、油猴能做什么油猴可以自由定制网页,实现我们想要的各种功能。比如自由定制网站页...

2019-09-01 16:14:35 5602

原创 SVN本地服务器搭建教程

一 Subversion服务端程序安装:1.下载svn:下载地址:http://sourceforge.net/projects/win32svn/files/latest/download2.双击运行msi:下载并双击运行:Setup-Subversion-1.8.9-1.msi3.安装过程:选择好安装目录,然后一路next直到完成。4.提示:安装完成以后,安装...

2019-07-11 13:07:43 5428

原创 java策略模式

示例:在说策略模式之前,先看一个小例子:假如:有一场演讲比赛,有十个评委对参赛选手的成绩进行打分,但最终要通过评委的平均分来决定选手的名次。现在有两种求平均分的策略:第一种:将十名裁判的分加起来求平均值。第二种:去掉最高分和最低分后求平均值。面对以上的需求,我们可能会写出如下代码:public class Averge { /** * @param a 每个裁判所...

2019-04-09 18:19:48 2445

原创 java.lang.SecurityException: Invalid signature file digest for Manifest main attributes

在hadoop集群中运行自己的MapReduce程序时报异常:Exception in thread “main” java.lang.SecurityException: Invalid signature file digest for Manifest main attributes解决方案!!!说明:本人我是在做自己的一个商场项目的时候,从项目中抽取了一个单独的MapReduce模块用...

2019-04-02 21:17:19 518

原创 将MapReduce的结果导入到数据库中

将MapReduce的结果导入到数据库中有时候我们在项目中会遇到输入结果集很大,但是输出结果很小,比如要将我们一堆数据的分析结果存储到我们的关系型数据库中以便于在web程序中进行查询显示,这时候我们就需要 mapreduce 与 mysql 进行数据的交互。为了方便 MapReduce 直接访问关系型数据库(Mysql,Oracle),Hadoop提供了DBInputFormat和DBO...

2019-03-29 13:02:54 1263 1

原创 使用intellij搭建运行MapReduce环境

使用intellij搭建运行MapReduce环境说明:因为本人是在Windows中的idea中编写的MapReduce程序,每次编写玩程序后都需要打成jar包发布到集群中去检查程序的正确性,个人感觉比较麻烦。一、实验环境物理机:Windows10idea:intellij 2017二、具体需求在idea中搭建一个用于运行MapReduce程序的环境,这样就可以在idea中运行或调试M...

2019-03-28 22:40:43 1173

原创 thymeleaf中的下拉框(select option)回显选中

介绍:最近使用thymeleaf模板引擎做二手商城项目,在用户修改自己出售的商品信息的时候需要将数据从数据库中查询出来在前端页面进行数据的回显。在input框中的数据回显都没有问题,但是到select框回显的时候却遇到了一些麻烦。特此记录以便查阅!正确方式如下:使用thymeleaf的switch和case来进行判断,将所有的selected属性都设置为selected,将要选中的值与所有的...

2019-03-20 09:44:39 4775

原创 通过ip加日期时间戳生成不重复的字符串

这里记录一个自定义的工具类,用于利用ip和时间戳来生成一个随机不重复的字符串,该工具类的可用于文件上传时生成文件名,这样保证上传的文件不会因为文件名重复而出现文件覆盖的现象。特此记录,以便取用!package com.wp.demo.utils;import java.text.SimpleDateFormat;import java.util.Date ;import java...

2019-02-22 19:47:29 688

原创 Linux进程管理及常用操作

目录一、进程的基本介绍二、显示系统执行的进程三、终止进程kill和killall四、服务管理1、介绍2、service管理指令3、服务的运行级别五、chkconfig指令介绍六、应用案例一、进程的基本介绍1.在linux中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个ID号。2.每一个进程,都会对应一个父进程,而这个父进程可以复制多个多...

2019-01-23 21:34:53 139

原创 Linux下磁盘情况查询

在Linux的使用中,我们会经常的查看我们的磁盘使用情况等,下面记录一些常用的磁盘情况查询操作!一、基本语法语法:df -h  或df -lh实例:查询系统磁盘的整体使用情况二、查询指定目录磁盘占用情况基本语法:du -h /指定目录说明:该命令是查询指定目录的磁盘占用情况,默认是查看当前目录 -s :指定目录占用大小汇总 -h :带计量单位 -a :含文件...

2019-01-23 12:03:24 163

原创 linux系统新增一块SCSI硬盘并分区挂载到指定目录

目录一、linux分区介绍二、增加一块硬盘并进行分区和挂载三、详细操作步骤一、linux分区介绍1.原理介绍1)对于Linux来说无论有几个分区,分给哪一个目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分。2)Linux采用了一种叫“载入”的处理方法,它的整个文件系统中包括了一整套的文件和目录,且将一个...

2019-01-23 11:26:56 4806

原创 linux定时任务调度crontab

概述:任务调度:是指系统在某个时间执行特定的命令或程序。任务调度分类:系统工作:有些重要的工作必须周而复始的执行,如病毒扫描等 个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库执行备份等。基本语法crontab [选项]常用选项:-e  : 编辑crontab定时任务 -l   : 查询列出定时任务 -r   : 删除当前用户所有的crontab定...

2019-01-23 09:29:19 185

原创 Linux的七大运行级别及忘记root密码解决方案

目录一、运行级别介绍二、运行级别的切换三、找回root密码四、设置默认启动模式一、运行级别介绍Linux的设计者将linux设计了七个运行级别分别是:0:关机 1:单用户【丢失密码找回】 2:多用户状态没有网络服务(相当于Windows下的安全模式) 3:多用户有网络服务(一般适用于开发人员和维护人员) 4:系统未使用保留给用户 5:图形化界面(适用于普通用户...

2019-01-22 12:55:06 188

原创 VI/VIM 编辑器常用操作

目录VI/VIM编辑器常用操作介绍:1.VI和VIM是什么2.一般模式2.1常用语法3.编辑模式3.1常用语法4.指令模式4.1基本语法5.模式转换6.VI/VIM键盘图1.VI和VIM是什么VI 是 Unix 操作系统和类 Unix 操作系统中最通用的文本编辑器。 VIM 编辑器是从 VI 发展出来的一个性能更强大的文本编辑器。可以主动的以字体颜...

2019-01-21 20:53:18 12005

原创 大数据电信项目之Redis缓存

目录表设计介绍为什么使用Redispom.xml配置文件代码片段展示1.从mysql中查询到Telid和dateid,先保存到map集合中2.向redis中存储电话号码和电话号码的id(date和dateid一样)整体代码表设计介绍在本项目的MapReduce分析阶段之后的自定义outputformat阶段,将分析后的数据写入到MySQL中。在该项目的表设计中,...

2019-01-19 11:37:22 326

原创 大数据电信项目之BaseDao、HbaseDao以及CalllogConsumer

在本项目中的消费模块(将kafka消费者消费的到数据写入到Hbase中进行保存),最为关键的三个类就是BaseDao、HbaseDao以及CalllogConsumer。简介:BaseDao:该类是一个抽象类,定义了操作Hbase的相关方法,比如在hbase中新建一张表,删除表,建表之前进行预分区,取得HBASE连接,取得Admin操作对象等相关方法。考虑到该类可能会被多个模块使用到,所以...

2019-01-19 10:57:57 238

原创 大数据电信项目之协处理器

协处理器使用介绍:在本项目中,如果向HBASE中插入一条主叫的通话日志,比如张三在2018年3月份跟李四通话了50秒,那么李四在2018年3月份同样也跟张三通话了50秒,在HBASE中同样也应该保存一条李四的通话记录,这里张三是主叫,李四是被叫。我们可以在consumer中插入主叫用户信息后紧接着再插入一条被叫用户的信息,但是这样插入的效率就会降低。所以我们这里使用到了协处理器。协处理器工作在...

2019-01-19 10:28:58 241

原创 大数据之电信项目架构

目录一、通话日志来源二、 flume日志采集三、kafka消费数据四、HBASE保存数据五、MapReduce分析数据六、Redis缓存七、数据展示项目需求:统计分析用户每个月,每年的通话次数和通话总时长项目架构图如下:本项目是一个离线项目,主要是监控采集数据到hbase,然后将hbase上的数据进行分析处理,将处理后的结果存放到MySQL中,然后将分析...

2019-01-18 21:23:49 1929

原创 大数据电信项目之分区键和rowkey的设计

项目大体流程:先由自己写好的生产者程序jar包不停的向call.log文件中生产通话日志,模拟用户通话 使用flume监控日志文件call.log,将该日志文件作为flume的source源,通过channel和sink 使用kafka创建topic,flume监控得到的数据作为kafka的producer,然后将数据写入到指定的topic中 启动一个消费者程序,将topic中的数据进行...

2019-01-18 20:46:48 321

原创 Hadoop集群及Linux操作脚本

以下是记录一些操作Linux及hadoop集群等的一些群体操作脚本,比如有启动 / 关闭hadoop集群脚本,启动 / 关闭zookeeper集群脚本,查看每台服务器上的java进程脚本,集群分发脚本等。将脚本编写完毕后需要配置到环境变量中,才可以在任何目录下进行使用!操作详细讲解:1.集群配置分发脚本:2) rsyncrsync远程同步工具,主要用于备份和镜像。具有速度快、...

2019-01-18 19:05:35 189

原创 使用IDEA整合SSM框架开发

每一次重新搭建整合SSM开发环境都花费大量的时间,特此记录,以免遗忘!一、搭建基础环境1.创建一个maven项目或模块2.给项目或模块取一个名字3.点击next4.点击完成,等待项目创建完成5.项目或模块创建成功后,项目结构如下①.再main下新建两个文件夹(java和resources),然后将这两个文件夹设置为对应的目录,如下:②.将we...

2019-01-18 18:44:02 345

乐优商城项目.sql

乐优商城项目sql文件,可直接mysql中导入该sql文件执行一下即可。

2019-10-25

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

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