自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一步就一个脚印

路在前方,慢慢前行。。。

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

原创 单向链表的实现

通过Java和Golang两种语言实现单向链表,此处的队列的满足的要求有:实现对链表节点的增、删、改、查操作;存放的类型自定义,Java通过泛型实现,Golang暂定用interface{}。

2023-02-12 11:54:06 185

原创 队列的实现

通过Java和Golang两种语言实现队列,此处的队列的满足的要求有,长度需要设定,也即长度固定;满足队列的基本要求,先进先出;存放的类型自定义,Java通过泛型实现,Golang暂定用interface{}。

2022-12-11 11:48:11 185

原创 Zookeeper3.8.0集群部署

集群部署zookeeper的节点数只能是奇数,在此部署3节点zookeeper集群,节点环境如下:zookeeper是基于java开发的,所以部署zookeeper前要有Java的环境,在些部署OpenJDK8,下载地址为:OpenJDK下载后,解压到相应的目录,并配置环境变量即可(3个节点都得配置),如:2、部署Zookeeper首先到官网下载zookeeper,选择相应的版本,在此选用的3.8.0版本,下载地址为:下载好后,先将压缩包解压到1台服务器,如hadoop01(192.168.194

2022-07-13 14:58:13 968 1

原创 基于SpringBoot从零构建博客网站 - 开发文章详情页面

文章详情页面是博客系统中最为重要的页面,登录用户与游客都可以浏览文章详情页面,只不过只有登录用户才能进行其它的一些操作,比如评论、点赞和收藏等等。本次的开发任务只是将文章详情页面展示出来,至于一些收藏、点赞、评论以及统计相关的功能后续慢慢加上。1、后台核心代码加载出文章的详情页面的核心代码如下:/** * 加载出文章详情页面 * * @param articleId * @para...

2019-09-09 13:21:25 284 1

原创 基于SpringBoot从零构建博客网站 - 分页显示文章列表功能

显示文章列表一般都是采用分页显示,比如每页10篇文章显示。这样就不用每次就将所有的文章查询出来,而且当文章数量特别多的时候,如果一次性查询出来很容易出现OOM异常。后台的分页插件采用的是mybatis-plus自带的,前端显示时利用boostrap的风格显示。1、开启分页插件对于mybatis-plus框架,开启分页插件是很简单的,只需要加一个配置类,即:/** * Mybatis Pl...

2019-08-20 13:35:35 248

原创 基于SpringBoot从零构建博客网站 - 集成editor.md开发发布文章功能

发布文章功能里面最重要的就是需要集成富文本编辑器,目前富文本编辑器有很多,例如ueditor,CKEditor、editor.md等。这里守望博客里面是集成的editor.md,因为editor.md是markdown格式,目前markdown由于简洁好用,在各种云笔记、github等中得到了广泛使用。1、集成editor.mdeditor.md是在github上开源,开源地址为:https:...

2019-08-05 13:44:47 229

原创 LVS + Keepalived + Nginx基于DR模式构建高可用方案

在大型网站中一般服务端会做集群,同时利用负载均衡器做负载均衡。这样有利于将大量的请求分散到各个服务器上,提升网站的响应速度。当然为了解决单点故障的问题,还会做热备份方案。这里演示利用LVS做负载均衡器,同时利用Keepalived保证其高可用,基于LVS的DR模式构建Nginx集群。1、环境准备各个软件及其版本信息如下:软件版本Centos系统Linux release...

2019-08-01 14:02:06 143

原创 基于SpringBoot从零构建博客网站 - 新增创建、修改、删除专栏功能

守望博客是支持创建专栏的功能,即可以将一系列相关的文章归档到专栏中,方便用户管理和查阅文章。这里主要讲解专栏的创建、修改和删除功能,至于专栏还涉及其它的功能,例如关注专栏等后续会穿插着介绍。1、创建专栏接收和处理专栏相关功能的操作的方法会放在GroupController类中,首先创建专栏的页面为:这里有两个地方需要特别说明:第一这个分类数据,此处分类数据正是本博客网站的分类数据,这个分...

2019-07-30 13:37:55 209

原创 基于SpringBoot从零构建博客网站 - 设计可扩展上传模块和开发修改头像密码功能

上传模块在web开发中是很常见的功能也是很重要的功能,在web应用中需要上传的可以是图片、pdf、压缩包等其它类型的文件,同时对于图片可能需要回显,对于其它文件要能够支持下载等。在守望博客系统中对于上传模块进行统一管理,同时对于上传不同的类型文件,留有自定义实现机制的接口,也即可扩展。基于上传模块机制,就可以实现修改头像功能了。同时顺带将修改密码的功能也一起实现,这个修改密码的功能相对就很简单了...

2019-07-15 13:22:10 160

原创 基于SpringBoot从零构建博客网站 - 开发设置主页标识和修改个人信息功能

由于守望博客系统中支持由用户自己设置个人主页的URL的后半段,所以必须要用户设置该标识的功能,而且是用户注册登录之后自动弹出的页面,如果用户没有设置该标识,其它的操作是不能够操作的,同时要求主页标识只能设置一次。用户注册时只是填写了简单的登录信息,所以用户登录后,可以设置个人详细的信息,也即修改个人信息功能。1、设置主页标识功能由于在用户没有设置主页标识时,只要用户一登录就会自动跳转到设置主...

2019-07-08 13:26:41 255

原创 基于SpringBoot从零构建博客网站 - 整合ehcache和开发注册登录功能

对于程序中一些字典信息、配置信息应该在程序启动时加载到缓存中,用时先到缓存中取,如果没有命中,再到数据库中获取同时放到缓存中,这样做可以减轻数据库层的压力。目前暂时先整合ehcache缓存,同时预留了集成redis和memcached的接口。先开发两个最基本的功能,就是注册和登录,对于页面几乎就是直接用bootstrap的风格,目前没有过多的设计。1、整合ehcache在spring boo...

2019-05-08 14:11:12 277 3

原创 精通Java中的volatile关键字

在一些开源的框架的源码当中时不时都可以看到volatile这个关键字,最近特意学习一下volatile关键字的使用方法。很多资料中是这样介绍volatile关键字的:volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。文字不太好理解,通过例子来理解。1、例子首先看一...

2019-05-06 13:37:06 193

原创 基于Mycat实现读写分离

随着应用的访问量并发量的增加,应用读写分离是很有必要的。当然应用要实现读写分离,首先数据库层要先做到主从配置,本人前一篇文章介绍了mysql数据库的主从配置方式即:《mysql数据库主从配置》。应用实现读写分离至少有两种方法:应用本身通过代码实现,例如基于动态数据源、AOP的原理来实现写操作时用主数据库,读操作时用从数据库。通过中间件的方式实现,例如通过Mycat,即中间件会分析对应的SQ...

2019-04-29 13:25:21 294

原创 mysql数据库主从配置

在一篇文章《离线安装mysql数据库》,讲解了离线安装mysql数据库的过程,本文将讲解mysql数据库的主从配置方法。mysql数据库进行主从配置后,可以实现数据库的备份、同时应用也可以实现读写分离,提高应用的并发量。1、主从原理从《高性能mysql》书中讲解主从原理大致有三个步骤:在主库上把数据更改记录到二进制日志中(Binary Log)中,这些记录称为二进制日志事件。从库通过IO...

2019-04-26 13:45:14 242

原创 离线安装mysql数据库

开源数据库mysql,目前使用很广泛。作为程序员开发项目时,与关系型数据库打交道最多的估计也是mysql了。那么本文首先讲解如何离线安装mysql数据库,毕竟有很多项目部署在内网。1、离线安装本人的安装环境为CentOS Linux release 7.5.1804 (Core),那么其它的环境也可以参考配置。(1)、到mysql官网(https://dev.mysql.com/downlo...

2019-04-24 13:40:56 858

原创 基于SpringBoot从零构建博客网站 - 整合lombok和mybatis-plus提高开发效率

整合lombok和mybatis-plus提高开发效率在上一章节中《技术选型和整合开发环境》,确定了开发的技术,但是如果直接这样用的话,可能开发效率会不高,为了提高开发的效率,这里再整合lombok和mybatis-plus两个组件。1、lombok以前在Github上看到过lombok,但是也没有进一步了解它的作用。前几天用了一下,感觉代码清爽多了,确时觉得利用lombok可以简化代码提高...

2019-04-22 14:04:29 390

原创 基于SpringBoot从零构建博客网站 - 技术选型和整合开发环境

1、技术选型博客网站是基于SpringBoot整合其它模块而开发的,那么每个模块选择的技术如下:SpringBoot版本选择目前较新的2.1.1.RELEASE版本持久化框架选择Mybatis页面模板引擎选择Freemarker前台框架选择Bootstrap后台框架选择AdminLTE数据库选择Mysql数据库版本管理选择Flyway技术选型概览图,如下:2、代码分包首...

2019-04-17 13:56:08 612

原创 基于SpringBoot从零构建博客网站 - 确定需求和表结构

要确定一个系统的需求,首先需要明确该系统的用户有哪些,然后针对每一类用户,确定其需求。对于博客网站来说,用户有3大类,分别是:作者,也即是注册用户游客,也即非注册用户管理员,网站维护人员那么从这3大类用户的角度分析,来确定博客网站的需求。1、作者需求作者是博客网站中最重要的用户,是博客网站内容的直接贡献者,那么从作者的角度来说,需求有:注册、登录、退出这是作者进入与离开网站...

2019-04-15 13:46:07 299

原创 微服务架构 - 基于Harbor构建本地镜像仓库

之前写过《搭建docker本地镜像仓库并提供权限校验及UI界面》文章,然后有同仁评论道这样做太复杂了,如果Harbor来搭建会更简单同时功能也更强大。于是抽时间研究了基于Harbor构建本地镜像仓库,感觉Harbor的确更简单同时功能更强大,再此感谢各位同仁的建议。下面将基于Harbor构建本地镜像仓库的步骤分享出来,再次欢迎各位同仁点评。1、HarborHarbor是VMware公司开源了企...

2019-04-10 13:34:13 244

原创 React Native开发 - 搭建React Native开发环境

移动开发以前一般都是原生的语言来开发,Android开发是用Java语言,IOS的开发是Object-C或者Swift。那么对于开发一个App,至少需要两套代码、两个团队。对于公司来说,成本还是有的。然而现在有蛮多的公司开发App是基于React Native来开发的,这样可以做到一个App,就是一套代码,一个团队。对于公司来说,无疑节约了成本。《React Native开发》这系列的文章主要是...

2019-04-08 13:26:49 178

原创 基于JavaMail开发邮件发送器工具类

在开发当中肯定会碰到利用Java调用邮件服务器的服务发送邮件的情况,比如账号激活、找回密码等功能。本人之前也碰到多次这样需求,为此特意将功能封装成一个简单易用工具类,需要用邮件发送功能时,只需要调用相关的接口即可。本人也将该工具提交到了GitHub上(https://github.com/lzj09/mail-helper),供大家参考。接下来,简单介绍一下该工具类及使用方法。1、工程依赖本工...

2019-04-03 13:20:28 315

原创 微服务架构 - 搭建docker本地镜像仓库并提供权限校验及UI界面

搭建docker本地镜像仓库并提供权限校验及UI界面docker本地镜像仓库的作用跟maven私服差不多,特别是公司级或者是小组级开发好的docker仓库可以上传到本地镜像仓库中,需要用时,直接从本地镜像仓库中拉取镜像即可,因为镜像仓库在自己公司,可以做到安全可控了。下面介绍搭建本地镜像仓库的过程。1、环境准备docker本地镜像仓库本身也是一个docker镜像,为此如果需要搭建本地镜像仓库...

2019-04-02 13:28:05 262

原创 图像识别 - 提取验证码信息

1、Tess4j最近在GitHub上看到一个图像识别的开源框架tess4j,而且是Java版的,为此利用此框架来识别验证码中的信息,利用它提供的字体库,来提取信息,对于没有什么干扰线的验证码准确率还是蛮高的,对于有一些干扰线的就差一些,不过也可以能通过训练字体库,从而可以提高准确率的。根据范例,写了一个简单的提取验证码信息的工具类VerificationCode:主要是用这个类的extrac...

2019-04-01 13:26:36 1004

原创 微服务架构 - 离线部署k8s平台并部署测试实例

一般在公司部署或者真实环境部署k8s平台,很有可能是内网环境,也即意味着是无法连接互联网的环境,这时就需要离线部署k8s平台。在此整理离线部署k8s的步骤,分享给大家,有什么不足之处,欢迎指正。1、准备环境这次离线部署k8s的版本为v1.10.1,同时docker的版本为17.12.0-ce,不过本文章不介绍如何离线部署docker,如果大家要看的话,可以看本人之前写的文章《CentOS7离线...

2019-03-28 13:26:39 478

原创 微服务架构 - SpringCloud整合分布式服务跟踪zipkin

1、zipkinzipkin是Twitter的一个开源项目,它基于Google Dapper实现。我们可以使用它来收集各个服务器上请求链路的跟踪数据,并通过它提供的REST API接口来辅助我们查询跟踪数据以实现对分布式系统的监控程序,从而及时地发现系统中出现的延迟升高问题并找出系统性能瓶颈的根源。除了面向开发的API接口之外,它也提供了方便的UI组件来帮助我们直观的搜索跟踪信息和分析请求链路明...

2019-03-27 13:22:36 293

原创 微服务架构 - 解决Docker-Compose服务编排启动顺序问题

基于Docker Compose进行服务编排时,一定碰到服务启动顺序的问题,例如:B服务启动之前,A服务要已经启动并且可以正常对外服务。这个启动顺序的问题,Docker Compose本身它是无法解决的,即使定义了depends_on或者links,它只能保证该服务依赖这些服务,启动本服务时会将依赖的服务也启动,但是启动顺序无法得到保证。目前本人实验比较好的方案有两种:基于wait-for...

2019-03-25 14:04:30 781

原创 微服务架构 - 巧妙获取被墙的Docker镜像

在国内由于种种原因,有些Docker镜像直接是获取不到的,特别是k8s中的一些镜像。本人在部署k8s中的helm组件时需要获取tiller镜像,如果直接用如下命令:docker pull gcr.io/kubernetes-helm/tiller:v2.12.1会由于网络原因连接不上从而导致获取镜像失败。经查相关资料,可以有一种“曲线求国”的方案,在此通过实现巧妙获取被墙的tiller镜像...

2019-03-22 13:50:35 515

原创 微服务架构 - SpringBoot整合Jooq和Flyway

在一次学习分布式跟踪系统zipkin中,发现了jooq这个组件,当时不知这个组件是干嘛的,后来抽空学习了一下,感觉这个组件还挺用的。它主要有以下作用:通过DSL(Domain Specific Language )风格,利用Java代码写sql。支持主流的RDMS和更多的特性,如self-joins,union,存储过程,复杂的子查询等。提供GenerationTool,能够通过表结构自动...

2019-03-21 13:24:57 376

原创 微服务架构 - CentOS7离线部署docker

目录1、环境准备2、准备部署文件3、安装docker关注我1、环境准备系统环境为:CentOS Linux release 7.5.1804 (Core)安装docker版本为:17.12.0-ce2、准备部署文件在http://mirrors.163.com/centos/7/os/x86_64/Packages/中下载如下rpm安装包:audit-2.8.4-4.el7.x86...

2019-03-20 13:47:34 595

转载 网络爬虫:利用Selenium实现登录

转载链接:http://www.tongtongxue.com/archives/180.html写过爬虫程序的码农都知道,实现爬虫程序登录的方法有多种,我这利用Selenium来实现登录。提供源代码下载本案例实现登录的网站是iteye,同时登录时选择第三方登录工具,本处利用的新浪微博来登录。以下是关键代码:程序启动类:WebSpider.javapackage

2015-11-17 08:09:59 3378

空空如也

空空如也

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

TA关注的人

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