技之感悟
文章平均质量分 80
记录日常工作学习中的点点滴滴
Earl_yuan
这个作者很懒,什么都没留下…
展开
-
Redis说无法分配内存该怎么办?
近日我司生产环境的redis频繁异常不可访问,已经严重影响公司牛逼的产品起飞了,那么作为集设计、编码、测试、运维于一身的全栈吹牛皮工程师,必须给它搞上一搞。生产环境出了问题后,其实就是登录失败时提示token无效。根据老衲多年写bug的经验,第一时间就想到redis出了问题。登录服务器,ps看了一眼redis的进程,没问题。又free看了一眼内存,我的个乖乖,64g内存还剩几百兆,这肯定不正常了啊。随即打开了redis的日志,看到满屏都是以下内容输出,有那么一瞬,就像一万只草泥马从心头奔过。6663:M原创 2022-04-19 21:01:14 · 1396 阅读 · 0 评论 -
Linux系统中的时间设置(硬件时钟VS系统时钟)
在实际工作中,我们部署在linux系统中的应用的运行通常需要使用正确的时间,而在没有时钟同步服务的时候,就需要我们手动去修改linux的系统时间。那么这里就说说如何修改linux的系统时间。软件时钟软件时钟就是linux操作系统的时钟,我们可以使用date命令查询出时钟的时间。对于它的设置,可以使用命令date -s "2022-04-15 14:00:00"。硬件时钟硬件时钟是存储在服务器主板上,由主板电池为其供电的时间记录模块,可以通过hwclock --show来查询当前的硬件时间。如果通过上原创 2022-04-16 20:33:12 · 3029 阅读 · 1 评论 -
mosquitto的编译安装及开机自启
最近我司项目中引入了mosquitto这个轻量级的实现了消息推送协议 MQTT v3.1 的开源消息代理软件,由于此前一直使用RabbitMQ作为消息中间件,因此需要从零开始搭建mosquitto的环境。本文主要针对本次安装的步骤做以记录。mosquitto安装步骤我们使用的是mosquitto-1.4.8,先将其从官网下载后上传至服务器相关目录,这里假设我们上传到/opt/mqtt/mosquitto目录。进入/opt/mqtt/mosquitto,执行命令tar-zxf mosquitto-1.原创 2022-04-11 11:13:03 · 3262 阅读 · 0 评论 -
浅谈MVC分层架构中的层次
工作一年了,在工作中也完成了几个项目,但是都是由公司的架构师搭建好了整个项目的框架,我们在其中进行业务逻辑的开发。还没有真正完整的搭建过一个web项目,所以最近自己就动手搭建一个springmvc+struts2+mybatis的练手项目时,在这过程中更加深入的接触到了MVC分层架构,对整个系统中的几个分层也有了一定的新的认识。view-controller-model这是在学校就接触到的概念,在正原创 2015-12-23 21:56:58 · 15015 阅读 · 4 评论 -
Apache James邮件服务器的简介及使用
一、前言众所周知,在今天这个互联网高速发展的时代,电子邮件在我们的日常工作生活中使用地越来越普遍。通常我们使用QQ邮箱,网易邮箱这样的免费邮箱来作为我们日常生活的电子邮箱。但是还有很多时候,在企业中就不能将这样的免费邮箱来作为企业邮箱。第一,不能保证企业内部邮件的安全,存在商业信息泄露的可能;第二,使用免费邮箱不便于管理,如果存在人事变动,使用免费邮箱不便对离职员工的邮箱进行回收,这样会存在离职员工原创 2016-01-04 20:45:17 · 11429 阅读 · 5 评论 -
openstack学习笔记(1)--入门之概念介绍
一、简介openstack是由Rackspace和NASA共同发起的开源项目,由一系列的开源软件项目构成,例如nova,swift等等,各项目之间是松耦合的关系,可以共同部署使用,也可以单独使用。作为基础设施资源的系统管理平台,正好符合基础设施即服务(IaaS,Infrastructure as a Service)的思想。将基础设备接入openstack进行管理,可以按需的获取cpu,内存,磁盘等原创 2018-03-10 17:51:28 · 1117 阅读 · 0 评论 -
使用IDEA创建Maven项目(简单的spring与mybatis整合)
众所周知,eclipse在java开发IDE中占有很大的比重,因此从大学起直到现在工作也都一直使用的是eclipse作为开发工具。2019年初,在工作中开始接触到IDEA这个久闻大名的开发神器,一入手便爱上了它。刚从eclipse阵营转移过来,IDEA的相关操作还不甚熟悉,因此在这里创建一个spring整合mybatis的demo,并将相关操作记录此文,便于日后查阅及分享。一、创建项目打开ID...原创 2019-03-10 14:07:26 · 2672 阅读 · 0 评论 -
聊聊Java的面向对象
面向过程与面向对象说到面向对象,我们先来看看和面向对象相对的面向过程的概念。什么是面向过程?面向过程,顾名思义“过程”是重点,可以理解为当我们要解决某个问题时,会把这个问题里的步骤进行拆分细化,然后按照指定的顺序来执行这些步骤。举例说明我想吃米饭,那么在面向过程中,我需要进行插秧,施肥,收获,放入电饭锅,最后才可以吃饭。假如在水稻种植过程中出现了病虫害,说不定都撑不到收获的季节,那么最后的米饭...原创 2019-04-09 10:50:24 · 354 阅读 · 0 评论 -
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 · 504 阅读 · 0 评论 -
关于docker服务的卸载
前一阵子,由于客户在不知情的情况下,擅自在已安装docker服务的服务器上再次安装docker服务,并且在其没有安装成功的情况下,擅自非常规的进行docker服务的卸载,导致docker服务没有成功卸载,应用所使用的docker服务也出现了无法启动,无法结束docker进程的问题。因此我计划将docker服务卸载,再重新安装。但是卸载过程中发现卸载进程会一直卡在**Transaction running**的进度,无法完成卸载。出现上述现象导致无法卸载的原因是,当前卸载docker服务正在运行,因此需要原创 2021-09-22 20:53:40 · 1998 阅读 · 1 评论 -
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 · 1249 阅读 · 1 评论 -
钉钉群机器人接入
在某些内部系统的开发时,常常会有需要定时消息推送的需求,目前作为办公通信软件使用较多的是阿里的钉钉,因此可以通过钉钉的开放接口进行钉钉群的机器人推送我们的消息。本文主要介绍如何将钉钉群机器人接入我们的系统。一、 钉钉群创建机器人打开要创建机器人的钉钉群,点击群设置,选择智能群助手。点击下方的添加机器人,进行机器人的添加。钉钉自带了几个常用种类的机器人,这里我们选择自定义机器人,用于使用程序接入。设置机器人的名称,安全设置必须要设置,这里我们选择自定义关键词,也就是说通过程序发给机器人的消原创 2022-03-02 21:23:22 · 1861 阅读 · 1 评论 -
RabbitMQ交换器Exchange总结
一、 基础概念首先来看看RabbitMQ的通信架构模型。对于以上模型中的各个部分作以简要解释。Producer:消息生产者,也就是消息产生的源头。Consumer:消息消费者。Broker:它提供一种传输服务,它的角色就是维护一条从生产者到消费者的路线,保证数据能按照指定的方式进行传输。Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列。Queue:消息队列,承载消息在RabbitMQ,每个消息都会被投到一个或多个队列。Routing Key:路由键原创 2022-03-03 21:27:46 · 1973 阅读 · 0 评论 -
Nginx的Https证书配置(阿里云)
近日,我司的一个产品的域名证书即将到期,本着上管天下管地中间管空气,就是不干正事的摸鱼原则,我来给他更新一波,谁叫我是红领巾呢。一、申请证书能白嫖的绝不花钱,这是我们最基本的原则。因此可以白嫖阿里云的免费SSL证书。打开阿里云,登录控制台。在服务列表中找到“SSL证书(应用安全)”。进入数字证书管理服务,选择SSL证书,免费证书,白嫖的证书有效期只有1年,因此如果要白嫖,则需要每年都进行申请更新。如果是第一次使用SSL证书服务,那么可以选择立即购买。阿里云要求,对于每个实名主体个人/企业,一个自原创 2022-03-14 21:28:36 · 6720 阅读 · 1 评论 -
EasyExcel之HelloWorld
零、 引言最近,接到领导安排的项目中表格导出为excel的小需求,那对于我这种资深写BUG的程序猿来说,还不是袖筒里面摸胳膊,手拿把掐。由于以前使用apache的poi做过excel表格导出的开发,第一时间想到了它。但是,poi的api就跟老太太的裹脚布一样,实在是不想查阅。于是乎,本着外事问谷歌,内事问百度的开发原则,嘿,还真别说,阿里出品的EasyExcel,这个基于Java开发的简单且节省内存的读写Excel的开源项目,那真是打开了新世界的大门。二话不说,搞个demo。一、搞个Demo完整的de原创 2022-03-12 16:47:11 · 1782 阅读 · 0 评论 -
【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 · 852 阅读 · 0 评论 -
【Docker II】Docker运行第一个容器-Hello World
万事俱备,只欠HelloWorld。一、替换默认Docker register源由于默认的docker镜像仓库是在国外,访问不便,因此为了便于实际使用,咱们需要先将镜像仓库源替换为国内仓库源,这里我使用的阿里云的docker镜像仓库源。进入目录/etc/docker/,如果存在daemon.json文件时,直接将如下内容增加到文件中。如果不存在daemon.json文件,创建文件,并将如下...原创 2020-04-18 10:20:34 · 1385 阅读 · 0 评论 -
【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 · 515 阅读 · 0 评论 -
【Docker IV】Dockerfile的那点事儿
上篇博文中提到了在实际工作中构建镜像更多使用的Dockerfile,今天我们再来详细的看看这个有趣有内涵的小可爱。一、Dockerfile构建镜像的流程还是简简单单的看下上篇博文中最后的Dockerfile。#Version:0.0.1 # 版本信息FROM centos:latest # 表示从哪个基础镜像开始构建MAINTAINER Yuan "earlyuan@163.com" # 表示作者以及邮箱# 以下就是Dockerfile的执行,每条命令都是以RUN来开始,表示开始执行命令原创 2020-06-10 22:43:05 · 1199 阅读 · 0 评论