自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Earl_yuan的专栏

草在结它的种子,风在摇它的叶子。我们站着,不说话,就十分美好。

  • 博客(100)
  • 资源 (11)
  • 收藏
  • 关注

原创 Redis说无法分配内存该怎么办?

近日我司生产环境的redis频繁异常不可访问,已经严重影响公司牛逼的产品起飞了,那么作为集设计、编码、测试、运维于一身的全栈吹牛皮工程师,必须给它搞上一搞。生产环境出了问题后,其实就是登录失败时提示token无效。根据老衲多年写bug的经验,第一时间就想到redis出了问题。登录服务器,ps看了一眼redis的进程,没问题。又free看了一眼内存,我的个乖乖,64g内存还剩几百兆,这肯定不正常了啊。随即打开了redis的日志,看到满屏都是以下内容输出,有那么一瞬,就像一万只草泥马从心头奔过。6663:M

2022-04-19 21:01:14 1268

原创 Linux CentOS设置密钥连接

日常生产中,为了确保linux服务器的访问安全,我们通常需要关闭密码登录,改用密钥文件连接登录。那么如何猛如虎的操作一套呢,这里以CentOS为例说明,但只要是Linux系统,基本套路都一样,请看下文。一、 生成密钥文件执行命令cd ~/.ssh/,若没有该目录,请先执行命令ssh localhost。第一次执行会需要输入root账户的密码。执行命令ssh-keygen -t rsa,若不需要设置密钥密码则可以一直回车。执行完毕,可以看到在.ssh目录下生成了id_rsa和id_rsa.pub

2022-03-05 16:37:20 6844

原创 RabbitMQ交换器Exchange总结

一、 基础概念首先来看看RabbitMQ的通信架构模型。对于以上模型中的各个部分作以简要解释。Producer:消息生产者,也就是消息产生的源头。Consumer:消息消费者。Broker:它提供一种传输服务,它的角色就是维护一条从生产者到消费者的路线,保证数据能按照指定的方式进行传输。Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列。Queue:消息队列,承载消息在RabbitMQ,每个消息都会被投到一个或多个队列。Routing Key:路由键

2022-03-03 21:27:46 1925

原创 钉钉群机器人接入

在某些内部系统的开发时,常常会有需要定时消息推送的需求,目前作为办公通信软件使用较多的是阿里的钉钉,因此可以通过钉钉的开放接口进行钉钉群的机器人推送我们的消息。本文主要介绍如何将钉钉群机器人接入我们的系统。一、 钉钉群创建机器人打开要创建机器人的钉钉群,点击群设置,选择智能群助手。点击下方的添加机器人,进行机器人的添加。钉钉自带了几个常用种类的机器人,这里我们选择自定义机器人,用于使用程序接入。设置机器人的名称,安全设置必须要设置,这里我们选择自定义关键词,也就是说通过程序发给机器人的消

2022-03-02 21:23:22 1744 1

原创 【杀毒】-记一次挖矿病毒sysdrr杀毒

公司内网有一台服务器上部署的服务,前两天突然无法访问了,SSH连接服务器失败,由于这台服务器是刀片机上虚拟出来的,遂决定重启虚拟机,竟然无法正常重启,最后强制重启后,连接服务器启动了应用的服务,但是过了一会儿,同事反馈说又无法访问应用了。随即SSH连接服务器,检查内存资源充足,磁盘空间充足,唯独CPU把几个核全部耗尽。通过top命令查看,发现有一个bash进程消耗了大量的CPU资源。通过ps -ef|grep 22671查询进程号为22671的进程,可以发现是一个system的进程在执行。.

2022-01-16 21:05:49 1447

原创 IDEA导出jar包并使用exe4j制作可执行文件

本文主要介绍如何使用IDEA导出单体jar包,并使用exe4j将jar包制作为可执行文件exe,且可以在无java运行环境的主机上运行。一、 IDEA导出jar包打开 idea,在要打包的项目上右键,选择Open Module Settings选择Artifacts,在右侧窗口中点击+,选择JAR,选择From modules with dependencies...接下来,如下图所示按实际情况设置。操作完成后,如下图提示进行设置,新建的依赖包文件夹lib会在最后打包完成..

2022-01-12 19:02:40 1155 1

原创 jar包内资源文件的获取

jar包内的资源文件获取

2022-01-08 11:25:47 1299

原创 关于docker服务的卸载

前一阵子,由于客户在不知情的情况下,擅自在已安装docker服务的服务器上再次安装docker服务,并且在其没有安装成功的情况下,擅自非常规的进行docker服务的卸载,导致docker服务没有成功卸载,应用所使用的docker服务也出现了无法启动,无法结束docker进程的问题。因此我计划将docker服务卸载,再重新安装。但是卸载过程中发现卸载进程会一直卡在**Transaction running**的进度,无法完成卸载。出现上述现象导致无法卸载的原因是,当前卸载docker服务正在运行,因此需要

2021-09-22 20:53:40 1900 1

原创 海量mysql和mongodb数据迁移恢复方案整理

最近工作中,由于我司数据库采用单节点部署,线上出现了测试环节无法涉及的数据量而导致的性能问题,需要将生产环境的数据导回测试环境并恢复以供测试研发同时进行定位优化。但是当生产环境数据量特别大时,在做数据库迁移工作时,如果使用数据库自带的导出导入工具,非常耗时。最简单粗暴方式为将数据库的整个数据目录拷贝,而后在其他机器上进行数据恢复。以下记录记录前一阶段是如何进行海量数据的导入导出。一、 mysql数据库的迁移恢复mysql的迁移恢复比较简单,在待恢复的服务器上,安装与生产环境版本一样的mysql数据库

2021-09-13 21:57:26 2719

原创 【Docker IV】Dockerfile的那点事儿

上篇博文中提到了在实际工作中构建镜像更多使用的Dockerfile,今天我们再来详细的看看这个有趣有内涵的小可爱。一、Dockerfile构建镜像的流程还是简简单单的看下上篇博文中最后的Dockerfile。#Version:0.0.1 # 版本信息FROM centos:latest # 表示从哪个基础镜像开始构建MAINTAINER Yuan "[email protected]" # 表示作者以及邮箱# 以下就是Dockerfile的执行,每条命令都是以RUN来开始,表示开始执行命令

2020-06-10 22:43:05 1040

原创 【Docker III】Docker 常用命令

本文将总结常用的docker命令。一、容器操作列出正在运行的docker容器,docker ps列出所有docker容器,docker ps -a查看容器日志,docker logs 容器id或名称,有可选参数:–tail num:输出日志末尾num行日志数据-f:跟踪日志输出-t:日志显示时间戳-since time:显示time时间后的日志数据启动容器,docker start 容器id或名称停止容器优雅地停止容器,docker stop 容器id或名称不那么优雅地停止

2020-05-25 22:38:10 462

原创 【Docker II】Docker运行第一个容器-Hello World

万事俱备,只欠HelloWorld。一、替换默认Docker register源由于默认的docker镜像仓库是在国外,访问不便,因此为了便于实际使用,咱们需要先将镜像仓库源替换为国内仓库源,这里我使用的阿里云的docker镜像仓库源。进入目录/etc/docker/,如果存在daemon.json文件时,直接将如下内容增加到文件中。如果不存在daemon.json文件,创建文件,并将如下...

2020-04-18 10:20:34 1265

原创 【Docker I】Virtualbox设置CentOS网络实现宿主机与虚拟机互通&&安装docker

virtualbox安装CentOS创建虚拟机,加载镜像,完成安装。按照如下设置虚拟机网络网络:正常启动虚拟机,vi修改/etc/sysconfig/network-scripts/ifcfg-enp0s3,将ONBOOT=no修改为ONBOOT=yes。至于为何是ifcfg-enp0s3,需要根据实际网卡的情况进行配置,具体操作为执行命令ip addr,找到没有配置ip的那块网卡,我本...

2020-04-15 22:05:23 789

原创 虚拟机的类加载及双亲委派

之前谈到过字节码文件,可以说字节码文件是虚拟机运行程序的基础。但是有了字节码文件就可以开始运行我们的Java程序吗?其实不然,对于从开发人员编写好Java程序到在虚拟机中正在开始运行的过程来说,编译或编写生成字节码文件只是万里长征的第一步,接下来我们将谈谈字节码文件在虚拟机运行程序时是怎样的存在。本文的主要内容是虚拟机的类加载机制,双亲委派模型以及如何打破双亲委派模型。一、类加载机制首先我们...

2019-05-29 22:52:41 296

原创 字节码文件及字节码指令

我记得开始学习Java的第一堂课时,我的大学老师是这样说的,Java号称是“一次编写,到处运行”,为什么有底气这样说,是因为Java程序并不是直接运行在操作系统上的,它通过不同操作系统上的Java虚拟机实现了“到处运行”的美好愿景。而且我的老师当时还说过,不止Java程序可以在Java虚拟机上运行,其他的程序也同样可以在Java虚拟机上运行。Java虚拟机并不认识具体的某种编程语言,而是编程语言要...

2019-05-21 11:24:14 4551

原创 Java内存区域及对象的创建与回收

从第一天开始学习Java,就需要和JVM打交道,然而对其只知名称,不知内涵。此前一直觉得这块知识晦涩难懂,不想积极地去面对。但是JVM的知识又是每个通往高级Java程序员所必备的,因此正好趁这一阵辞职休息的时间,正面的和JVM刚一下。本文及近期后续JVM相关文章基本都是基于本人阅读的周志明所著《深入理解Java虚拟机-JVM高级特效与最佳实践》一书的读书笔记及心得体会,欢迎留言讨论。本文主要内容...

2019-05-16 17:48:54 493

原创 MySQL优化

mysql优化要从以下四方面考虑:数据表设计合理表设计要符合三范式(规范的模式),有时需要适当的逆范式。SQL语句的优化数据库的配置适当的硬件配置和操作系统以上四点顺序也表现了对性能影响的大小。本文主要针对前两点进行总结。一、数据表设计首先来介绍下三范式和逆范式。三范式第一范式(1NF):具有原子性,不可分割。只要使用关系型数据库,默认就符合。第二范式(2NF):...

2019-05-09 11:07:13 209

原创 关于多线程相关知识的补充

关于线程创建的常用的3种方式继承Thread类,重写run方法。public class Demo1 { public static void main(String[] args) { Thread t1 =new Thread1(); Thread t2=new Thread2(); t1.start(); ...

2019-04-22 23:23:34 159

原创 Java常用容器总结

常用容器ListArrayListArrayList是实现了List接口的,可调整大小的数组。ArrayList内部是按照顺序进行元素的维护的,即不断向数组队列的尾部追加数据。ArrayList允许添加空值null和重复的值。ArrayList可以有泛型的表示,但是泛型必须是除8大基本类型以外的引用类型。如果想添加基本类型的数据,就必须使用其对应的包装类型,例如整型需要使用Integ...

2019-04-10 17:15:56 333

原创 Java实现常见算法

排序冒泡排序冒泡排序的原理是每次比较相邻元素的大小,并且将大值交换到后面。以下是代码实现。// [3,9,1,45,8,13,2,5]/* 第一趟: 第一次排序,3和9比较,不交换位置: 3*,9,1,45,8,13,2,5 第二次排序,9和1比较,交换位置: 3,1*,9,45,8,13,2,5 第三次排序,9和45比较,...

2019-04-09 10:52:20 463

原创 聊聊Java的面向对象

面向过程与面向对象说到面向对象,我们先来看看和面向对象相对的面向过程的概念。什么是面向过程?面向过程,顾名思义“过程”是重点,可以理解为当我们要解决某个问题时,会把这个问题里的步骤进行拆分细化,然后按照指定的顺序来执行这些步骤。举例说明我想吃米饭,那么在面向过程中,我需要进行插秧,施肥,收获,放入电饭锅,最后才可以吃饭。假如在水稻种植过程中出现了病虫害,说不定都撑不到收获的季节,那么最后的米饭...

2019-04-09 10:50:24 317

原创 Java基础概念

java中的变量分为两大类,基本变量与引用变量。基础变量只有以下8个,除此以外的变量类型都为引用类型。整数浮点数布尔类型字符型byte(8位,取值范围-2的7次方~2的7次方-1)float(32位,精度小)boolean(取值范围true和false)char(16位,取值范围0~2的16次方-1)short(16位,取值范围-2的15次方~2的15次方...

2019-04-09 10:47:08 234

原创 使用IDEA创建Maven项目(简单的spring与mybatis整合)

众所周知,eclipse在java开发IDE中占有很大的比重,因此从大学起直到现在工作也都一直使用的是eclipse作为开发工具。2019年初,在工作中开始接触到IDEA这个久闻大名的开发神器,一入手便爱上了它。刚从eclipse阵营转移过来,IDEA的相关操作还不甚熟悉,因此在这里创建一个spring整合mybatis的demo,并将相关操作记录此文,便于日后查阅及分享。一、创建项目打开ID...

2019-03-10 14:07:26 2557

原创 openstack学习笔记(1)--入门之概念介绍

一、简介openstack是由Rackspace和NASA共同发起的开源项目,由一系列的开源软件项目构成,例如nova,swift等等,各项目之间是松耦合的关系,可以共同部署使用,也可以单独使用。作为基础设施资源的系统管理平台,正好符合基础设施即服务(IaaS,Infrastructure as a Service)的思想。将基础设备接入openstack进行管理,可以按需的获取cpu,内存,磁盘等

2018-03-10 17:51:28 1086

原创 Swagger,好用的API管理神器(swagger学习简单总结)

一、swagger简介1.1. swagger是什么? THE WORLD’S MOST POPULAR API TOOLING Swagger is the world’s largest framework of API developer tools for the OpenAPI Specification(OAS), enabling development across the

2017-06-04 15:28:50 7979 4

原创 eclipse使用git及github学习笔记

上一篇文章记述了一些git的常用命令行操作,但是在实际应用中,我们多使用eclipse进行开发,个人认为使用eclipse直接对git操作比使用命令行方便许多(请原谅我对命令行的渣操作)。而且目前比较新的eclipse也都将git集成在其中,这样一来,快速掌握eclipse的git操作也就顺理成章了。本文使用github作为练习的远端仓库,虽然实际工作中使用的是huawei自己的代码云仓库,但

2017-03-23 20:18:53 5943 1

原创 git学习笔记

最近工作中用到了新的版本控制管理工具git,相较于以前使用的集中式版本控制系统svn还是有很大区别的。在此作以总结记录,以便后续工作中可以查阅。git简介Git是一款免费开源的分布式版本控制系统,用于敏捷高效地处理任何或大或小的项目。 Git是由Linux之父Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。git安装打开git的官网,下载最新的git客

2017-03-05 20:44:45 768 1

原创 MongoDB学习笔记

从接触计算机学习开始,我所使用的数据库就是MySQL,Oracle这样的关系型数据库。早就听说了NoSQL的概念,也对其有代表性的非关系型数据库mongoDB有所耳闻,一直想学习学习这项从未使用过的技术,可是由于种种原因,又没有时间来学习学习这项新的概念。也就是这么巧,目前的工作中,使用到的就是mongoDB,那么借此机会,正好好好学习学习这个新的数据库。安装及部署学习一个新的数据库,当然首先第一步

2016-09-04 22:21:44 1769 2

原创 struts-spring-mybatis整合项目搭建

这段时间在家考公务员等成绩,闲得无事翻看以前上学写的小项目,觉得基础真的还是特别的重要。因此趁着这段空闲时间决定把以前的知识梳理一下,万一这次公务员没戏,再去找工作时不至于忘却了以前的记忆。那么今天就先从框架整合项目来入手吧。这次整合的是struts,spring以及mybatis,为什么数据持久层框架没有使用hibernate,因为我个人觉得mybatis的sql比hibernate的hql好用。

2016-05-10 17:23:24 3310 1

原创 文本框获得焦点

在实际开发中,我们可能会遇到需要对文本框进行判断,如果为空的情况,是不能进行表单提交的,而且为了用户界面的交互友好考虑,我们需要让文本框获得焦点以便用户继续输入。下面我们就来看看如何使用js控制实现这一需求。<body> <input type="text" id="tmpName" name="tmpName" onblur="checkExist()"><span id="tip"></

2016-02-16 19:58:05 3448

原创 Quartz与Spring的整合使用

之前说到过Quartz的基本使用(猛戳这里看文章),在实际使用中,我们通常会将定时任务交由spring容器来管理,所以今天我们来说说Quartz与spring的整合。咱们还是按照Quartz的三大元素的顺序来聊聊整合使用。作业任务在spring中对于Quartz的作业任务管理主要提供了两种方式,JobDetailFactoryBean和MethodInvokingJobDetailFactoryBe

2016-02-15 21:57:46 9382 4

原创 回首Hibernate之入门篇

学习过hibernate很久了,但是由于公司的项目使用mybatis作为项目持久层框架,所以在实际的工作中hibernate没了用武之地。为了不会随着时间的流逝而忘却了最初的hibernate,在此写点东西作为纪念。一、基本概念1.基本作用:hibernate框架主要用于对数据库的操作,是对JDBC的封装。在应用中实现数据访问层。2.优点:避免编写大量复杂SQLhibernat

2016-01-18 20:51:54 971

原创 Apache James邮件服务器的简介及使用

一、前言众所周知,在今天这个互联网高速发展的时代,电子邮件在我们的日常工作生活中使用地越来越普遍。通常我们使用QQ邮箱,网易邮箱这样的免费邮箱来作为我们日常生活的电子邮箱。但是还有很多时候,在企业中就不能将这样的免费邮箱来作为企业邮箱。第一,不能保证企业内部邮件的安全,存在商业信息泄露的可能;第二,使用免费邮箱不便于管理,如果存在人事变动,使用免费邮箱不便对离职员工的邮箱进行回收,这样会存在离职员工

2016-01-04 20:45:17 11033 5

原创 浅谈MVC分层架构中的层次

工作一年了,在工作中也完成了几个项目,但是都是由公司的架构师搭建好了整个项目的框架,我们在其中进行业务逻辑的开发。还没有真正完整的搭建过一个web项目,所以最近自己就动手搭建一个springmvc+struts2+mybatis的练手项目时,在这过程中更加深入的接触到了MVC分层架构,对整个系统中的几个分层也有了一定的新的认识。view-controller-model这是在学校就接触到的概念,在正

2015-12-23 21:56:58 14820 4

原创 聊聊Quartz那点事儿

时间如白驹过隙,转瞬即逝,转眼间又到了一年的尾声。去年这个时候,还是一个刚刚走出学校,加入程序员队伍的一名小菜鸟程序员,这一年经历过了几个项目的洗礼,已经成长为了一名大菜鸟程序员。去年此时,正好有幸学习公司已经完成的支付网关的项目,对于一个初入行业的新人,项目中用到技术对我的吸引实在是太大了。今天就来聊聊这个项目中用到的定时任务框架Quartz。初识 官方文档对Quartz的描述:

2015-12-20 21:16:44 1558

原创 我与日志记录二三事(log4j&logback)

随着时间的流逝,转眼间已经工作了一年有余。这一年的工作让我的开发观念从学生彻底的变成了一个真正的开发人员。很简单的就是这个关于日志的问题,以前自己也写过一些项目,从没想过使用日志来记录程序的运行,可以说之前从来没有在eclipse中输入过log这个单词。但是就是通过这一年的工作,让我深刻的认识到日志记录的重要性,所以现在我把这一年涉及的日志的知识进行一次小的总结,也算是对这一年工作的一个纪念吧。

2015-12-06 21:34:55 4666

原创 我与Freemarker二三事

最近工作不是很忙,所以想利用这段空闲时间学习学习。之前在微信上看到一篇关于FreeMarker的文章(点击这里查看),加之现在的项目中使用到了FreeMarker,当时为了急于完成在网上找了些速成的资料,所以我决定利用这段时间学习学习FreeMarker。阅读了官方文档,总结了一些自己觉得还挺有用的东西,整理在这里。

2015-11-22 20:13:39 3108

原创 JFreeChart的总结

因为之前在工作中用到了Echarts这个非常简单易用的图表插件,所以这段时间对图表的相关知识很感兴趣。回想到自己的毕业设计中也用到了图表的显示,当时使用的是JFreeChart,现在看看当时做的真的是不堪入目,虽然功能完成了,但是生成的图表实在是不忍直视。

2015-11-15 17:08:51 3183

原创 Echarts的使用

最近工作中使用到了图表统计,综合多方面考虑,决定使用百度开源的项目Echarts来作为项目图表显示的开发。在工作中我们使用到了Echarts实例里的标准圆环图,就像是这样

2015-11-03 21:50:25 4590

原创 Ajax实现瀑布流动态加载网页

瀑布流的动态加载效果是我一直以来觉得最喜欢的效果之一了。最近在工作中遇到了一个情景,当我登录到系统中时,需要向另一个系统发送多次接口查询数据,之后再将这些数据显示到页面上。这就存在了这样一个问题:页面加载的时间过长,用户在登陆后就需要一直等待接口全部查询完毕后才能登录到系统中。这大大的降低了用户体验。所以我就决定使用瀑布流的效果来加载页面,在用户登陆后,先只查询一个接口,返显数据到页面上,这时用户

2015-10-14 07:58:08 6650

EasyExcel之Hello world

EasyExcel之Hello world

2022-03-12

SpringBoot整合RabbitMQ基础学习Exchange源码

SpringBoot整合RabbitMQ基础学习Exchange源码

2022-03-03

springmvc整合swagger示例代码

springmvc整合swagger示例代码,详情请访问http://blog.csdn.net/Earl_yuan/article/details/72859059

2017-06-04

ssm项目整合源代码

本资源为博客文章http://blog.csdn.net/earl_yuan/article/details/50757171的源代码

2016-05-10

Quartz与Spring整合练习源代码

Quartz与Spring整合练习源代码,本文博客地址http://blog.csdn.net/Earl_yuan/article/details/50668864

2016-02-15

hibernate总结练习源码

本资源为hibernate总结练习时的源代码,请随意下载

2016-02-14

java日志框架

log4j和logback的helloworld以及与spring等的整合使用

2015-12-06

FreeMarker

对官方文档的学习,对FreeMarker的总结

2015-11-22

Ajax实现瀑布流动态加载Demo

瀑布流动态加载的原理:加载触发主要是通过js实现的。在页面的某个地方设置一个标记,当页面滚动到这个标记的位置时,触发加载。

2015-10-15

用java实现简单的音乐播放

简单的音乐播放功能,能实现控制台的音乐输出

2013-05-07

简易的记事本

简易的记事本程序,java语言实现,可实现文件的储存

2013-04-23

空空如也

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

TA关注的人

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