自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

阿靖的博客

个人技术分享与开源工具分享

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

原创 二、大数据组件之HDFS

HDFS全称是Hadoop Distributed File System, 也就是Hadoop分布式文件系统,是一种在硬件上运行的分布式文件系统。它与现有的分布式文件系统有许多相似之处。但是,与其他分布式文件系统的区别很明显。HDFS具有高度的容错能力,旨在部署在低成本硬件上。HDFS提供对应用程序数据的高吞吐量访问,并且适用于具有大数据集的应用程序。HDFS是一种适合大文件存储的分布式文件系统,不适合小文件存储,也就是几KB和几M的那些文件。一、HDFS语法接下来我们通过实操来加深对HDFS的理

2020-12-09 17:48:23 274

原创 一、CDH6.2大数据平台搭建手册

一、集群规划实际工作中搭建CDH集群的话,理论上来说,机子越多越好,如果资源有限的话,建议前期最好4台机子,4台机子的话,针对hadoop集群而言 可以设置为1主3从,如果考虑到HA的话,就需要最少5台机子,本案例采用的服务器配置如下IP主机名CPU内存硬盘角色172.20.9.1hadoop18h64g50gcm-server、NameNode、SecondaryNameNode、Yarn ResourceManager172.20.9.2hadoop2

2020-12-04 11:47:44 827

原创 Java Excel框架

提供Excel导入导出功能一、安装依赖<dependency> <groupId>cn.gjing</groupId> <artifactId>tools-excel</artifactId> <version>1.0.0</version></dependency>二...

2019-09-21 17:35:37 1550 2

原创 SpringBoot如何使用AOP

AOP主要实现的目的是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。其与设计模式完成的任务差不多,是提供另一种角度来思考程序的结构,来弥补面向对象编程的不足,这个可能是面试中经常提到的问题,同时它也是Spring框架中一个重大的特性,对于我们开发中最常见的可能就是日志记录,事务处理,异常处理等等。。。本文将给大家介绍如何...

2019-07-14 23:00:11 338

原创 SpringMVC原理和启动流程

SpringMVC是一款Web MVC框架。 它跟Struts框架类似,是目前主流的Web MVC框架之一一、SpringMVC的由来早期 Java Web 的开发中,把显示层、控制层、数据层的操作全部交给 JSP 或者 JavaBean 来进行处理,我们称之为 Model1:然而出现了很多的弊端,比如:JSP 和 Java Bean 之间严重耦合,Java 代码和 HTML 代码也耦...

2019-07-07 16:03:29 559

原创 SpringBoot使用分布式缓存

如果对SpringBoot缓存不熟悉的建议先看第一片文章SpringBoot使用caffeine作为缓存,为什么使用分布式缓存?在实际开发场景中,往往单机应用无法满足当前的需求,需要对项目进行分布式部署,由此,每个项目中的缓存都是属于自己独立服务的,并不能共享,其次,当某个服务更新了缓存,其他服务并不知道,当用户请求到其他服务时,获取到的往往还是旧的数据,说到这,就有人会说使用Redis进行代替,...

2019-06-27 14:06:23 2154

原创 SprngBoot使用Lua脚本操作Redis

本文介绍SpringBoot如果通过Lua脚本去执行Redis,只介绍了简单用法例子,更深层次的用法请参考Redis官网1. 添加依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis...

2019-06-21 13:31:07 244

原创 SpringBoot使用RabbitMQ(二)

如未看第一章的建议先看第一章基本用法:SpringBoot使用RabbitMQ),这里讲解SpringBoot使用RabbitMQ进行有回调的用法和消费者端手动签收消息的用法。yml文件配置server: port: 8080spring: application: name: rabbit-confirm rabbitmq: template: ...

2019-06-14 16:00:29 124

原创 SpringBoot使用RabbitMQ

消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构使用较多的消息队列有ActiveMQ,RabbitMQ,Kafka,RocketMQ等,这里主要讲解RabbitMQ的简单使用创建SpringBoot项目,并引入依赖 <dependency> <groupId&g...

2019-06-13 22:32:51 232

原创 Java开发基础工具包

tools-common提供参数校验与处理,excel导出,时间转换,数据加密,验证码,发送邮件等功能…推荐使用最新版本安装tools-common具体包含的工具:注解:* @NotNull: 可以在普通程序和web程序中使用,适用于方法参数校验,如若要排除方法中的某个参数,搭配使用@ExcludeParam注解到指定参数上;* @NotNull2: 只在web程序中使用...

2019-06-02 04:14:19 423

原创 Java Http工具

用于在项目中发送HTTP/HTTPS请求 ,目前支持POST .GET .DELETE . PUT四种常用请求,并支持POST使用JSON传参项目使用方式:添加依赖:<dependency> <groupId>cn.gjing</groupId> <artifactId>tools-httpclient</arti...

2019-05-19 14:34:21 1307 4

原创 SpringBoot使用swagger

快速集成Swagger,只需一个注解,即可开启默认配置并使用它, 也可以自定义去配置它.使用方法1.添加依赖<dependency> <groupId>cn.gjing</groupId> <artifactId>tools-starter-swagger</artifactId> <vers...

2019-05-19 14:32:26 282

原创 Go web开发

使用 Gin-Plus 框架快速进行 web 开发

2023-01-11 15:36:28 343 1

原创 k8s部署SpringBoot项目

一、前言本文将介绍如何通过CICD将SpringBoot框架的Web项目发布到k8s集群中,文章中有使用到eureka的注册,如果对如何在k8s集群中部署eureka,那么可以参考本人的 k8s部署eureka集群 文章。如果只是为了测试部署Web服务到k8s集群中,那么你们可以自己搭建项目时,忽略eureka的相关依赖和配置二、k8s知识点介绍1、DeploymentDeployment是最常用的用于部署无状态服务的方式。Deployment控制器使得您能够以声明的方式更新 Pod(容器组

2021-07-06 16:06:39 2787

原创 k8s部署eureka集群

在k8s集群中通过CICD进行部署Eureka集群一、前言普通后端如果想要同时起多个服务来进行负载均衡,可以通过部署Deployment并调整Pod的数量,然后交由Service来代理这些Pod,而对于Eureka而言,这样做就没那么方便了,因为Eureka之间还需要互相注册,因此需要做一些特殊的改动。主要用到了StatefulSet和Headless Service这两个控制器二、StatefulSet这是一个用于管理有状态程序的控制器,它在管理Pod时,确保每一个Pod有一个按顺序增长的.

2021-06-29 10:19:22 3361 2

原创 Scala语言入门五(函数)

Scala函数的使用1、定义def 方法名(参数名: 参数类型): 返回值类型 = {//方法体}/** * @author Gjing **/object Test { def main(args: Array[String]): Unit = { sayHello("Hello") } def sayHello(text: String):Unit = { println(text) }}如果你不写等于号和方法主体,那么方法会被隐式声明为抽象(a.

2020-10-10 09:53:48 213

原创 Scala语言入门四(模式匹配)

Scala 提供了强大的模式匹配机制,应用也非常广泛。一个模式匹配包含了一系列备选项,每个都开始于关键字 case。每个备选项都包含了一个模式及一到多个表达式。箭头符号 => 隔开了模式和表达式一、语法变量 match { case value1 => 代码1 case value2 => 代码2 ...}match 对应 Java 里的 switch,但是写在选择器表达式之后。即: 选择器 match {备选项}。match 表达式通过以代码编写的.

2020-10-10 09:49:36 181

原创 Scala语言入门三(集合)

一、数组Scala 语言中提供的数组是用来存储固定大小的同类型元素,数组对于每一门编辑应语言来说都是重要的数据结构之一。数组的第一个元素索引为0,最后一个元素的索引为元素总数减11、声明数组不可变数组/** * @author Gjing **/object ArrayApp { def main(args: Array[String]): Unit = { // 声明一个长度为2的不可变数组 val arr = new Array[String](2) //

2020-08-15 16:01:07 131

原创 Scala语言入门二(对象)

讲述Scala中的面向对象相关知识点一、特征封装:属性和方法封装在类中继承:父类和子类的一个关系多态:父类引用指向子类对象二、类的定义和使用类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间/** * @author Gjing **/class Person { // 定义属性,Scala会自动帮var类型的属性生成get、set,val类型的属性生成get var name = "" val age = 10 // 可通.

2020-08-15 15:56:32 86

原创 Scala语言入门一(初识)

一、Scala概述Scala是一门多范式的编程语言,一种类似java的编程语言,设计初衷是实现可伸缩的语言、并集成面向对象编程和函数式编程的各种特性。Scala把Erlang风格的基于actor的并发带进了JVM。开发者可以利用Scala的actor模型在JVM上设计具伸缩性的并发应用程序,它会自动获得多核心处理器带来的优势,而不必依照复杂的Java线程模型来编写程序。Scala 运行在Java虚拟机上,并兼容现有的Java程序。Scala 源代码被编译成Java字节码,所以它可以运行于JVM之上,并可以

2020-08-15 15:54:25 198

原创 SpringBoot权限框架

简单快速的在项目中进行权限验证一、导入依赖<dependency> <groupId>cn.gjing</groupId> <artifactId>tools-auth</artifactId> <version>1.0.0</version></dependency>二、权限注解该注解使用在API上,用于对用户请求方法时进行身份认证1、@RequiredPermission

2020-05-12 00:16:42 1705

原创 Docker安装Elasticsearch和Elasticsearch-Head以及IK分词器

ElasticSearch 是一个分布式、高扩展、高实时的搜索引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用ElasticSearch的水平伸缩性,能使数据在生产环境变得更有价值。ElasticSearch 的实现原理主要分为以下几个步骤,首先用户将数据提交到Elastic Search 数据库中,再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据,当用户搜索数据...

2020-04-01 17:13:00 409

原创 SpringBoot使用Scala进行Web开发

Scala是一门多范式的编程语言,一种类似Java的编程语言,设计初衷是实现可伸缩的语言并集成面向对象编程。Scala把Erlang风格的基于actor的并发带进了JVM,开发者可以利用Scala的actor模型在JVM上设计具伸缩性的并发应用程序,它会自动获得多核心处理器带来的优势,而不必依照复杂的Java线程模型来编写程序,接下来就介绍一下如何在SpringBoot框架中使用Scala来进行简...

2019-11-29 14:45:13 1573

原创 Windows美化终端

本文介绍如何给Windows系统的终端进行打扮,最下面会有效果图一、安装FluentTerminal1、下载前往GitHub找到下面的文件下载2、安装下载后解压,进入解压后的目录,找到Install.ps1文件,右击使用PowerShell运行,弹出PowerShell后,按照提示,就可以成功安装了。二、安装oh my posh1、设置可执行任意脚本以管理员身份打开PowerSh...

2019-10-17 17:43:57 1454

原创 Linux搭建自己的Nexus私服

本文介绍如何在Linux服务器通过Docker搭建Nexus私服一、安装Nexusdocker run -d -p 8081:8081 --name nexus -v /srv/nexus/nexus-data:/var/nexus-data --restart=always sonatype/nexus3通过docker logs -f nexus查看启动日志,当出现Started So...

2019-10-06 23:42:31 344

原创 Linux搭建自己的Docker镜像仓库

介绍如何在自己的服务器搭建docker镜像仓库一、查看宿主机docker版本如果版本小于17,需要下载新的版本docker,如果你的docker版本大于17的话,以下跳过,请直接跳到第二块docker -v1、更新yum源yum update2、卸载旧版本的docker,如果有安装的话sudo yum remove docker docker-common docker-sel...

2019-10-04 20:43:59 1956 2

原创 Docker安装Gitlab和Runner并实现CICD

本文详细介绍如何在Linux系统使用Docker安装Gitlab、Gitlab-Runner并实现项目的CICD

2019-10-04 15:07:34 1514

原创 实现和Mybatis一样在SpringBoot启动时为接口创建代理实现类

Mybatis是一个优秀的ORM框架,它支持定制化 SQL、存储过程以及高级映射,对Mybatis不熟悉的可以查看我的这篇文章:Mybatis原理,在使用中,我们往往会很惊讶,为啥我只定义了一个接口,就可以进行依赖注入,而且还能对数据库进行操作,这其实是基于代理模式来实现的,对动态代理不了解的可以查看这篇文章:Java代理模式本文将介绍如何实现和Mybatis一样,在SpringBoot启动的时...

2019-08-12 17:23:48 2190 2

原创 Mybatis原理分析

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录本文将通过一个简单的demo来给大家分析一下...

2019-08-12 15:45:46 417

原创 Python3入门(十四)正则表达式

正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。Python自1.5版本起增加了re模块,它提供Perl风格的正则表达式模式。re模块使Python语言拥有全部的正则表达式功能。compile函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。re模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式...

2019-07-18 00:10:41 140

原创 python3入门(十三)面向对象

Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。本章节我们将详细介绍Python的面向对象编程。一、简介类(class):用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例方法:类中定义的函数类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作...

2019-07-17 12:30:26 381

原创 定义一个SpringBoot Starter

Starter是SpringBoot中的一个非常重要的概念,Starter相当于模块,它能将模块所需的依赖整合起来并对模块内的Bean根据条件进行自动配置。使用者只需要依赖相应功能的Starter,无需做过多的配置和依赖,SpringBoot就能自动扫描并加载相应的模块,例如我们在创建SpringBoot项目时,经常会引入如spring-boot-starter-web这种依赖,该依赖为我们做了很...

2019-07-17 00:14:03 102

原创 使用Docker compose部署SpringBoot项目

我们使用Docker的时候,定义Dockerfile文件,然后使用docker build、docker run等命令操作容器,对Docker不熟悉的可以前往查看中文文档:Docker文档。然而微服务架构的应用系统一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,那么效率就有点低了。Compose是一个用于定义和运行多容器Docker应用程序的工具。使用Compos...

2019-07-15 17:05:03 1829 1

原创 Python3入门(十二)错误和异常

学习 Python 编程时,经常会看到一些报错信息,在前面我们没有提及,这章节我们会专门介绍。Python 有两种错误很容易辨认:语法错误和异常一、语法错误语法错误也可以称之为解析错误,如下if True print("ok")会出现错误,因为if条件后没有加:二、异常即便Python程序的语法是正确的,在运行它的时候,也有可能发生错误。运行期检测到的错误被称为异常,大多的异...

2019-07-15 00:05:26 151

原创 Python3入门(十一)OS文件/目录方法

os模块提供了非常丰富的方法用来处理文件和目录。常用的方法如下表所示方法描述os.access(path, mode)检验权限模式os.chdir(path)改变当前工作目录os.chflags(path, flags)设置路径的标记为数字标记。os.chmod(path, mode)更改权限os.chown(path, uid, gid)更...

2019-07-11 23:24:23 65

原创 Python3入门(十)File对象

一、open()方法open()方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError, 使用open()方法一定要保证关闭文件对象,即调用close()方法open(file, mode='r')参数说明:参数名描述file必须,文件路径(相对或者绝对路径)mode可选,文件打开模式...

2019-07-11 23:08:40 142

原创 SpringBoot使用JPA

Spring Data JPA 是 Spring 基于 ORM 框架、JPA 规范的基础上封装的一套 JPA 应用框架,底层使用了 Hibernate 的 JPA 技术实现,可使开发者用极简的代码即可实现对数据的访问和操作。它提供了包括增删改查等在内的常用功能,且易于扩展!学习并使用SpringDataJPA可以极大提高开发效率!让我们解脱DAO层的操作,基本上所有CRUD都可以依赖于它来实现本...

2019-07-11 18:02:54 393

原创 SpringBoot启动如何执行自己定义的逻辑

在实际项目开发中,我们可能会希望在项目启动后去加载一些资源信息、执行某段特定逻辑等等初始化工作,这时候我们就需要用到SpringBoot提供的开机自启的功能,SpringBoot给我们提供了两个方式:CommandLineRunner和ApplicationRunner,CommandLineRunner、ApplicationRunner接口是在容器启动成功后的最后一步回调,这两种方法提供的目的...

2019-07-10 15:26:08 523 1

原创 Python3入门(九)输入与输出

前面几章介绍了一些常用的输入输出,本文将具体介绍Python的输入和输出一、输出格式美化Python两种输出值的方式: 表达式语句和print()函数。第三种方式是使用文件对象的write()方法,标准输出文件可以用sys.stdout引用。如果你希望输出的形式更加多样,可以使用str.format()函数来格式化输出值。如果你希望将输出的值转成字符串,可以使用repr()或str()函...

2019-07-10 11:27:13 363

原创 Java代理模式

代理模式主要为其他对象提供一种代理以控制这个对象的访问。在某些情况下,一个对象不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用,好比你将一些繁琐的事情交给第三方去管理,那么第三方就是你的代理,其他人只会去找这个代理,而不会去找你,AOP本身就是基于动态代理实现的,所以掌握了代理模式对AOP的学习很有帮助的哦。本文将给大家介绍代理模式的两种实现方式,静态代理和动...

2019-07-10 01:24:53 201

空空如也

空空如也

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

TA关注的人

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