自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 LVS+KeepAlived+Nginx高可用实现方案

文章目录概念LVSKeepAlived为什么要使用准备这是一段血泪教程…概念LVS什么是lvsLVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。宗旨使用集群技术和Linux操作系统实现一个高性能、高可用的服务器.很好的可伸缩性(Scal...

2019-01-17 19:33:38 22866 22

原创 OpenResty(Nginx+Lua)高并发最佳实践

文章目录OpenResty简介Nginx优点Lua基础学习环境搭建window下环境搭建Linux(CentOS 7)下环境搭建linux下ab性能测试总结优点缺点可适用的场景OpenResty简介以下内容来源与OpenResty官网,更多信息可进入官网了解OpenResty® 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多...

2019-01-08 13:28:36 8929 1

原创 复旦微电子CPU卡发卡流程

前言指令列表发卡卡片擦除目录文件及用户密钥的创建及写入命令报文数据域指令集列表指令集说明数据(二进制数据,记录数据)的写入MF下05文件写入EF下15文件写入前言近段时间一直在做CPU卡相关的应用,也知道简单的去操作CPU卡相关数据,但是并没有真正深入去了解CPU卡相关的东西;近期搜集了部分资料,并仔细阅读了pboc3.0规范及复旦FM1208技术...

2016-11-23 14:14:01 9925 22

原创 关于代码家(干货集中营)共享知识点汇总系列——Android

关于代码家(干货集中营)共享的所有知识点Android部分的汇总,后续每周会对其进行更新之前的分类总结点此,其中所有的知识点都包含在这个里面更多内容请选择以下入口 关于代码家(干货集中营)共享知识点汇总系列——Android 关于代码家(干货集中营)共享知识点汇总系列——IOS 关于代码家(干货集中营)共享知识点汇总系列——App 关于代码家(干货集中营)共享知识点汇总系列——前端 关

2016-10-12 12:32:05 14737

原创 MySQL安装及可视化工具使用

资源下载安装前配置安装及启动可视化工具安装及使用资源下载MySQL数据库 mysql-5.6.19-winx64 百度云地址 可视化工具下载安装前配置解压文件 将下载的数据库的压缩文件解压在本地文件夹,个人解压在D:\MySQL下,如下图: 创建my.ini文件将解压文件下的my-default.ini文件复制一份,改名为my.ini,如果没有,创建一个空的txt文件,改名为my.

2016-09-22 17:54:38 60644 13

原创 浅谈Android MVP设计模式(简单结合RxJava+Retrofit)

什么是MVP为什么要用MVP怎么去完成一个MVP的设计呢demo实例功能虽小五脏俱全准备工作View的基类presenter的基类Model的基类具体的业务实现转载请指明出处:http://blog.csdn.net/lupengfei1009/article/details/50989066 这段时间看了不少基于MVP设计模式,然后结合RxJava+Retrofit写的开源项目

2016-03-26 21:43:34 14919 17

原创 MongoDB+MongoVUE安装及入门

前言及概念环境安装MongoDB的安装MongoVUE安装建立连接基础操作创建表添加数据查询日期查询排序Sort查询字段Fieldsskip跳过Limit分页修改删除数据前言及概念据说nodejs和mongoDB是一对好基友,于是就忍不住去学习了解了一下MongoDB相关的一些东西, 那么,MongoDB是什么?这里的五件事是每个开放人员应该知道的:MongoDB是一

2016-03-09 09:56:57 30946 12

原创 Spring MVC服务端单元测试工具MockMvc

什么是单元测试?是指对软件中的最小可测试单元进行检查和验证;作为后台开发,我们对外提供的每一个RESTful API就是一个最小的可测试单元,为了确保可用性,我们在接口对外提供服务之前要尽可能的保证接口是按预期的要求在执行,因此,单元测试就是开发过程中必不可少的一项工作;完善的单元测试技能快速定位开发过程中的BUG,同时也可以减少因为BUG导致对接过程带来的大量人员沟通所消耗的时间成本。当需要持续性完善及优化代码的时候,一个好的单元测试用例能够帮助我们快速的确认修改是否对预期产生影响。单元测试的方式.

2020-07-20 18:34:52 34

原创 基于Docker搭建Nacos集群

准备机器3台192.168.1.160192.168.1.161192.168.1.162docker安装CentOS 7下安装Docker及基础操作安装mysql基于docker安装mysqldocker run \-p 3306:3306 \--name nacos-mysql \-v $PWD/conf:/etc/mysql/conf.d \-v $PWD/logs:/logs \-v $PWD/data:/var/lib/mysql \-v /etc/localt.

2020-07-17 18:22:14 155

原创 基于Nacos的服务治理、配置中心

Nacos集群环境的搭建参看《基于Docker搭建Nacos集群》:https://lupf.cn/articles/2020/05/21/1590058654840.html ; 亦或者通过官方提供的其他方式安装,详情参考:https://nacos.io/zh-cn/docs/quick-start.htmlNacos作为配置中心apollo配置中心整理Nacos的服务治理,顺带着整理一下Nacos的配置中心; 目前实际的生产使用的是Apollo; 个人相比较更加喜欢Apollo一点,如果想.

2020-07-17 18:20:03 95

原创 RESTful API,你真理解了吗?

什么是RESTful API?RESTful API并不是什么框架,他也并不是某段啥代码,他单纯的就是一种规范,一个标准。一旦涉及带规范、标准,就是一个很空泛概念,一开始很难理解真正的特点,然后就很难将其与传统的API区分开来;RESTful API与传统API的区别传统API的url代表的是一种行为;如上图的查询/user/query,通过url就可以知道当前的接口适用于查询操作的;RESTful API的url表示的是资源;如上图的接口地址,多次出现/user/1;/user/1表示着用户.

2020-07-13 14:46:57 47

原创 路径匹配、RestFul接口地址匹配工具AntPathMatcher

背景SpringBoot开发RestFul API接口,如果存在鉴权,可能会存在需要比对当前请求的接口是否允许访问;如后台定义了一个接口,@GetMapping("/user/{id}"),根据用户的id查询用户信息;此时如果用户请求/user/1的时候,是否要放行,我们该如何比对,传统的equals是没有办法满足比对需求的,SpringBoot给我们提供了一个工具类AntPathMatcher,用于路径比对示例@Testpublic void antPathMatcher() { Ant.

2020-07-09 10:48:35 80

原创 nacos导致log4j2不输出日志

问题背景SpringBoot通过log4j2输出日志,nacos作为注册中心问题描述项目启动出现以下日志,然后没有任何自定义的log输出WARN No Root logger was configured, creating default ERROR-level Root logger with Console appender问题原因因为nacos的log4j2导致本项目的日志不输出的问题解决方式启动项目中添加以下配置public static void main(String[.

2020-07-08 11:07:33 148

原创 git subtree使用说明

为什么要使用subtree在实际的项目开发过程中,公共的代码或者模块是必定会出现的,为了不重复写相同的代码;普遍的做法就是将其抽取成一个公共模块,这个模块由不同的使用者引用;作为java工程师,可能会选择将这一部分打包封装成一个jar,并且将其推送到Maven的私有仓库,各个使用者将其添加到pom文件即可;但是有没有更好的方式呢?因为使用这种方式,对使用者来说,并不是透明的,当前可能已经更新版本...

2020-04-09 19:50:27 50

原创 基于Docker安装Harbor搭建Docker私有仓库

前言之前整理过一篇基于docker安装的Harbor的文章,但是在实际的运用中,发现那么玩并不实用,根据后续的实用,这里重新整理一个新的教程准备Docker安装及docker-compose可参考:CentOS 7下安装Docker及基础操作;Harbor的运行是通过docker-compose进行服务编排,所以这里需要优先安装好;下载Harbor安装包版本查看官方地址,选择自己需...

2020-04-01 16:40:34 391

原创 SpringBoot基于Aop自定义Slf4j日志输出格式

需求当线上服务或者接口出现异常之后,第一时间需要做的就是追踪日志,找出问题到底出现在哪里,但是在现有的分布式及微服务的背景下,一个请求的调用链往往比较的长,所以一般情况下会选择使用一个请求的唯一ID输出为日志,然后便于日常运维过程的问题追踪,如何优雅自如的自定义一个log输出呢?下面使用AOP加上logback来给一个简单优雅的方式;解放双手,告别体力活。Aop这里不做AOP的介绍。除了使用...

2020-01-09 18:27:43 758

原创 java设计模式之单例模式

前言单例模式作为开发过程中最常用的设计模式之一,是程序员必须了解和掌握的技能,但是单例的实现方式和手段有很多种,每一种都有着各自的优缺点,如何在代码中运用就需要我们对每一种实现方式都了如执掌方可运筹帷幄。单例的实现方式静态常量饿汉式代码public class Single { private static Single single = new Single(); ...

2019-12-29 19:22:11 60

原创 深度剖析synchronized、volatile的实现细节

文章目录线程对象的内存布局对象头类型指针实例数据对齐填充synchronizedvolatile可见性的问题指令重排总结线程什么是线程?线程(thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务什么是并发?当多个线程同时执行相同的控制流...

2019-12-27 18:40:27 90

原创 Linux下Netty导致Redis连接失败的问题java.lang.NoSuchMethodError: io.netty.channel.SingleThreadEventLoop.<init>

背景项目中同时使用了Redis和Netty,SpringBoot版本使用的2.1.6正式版;在Linux环境下运行Redis无法正常连接资源引用如下: &lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spring-boot-s...

2019-11-21 14:54:46 1348

原创 SpringBoot集成Apollo配置中心(5分钟集成系列)

相关文章基于Docker 5分钟搭建携程Apollo分布式配置中心SpringBoot集成第一步登录Apollo添加测试项目(apollo-test)第二步添加测试配置 // 服务的端口 server.port = 8888 // 测试的key key = va a = 1第三步添加依赖 &lt;dependency&gt; &l...

2019-11-19 21:38:33 894

原创 基于Docker 5分钟搭建携程Apollo分布式配置中心

前言由于一开始对Apollo的架构方式了解的不够升入,同时为了能够使得安装过程更加的简单,做到一条指令实现Apollo环境的搭建,经历了比较多的测试;本文基于apollo 1.6.0的版本进行编译打包的,后面会将整个镜像的创建过程逐一的列举出来,避免想了解的朋友再次花时间去研究;什么是Apollo携程官方Apollo仓库对该分布式配置中心做了详细的说明,这里就不再对起解析过多的解释,官方文档...

2019-11-16 21:06:15 853

原创 git subtree使用说明

为什么要使用subtree在实际的项目开发过程中,公共的代码或者模块是必定会出现的,为了不重复写相同的代码;普遍的做法就是将其抽取成一个公共模块,这个模块由不同的使用者引用;作为java工程师,可能会选择将这一部分打包封装成一个jar,并且将其推送到Maven的私有仓库,各个使用者将其添加到pom文件即可;但是有没有更好的方式呢?因为使用这种方式,对使用者来说,并不是透明的,当前可能已经更新版本...

2019-11-16 16:16:14 546

原创 SpringBoot学习之旅(十一)---运行时环境、配置文件自动切换

需求说明开发过程中,经常出现的环境必定会有以下几个:开发环境、测试环境、预发布环境(可能会有,可能没有)、正式环境;由于这些环境的存在,我们就不得不去维护这一系列环境的配置(如数据库连接、商户资料等等)及版本,那么要如何去管理这些配置呢?常用的方式第一种:版本管理工具比如,通过git去维护不同的分支,不同的分支有不同的配置文件信息;发布的时候,切换不同的分布打不同版本的包进行上传发布缺...

2019-10-14 22:23:30 605

原创 最简单的java验证码实现方案

用户登录几乎是一个线上系统必不可少且使用相对比较频繁的一个模块,为了防止恶意暴力尝试,防止洪水攻击、防止脚本自动提交等,验证码是一个较为便捷且行之有效的预防手段,下面使用三个简单的步骤轻松实现一个验证码功能,具体的效果如下:第一步:工具类该工具类为生成验证码图片的核心,直接拷贝到项目即可,无需做修改;import java.awt.*;import java.awt.geom.Affine...

2019-10-12 11:38:26 770

原创 SpringBoot集成RabbitMQ启动卡死问题

文章目录问题现象集成方式卡死问题解决方式问题现象为了做一些方案选型的测试,建了一个测试用的SpringBoot项目,集成RabbitMQ进行一些功能性的测试,但是出现了一个很奇怪的现象,直接通过main方法连接的时候可以正常连接到RabbitMQ,但是整合到SpringBoot就无法正常连接,且项目在启动的时候卡死RabbitMQ管理平台也看不到相关的连接集成方式Maven加依赖...

2019-09-25 20:44:54 846

原创 Java虚拟机学习(一)---java虚拟机运行时数据区

文章目录运行时数据区图示运行时数据区划分方法区(Method Area)堆(Heap)虚拟机栈(VM Stack)本地方法栈(Native Method Stack)程序计数器(Program Countor Register)直接内存(Direct Memory)运行时数据区图示运行时数据区划分方法区(Method Area)虚拟机栈(VM Stack)本地方法栈(Native M...

2019-09-21 22:06:07 47

原创 SpringBoot解决跨域请求的OPTIONS问题

定义过滤器import javax.servlet.*;import javax.servlet.http.HttpServletResponse;import java.io.IOException;/** * 解决vue前端OPTIONS跨域问题 */public class CorsFilter implements Filter { @Override pu...

2019-09-20 22:21:08 2569

原创 通过过滤器Filter实现平台级校验

文章目录涉及的场景测试示例涉及的场景session校验比如,部分系统必须保证系统登录之后才能正常使用,登录之后会将登录信息保存在session中,因此可以在Filter实现session数据的校验请求拦截如果平台涉及到黑白名单相关的机制,可以使用Filter实现拦截相关请求,并响应异常。平台级的数据检验当平台的所有接口都需要按一定的协议进行加密或者验签,可以通过Filter获取到请...

2019-09-20 22:11:44 173

原创 SpringBoot整合RPC框架---Thrift

文章目录什么是Thrift架构支持的通讯协议支持的传输协议支持的服务模型Thrift的优点SpringBoot整合Thrift为什么会出现RPC框架常见的RPC框架集成套路开撸官网下载代码生成工具本示例模拟的业务场景编写接口代码生成文件thrift-server服务thrift-client客户端服务什么是ThriftThrift是一种接口描述语言和二进制通讯协议,它被用来定义和创建跨语言的服...

2019-09-18 22:44:07 3243 9

原创 使用Docker搭建RAP2(技术文档管理私服)

文章目录前言准备工作安装mariadb及redis安装rap2-delos安装rap2-dolores 安装nginx配置ssl正式及解决跨域问题安装确认使用说明前言技术团队,文档管理是一项至关重要的工作,不管是对于开发人员,还是对于测试人员,还是对于新同事,一个好的文档能让整个团队的效率大大的提升;rap是阿里妈妈前端团队维护并开源的一套文档管理系统,很好用;官方入口,没有使用过的可以在这里...

2019-09-11 21:28:19 612 8

原创 记一次因内网回路造成的间歇性服务不可用的修复过程

文章目录前言背景回路问题的出现原因分析解决方案的分析域名映射内网配置Host搭建私有DNS(推荐)如何搭建私有DNS前言女士们,先生们!请你们大声的告诉我,程序员最怕的是什么?产品经理!!!错。。。(有一点点怕)产品经理改需求!!!错。。。(不是那么的怕)Bug!!!错。。。(不是很严重的怕)线上Bug!!!错。。。(有一点瑟瑟发抖的怕)那最怕的是什么?最怕的是产品经理改的需求在现上...

2019-09-06 17:36:42 458

原创 Docker运行Redis并恢复历史数据

文章目录目的准备工作Docker 安装镜像准备及下载准备好配置文件修改配置启动docker目的将传统的以软件形式安装的Redis更改为由Redis运行,同时将历史数据恢复;准备工作Docker 安装CentOS 7下安装Docker及基础操作镜像准备及下载redis的docker官方镜像仓库地址,根据个人的喜好下载相应的版本,这里下载的4.0.1准备好配置文件创建用于保存配置...

2019-07-09 13:40:55 1760

原创 window10下子系统ubuntu安装Docker

文章目录前言准备工作开启window子系统下载Docker for Window安装包ubuntu下安装Docker完了?可以用了?然而并没有!!!安装 Docker for Windows子进程链接宿主机Docker守护进程测试参考资料前言本以为这是个很简单的事情,却纠结了我好长时间,网上零碎的教程虽然对我有所帮助,同时也带给了我一些误区,让我陷入到一个坑里面,趴了几个小时才出来,这里记录一...

2019-07-04 19:47:30 7878 8

原创 使用Docker基于Nexus3快速搭建Maven私有仓库

文章目录前言问题分析环境搭建说明Nexus3安装本地Maven配置修改setting.xml上传本地Jar使用本地包结合Idea上传本地项目至私有库前言近期在做系统优化,重构等工作,关于本地jar包、三方jar(未上传到中央仓库)的管理比较的混乱,因此决定搭建一个Maven的私服来完善一下这一块儿;Maven的基础示意图通常,我们并没有使用到虚线标识的那两块儿,基本都是通过本机的Mav...

2019-06-21 18:15:25 2350 8

原创 基于Harbor搭建Docker私有镜像仓库

文章目录准备工作Harbor安装资源下载Https证书配置Harbor的配置文件修改安装HarborHarbor管理平台Docker上传本地镜像仓库(HTTPS)Docker本地镜像下载(HTTPS)Docker上传本地镜像仓库(HTTP)Docker本地镜像下载(HTTP)准备工作安装dockerLinux下安装Docker及基础操作安装docker-compose官网教程下载s...

2019-06-11 14:23:31 343

原创 CentOS 7下安装Docker及基础操作

文章目录Docker安装Docker基础操作Docker安装第一步:移除旧的版本sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ do...

2019-06-10 19:00:30 307

原创 SpringBoot学习之旅(九)---超详细的自动刷新配置教程

文章目录这里会出现找不到数据库配置的问题git服务器上面的配置文件正常本地查看,这个文件也已经正常下下来了我们来想一下我们加入配置中心之后,项目启动的流程,我们先是通过config-server获取到相关的配置,然后业务项目在启动的时候,匹配相应的配置,启动,由于上面我们加入了数据库,如果使用application.yml的方式,那么SpringBoot就不知道优先加载那个,然后就直...

2019-04-07 14:34:57 1449 2

原创 Nginx解决无法代理域名问题

文章目录问题说明解决方式(调整配置)常用DNS服务器问题说明线上业务使用到了OpenResty,在某一瞬间,华南这片儿的几台服务器Lua通过 resty.http 都无法正常的调用腾讯、百度相关的api接口,但是使用其他的工具去请求,就可以正常访问;当尝试使用ip直接访问大厂的接口的时候,Lua可以正常请求并返回数据,因此基本判定为Nginx的NDS服务器那块儿的配置出现了问题,导致域名无法正...

2019-04-04 13:12:56 2160 1

原创 SpringBoot学习之旅(八)---JPA进阶篇之联表操作

文章目录前言源码下载数据关联关系映射前言前两节有说道JPA的基础操作及JPA自定义查询、修改、分页等操作,有兴趣的可以去看看,前面两章的所有操作都只是在操作一张表,但是真实的项目中,不可能所有的业务都只去做单标的操作,因为这不符合数据库表的设计法则,因此,各个表之间就总会发生那么点正当、或者不正当的关系;那么我们就得去理清各个要素之间的关系;源码下载点击开源中国下载源码数据关联关系映射...

2019-03-19 16:41:28 903

原创 SpringBoot学习之旅(七)---JPA进阶篇之自定义查询、修改、分页

文章目录

2019-03-19 16:40:27 636

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