自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

极_晓的博客

路途遥远,勿忘初心

  • 博客(48)
  • 收藏
  • 关注

原创 【容器化】浅析容器化以及容器编排

容器化的本质是一个“视图隔离、资源受限”的进程运行环境,运行在该环境(容器内)的进程可以理解为是被操作系统附加了很多属性的进程,本质上还是操作系统的标准进程。

2022-07-06 09:17:40 1121 2

原创 对接微信支付退款证书之坑

背景项目需要直接对接微信支付,实现小程序支付和退款功能,支付不需要证书,但是退款的话需要证书支持语言:php开发环境win测试环境centos坑点1:路径问题网上查到比较多的答案是在Linux系统下采用虚拟路径,Windows系统下采用绝对路径,但是在开发的过程中,发现在Windows系统下用绝对路径OK,但是放到测试环境的时候,出错了,报curl:58错误。测试环境改成绝对路...

2018-10-25 11:07:16 19172 1

原创 Tomcat集群存在的问题与单点登录的实现

背景 最近打算对自己之前写的个人项目进行一个迭代优化,之前是采用单机单应用的架构进行部署,如果用户量一旦大起来,单机肯定是抗不住的,于是对项目进行这方面的优化架构分析目前项目的架构如下图,用nginx做一个反向代理,一个tomcat,Tomcat和ftp server都部署在同一台机器上面项目优化网站的性能优化主要由下面三个方面进行优化 1. web前端性能优化...

2018-09-03 10:50:26 2226 1

原创 Spring MVC拦截器配置以及统一登陆校验实现

拦截器概念 这里引用百度百科里面的说法,java里的拦截器是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行,同时也提供了一种可以提取action中可重用部分的方式。在AOP(Aspect-Oriented Programming)中拦截器用于在某个方法或字段被访问之前,进行拦截然后在之前或...

2018-08-31 11:28:08 2081

原创 redis学习(3)——字符串

redis 字符串redis中的字符串命令用于管理Redis中的字符串值常用命令SET key value:此命令设置指定键的值。GET key:获取指定键的值。GETSET key value:设置键的字符串值并返回其旧值。GETRANGE key start end:截取指定key对应的值MGET key1 [key2..]:获取所有给定键的值SETNX key v...

2018-08-20 13:46:58 220

原创 记一次小程序与后端对接

背景 最近项目开发进入了前后端联调阶段,这次是和小程序前端与PHP后端进行联调,场景是前端输入手机号进行发送手机验证码,输入3次以后要进行图形验证码输入,防机器人暴力枚举场景流程前端请求手机验证码发送接口后端判断手机号是否注册3次无验证判断后,第四次请求会触发验证码验证前端请求验证码controller后端生成验证码,放到session中,然后直接输出一张图片到浏览...

2018-08-16 15:07:45 9023

原创 redis学习(2)——键命令

redis 键命令redis的键命令用于管理redis中的键(key)语法 COMMAND KEY_NAME常用键命令DEL keyDUMP keyEXISTS keyEXPIRE key secondsEXPIREAT key timestampPEXPIRE key millisecondsPEXPIREAT key milliseconds-t...

2018-08-01 10:52:51 154

原创 JVM学习(3)——类加载机制&面试题分析

JVM的类加载我们平时在编译java代码之后,会生成.class文件——字节码文件,JVM会执行字节码文件,JVM执行字节码文件的过程为下面7个阶段 1. 加载 2. 验证 3. 准备 4. 解析 5. 初始化 6. 使用 7. 卸载加载简单的说,就是把字节码文件加载到内存中验证当JVM加载完Class字节码文件,并在方法区创建对应的Class对象之后,J...

2018-07-31 13:10:07 2975

原创 更换CentOS的yum源

背景 在用yum安装的时候,可能会因为网络原因会找不到一些软件更换yum源我们可以通过更换yum源来改善这个情况,把yum源设置为国内的的源可以提升安装软件包或更新软件包的速度步骤常用源我们常用的国内有下面几个源网易:CentOS 5: http://mirrors.163.com/.help/CentOS5-Base-163.repoCe...

2018-07-26 15:50:07 179

原创 redis学习(1)——介绍&安装

NoSQL介绍 NoSQL不是No SQL的意思,而是Not Only SQL,指的是非关系型的数据库,是对不同于传统的关系型数据库的数据库管理系统的统称。NoSQL使用场景 NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。NoSQL数据库...

2018-07-26 15:21:33 193

原创 docker入门(4)——mysql安装

安装mysqlmysql使我们经常用到的数据库,在搭建javaweb环境中,他也是必不可少的,在上一节,我们安装了jdk,tomcat,这个镜像,我们基于这个镜像继续安装mysql服务安装wgetwget是一个从网络上自动下载文件的自由工具,用于我们去下载网络上的一些资源,十分方便 yum -y install wget安装用来配置mysql的yum源的rpm包...

2018-07-26 15:19:22 143

原创 docker容器ping不通外网

背景 今天在docker搭建redis环境的时候,发现yum拉取不到资源,上不到网,报了如下错误http://mirrors.aliyun.com/centos/6.10/extras/x86_64/Packages/epel-release-6-8.noarch.rpm: [Errno 14] PYCURL ERROR 6 - "Couldn't resolve host 'm...

2018-07-26 15:15:45 24997 10

原创 JVM学习(1)——java代码运行

JRE与JDK的区别 我们经常听到JRE和JDK,这两个是不一样的东西,JRE(Java Runtime Environment)仅包含运行java程序的必须组件(jvm和java核心类库等)。而我们作为开发人员,平时用到的都是JDK(Java Development Kit),其包含了JRE,还附带了一系列的开发工具。java代码是怎么被机器运行的java是一门高级语言,机器无...

2018-07-25 18:17:55 315

原创 shell入门(10)——关系运算符&算术运算符

关系运算符&算术运算符关系运算符在两个数要比较大小关系的时候就要用到关系运算符,不过要注意的是关系运算符只支持数值运算,不支持字符运算,我们日常用到的关系运算符主要有以下几种-eq:检测两个数是否相等,相等返回 true。-ne:检测两个数是否不相等,相等返回 true。-gt:检测左边的数是否大于右边的,如果是返回 true。-lt:检测左边的数是否小于右边的,如...

2018-07-20 10:13:09 524

原创 shell入门(9)——特殊符号&逻辑运算符

shell的特殊符号&逻辑运算符特殊符号在我们看shell脚本的时候,经常会看到以下特殊符号,如[]、[[]]、(())、$(())、()等,具体他们有什么作用将会在下面一一解答test命令test命令主要是来做表达式判断的 1. 语法结构test {EXPRESSION}示例#!/bin/bashif test "a" == "b"...

2018-07-20 10:12:09 3155

原创 shell入门(8)——数组的使用

shell中数组的使用基本概念shell和大多数编程语言一样,有数组这个概念,可以用于存放多个值,不过有下面几点需要注意:shell只支持一维数组,不能用多维数组初始化的时候无需指明数组的容量下表从0开始语法arrayName=(var1 var2 var3 ...)//需要注意的是元素之间用空格分开示例#!/bin/bash#初始化复...

2018-07-20 10:09:47 168

原创 shell入门(7)——文件判断操作

文件判断操作shell中有专门对文件的状态属性进行判断的测试运算符,主要有以下几个-b file:是否为块设备文件-c file:是否为字符设别文件-d file:是否为目录-f file:是否为普通文件-g file:文件是否设置了 SGID 位-k file:是否设置了粘着位(Sticky Bit)-p file:文件是否为有名管道-u file:文件是否设置了SUID...

2018-07-20 10:08:39 476

原创 shell入门(6)——函数使用及重定向输出

函数的使用shell语言和其他高级语言一样,提供函数支持,用户可以自定义函数,在shell脚本中调用函数定义shell定义函数的方式和JavaScript、PHP等脚本语言很相似,shell也是一种脚本语言,具体如下#!/bin/bashfunction myShell(){ ehco "my shell fucntion" return 1}ec...

2018-07-20 10:07:33 798

原创 shell入门(5)——循环结构

循环结构在我们日常开发中,循环结构也是一个使用频率很高的结构,在做一些数组的迭代的时候,都离不开循环,在shell中也可以使用循环结构for语法结构for varname in item1 tiem2 tiem3 ... itemNdo command ...done示例for item in 1 2 3 4 do ec...

2018-07-18 19:56:09 187

原创 shell入门(4)——选择结构

选择结构在高级语言中,选择结构也是经常用到的,几乎是用的最多的一种结构语言和语言之间是相通的,在shell中也有选择结构,而且与高级语言相似,具体如下if else结构语法结构if conditionthen command ...else command ...fi示例a="test"b="test"if...

2018-07-18 19:53:24 286

原创 埋点

背景 在公司听到很多新名词,做个小记录大概查一下这些概念是什么意思,以便于日后详细拓展,最近项目进入埋点阶段,在此记录埋点的一些基本概念1.埋点埋点就是在应用服务器中的每一个页面中都嵌入一段js脚本,使用户在访问页面时自动触发js收集用户访问行为日志,最后提交到日志服务器。埋点收集的数据主要有以下几个基本概念,但是不同场景下,对于不同需求收集的数据可能不同,因此不一定所有的埋...

2018-07-18 09:21:48 3186 1

原创 docker内部网络挂掉

背景在搭建docker下的javaweb环境的时候,安装了Tomcat,但是启动的时候报了如下的错误 Cannot start container 0f7e77d72505c80d0c153be34529dc00e434ebdec30c7c55b117305c3fdfac86: iptables failed: iptables -t nat -A DOCKER -p tcp -d 0...

2018-07-15 17:58:51 1229

原创 docker入门(3)——搭建javaWeb环境

搭建java web环境使用docker搭建java web环境系统:centos 6.8 java: JDK 8 server:Tomcat 8搭建步骤获取centos镜像//切换root用户su - root //查询centos镜像docekr search centos //下载centos 6.8docker pull daocloud.io...

2018-07-15 17:36:03 183

原创 shell入门(3)——shell中的比较

比较在实际当中,我们一定会遇到变量之间的比较的时候,在shell中比较主要是分为数值类型的比较和字符类型的比较,具体如何比较如下数值比较[]比较#!/bin/basha=1b=0if [ $a > $b ]then echo "a > b"else echo "a < b"fi//结果输出 a > b如果把[]中的&...

2018-07-15 11:12:27 789

原创 docker入门(2)——第一个docker程序

第一个docker程序载入容器//载入容器docker pull training/webapp//运行docker run -d -P training/webapp python app.py/*参数说明-d:让容器在后台运行。-P:将容器内部使用的网络端口映射到我们使用的主机上。*/查找在运行的镜像可以通过container ID快速找到端口映射...

2018-07-13 18:28:33 227

原创 docker入门(1)——docker安装

Docker是什么? Docker 是一个开源的应用容器引擎,可以让我们打包我们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。docker主要有下面三个概念。镜像镜像(Image):是一个静态的东西,是可以被用...

2018-07-13 18:25:08 171

原创 shell入门(2)——基本数据类型与数学运算

基本数据类型shell语言是一门弱类型语言,无论输入的是字符串还是数字,shell都是按照字符串类型来进行存储的,具体属于什么数据类型,shell会根据上下文进行确定变量的使用上面提到过,shell是一门弱类型的语言,所以变量可以不用定义就直接用,有如下几种引用方式直接用$引用word = 'my shell'echo $word//结果输出 my shell...

2018-07-13 18:03:16 3070

原创 shell入门(1)——第一行shell命令

shell脚本由一系列的Linux命令和Shell语言组成的一个脚本文件Shell 安装可以直接采用Linux系统的云主机(ubuntu、centOS…)Windows上面可以安装git,然后再一个空文件夹下右键鼠标,选择git bash here就会出现一个命令行窗口Shell文件结构文件后缀:*.sh 文件主体:#!/bin/bash## 描述这...

2018-07-13 18:01:30 3463

原创 maven环境隔离

背景 在项目开发的过程中你肯定会遇到这类问题,本地开发一套配置,线上部署一套配置,每次把本地代码打包到线上环境的时候都要重新修改配置,十分麻烦,这种情况应该如何解决呢?解决方法解决方法肯定是有的,而且用的是我们最常用的一个打包工具——maven。简单介绍项目的开发环境一般会有好几个环境,如开发环境,生产环境,测试环境,线上环境等各个环境之间的配置存在一定的差异...

2018-07-09 21:03:59 228

原创 magento目录结构说明

/app – 程序根目录/app/etc – 全局配置文件目录/app/code – 所有模块安装其模型和控制器的目录/app/code/core – 核心代码或经过认证得模块,如果要升级不要这里的代码/app/code/community – 社区版的模块目录/app/code/local – 定制代码目录/app/code/core/Mage – magento默认命名...

2018-07-09 15:18:25 312

原创 win10子系统ubuntu16安装mysql无法启动

背景 在win10子系统上面安装了mysql,根据网上的步骤来,安装完成之后,无法正常登陆mysql,解决步骤如下过程安装过程如下//升级源sudo apt-get update//apt安装mysql-serversudo apt-get install mysql-server安装好以后,使用mysql -u root -p进行登陆,坑出现了,...

2018-07-03 15:01:56 2930 3

原创 token

为什么要使用token?因为HTTP协议是开放的,可以任人调用。所以,如果接口不希望被随意调用,就需要做访问权限的控制,认证是好的用户,才允许调用API。目前主流的访问权限控制/认证模式Bearer Token(Token 令牌) 定义: 为了验证API请求者的身份,需要客户端向服务器端提供一个可靠的验证信息,这种信息我们称为Token,这个token通常由Jso...

2018-07-03 14:59:52 6523 1

原创 IDEA导入eclipse开发的java web项目

说明: 我们经常会遇到这种情况,在网上下载一个demo,但是开发的IDE和自己的不同,这里介绍一下我下载的一个demo(使用eclipse开发)导入到IDEA中材料准备:IDEA支付宝官方当面付demo(java版本, url:https://docs.open.alipay.com/54/103419)步骤:1、导入项目 2、按照提示选择JDK...

2018-03-05 21:42:47 1178

原创 java项目利用PropertiesUtil类配置化

目录 1、实现思路 2、源码展示 3、调用例子 4、配置文件结构 5、总结 问题: 在项目中我们可能会经常遇到下面这种情况,比如我们需要和FTP服务器进行一个对 接,以前我们会直接把FTP服务器地址直接在代码中写死,这样就会出现一个问题,如果一个 项目中在多处用到了这个地址,将来需要修改的话,修改起来会非常麻烦。 解决思路 我们可以把配置抽取

2018-01-27 00:08:53 3518

原创 使用SpringMVC进行文件上传以及与FTP服务器对接

在pomxml加入上传文件所需要的bean在dispatcher-servletxml中加入对文件大小文件编码等信息后台上传大致流程FileService源码展示FTPUtil源码展示 在项目中,很多时候需要进行文件上传,下面这个过程是我在一次开发过程中使用的文件上传步骤,运用到SpringMVC的文件上传,以及和FTP服务器进行对接。在pom.xml加入上传文件所需要的bean <

2018-01-25 12:52:58 4978

原创 Java——HashMap原理

目录 1. HashMap简介 2. HashMap的底层结构 3. HashMap源码分析 4. HashMap的扩容机制 5. HashMap的性能1、HashMap简介HashMap是一个用于存储(key-value)结构的散列表,继承了AbstractMap,实现了Map、Cloneable、java.io.Serializable 3个接口HashMap的key和

2017-11-26 18:58:45 1201 1

原创 数据结构--FP Tree

FP Tree的数据结构FP Tree算法引入了一些数据结构来临时存储数据,这些数据结构有3个组成部分,分别是项头表、FP Tree 、节点链表FP Tree的构建

2017-09-18 12:41:15 839

原创 高复用服务相应对象的设计思想以及抽象封装

目录问题 在web开发中,后台开发与前端交互主要是通过json的方式,后台通过统一的返回样式,可以使前后端更好的交互,在一次项目中,我每次返回一个复杂对象的时候,都是用一个匿名对象序列化成json格式的数据返回前端,由于这个项目前后台都是我一个人完成,所以我能比较清楚返回的东西,但是如果是前后端分开进行开发或者前期是一个人开发,后期进行前后端离就会变得异常困难。

2017-09-09 23:43:16 528

原创 java——反射机制

java反射机制 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。反射机制的功能 主要是动态处理类在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调用任意一个对象的方

2017-05-20 10:00:10 198

原创 java——socket

摘要: 1. socket介绍 2. 端口 3. java提供网络功能类 4. socket通信模型 5. TCP,UDP的优缺点和应用场景1、socket介绍: 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要

2017-05-19 18:33:03 322

空空如也

空空如也

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

TA关注的人

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