自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(74)
  • 收藏
  • 关注

原创 Linux系统 开启SSH root账号登录

今天用公司的openstack 平台创建一个虚拟机 在登录的时候 抛出让我用普通用户centos登录 ... 解决它!本篇注意记录一下 Linux系统 开启SSH root账号登录的流程最近断更很久了, 因为在休陪产假, 每天要照顾我的两个小baby (双胞胎闺女) 哈哈哈哈 不过真的蛮累的欢迎大家访问 个人博客Johnny小屋欢迎关注个人公众号。

2023-03-22 00:36:55 2016 1

原创 Redis 实现分布式锁+执行lua脚本

本篇主要一步步演进手写redis分布式锁的实现, 包括 setnx -> set -> 过期时间 -> 误删锁 -> uuid控制锁误删-> lua脚本控制删锁的原子性等等.. 其实目前还有问题, 包括锁续期问题以及redis 可重入锁的问题有机会在完善吧需要注意 redis 中如何使用 lua脚本的, 因为一些原子性操作就是需要lua脚本来控制 包括 redission 框架也是通过lua脚本实现的.

2023-03-22 00:30:56 1674

原创 Mysql 悲观锁

Mysql 悲观锁本篇主要来看看mysql中的悲观锁的 概念 类别 介绍了 排他锁和共享锁 以及 使用悲观锁的时候需要注意 行锁表锁 以及死锁的情况1.mysql的悲观锁 概念悲观锁[Pessimistic Concurrency Control]指的是 在操作数据的时候悲观的认为数据会发生冲突, 所以在每次操作的时候都直接把数据给锁住🔒,这样其他的线程就只能阻塞住 无法操作, 所以悲观锁比较耗费时间, 一般悲观锁都是借助 数据库锁机制 在java中 synchronized 就是悲观锁 同一

2023-02-01 14:50:15 1551

原创 Android Volley 基本使用

Android Volley 基本使用本篇主要介绍 Google 给Android 平台提供的 Volley 一个 Http请求库 , 齐射!1.概述Volley是Google 提供的一个小巧的异步请求库,扩展很强支持okhttp,(默认是 Android2.3 及以上基于 HttpURLConnection,2.3 以下基于 HttpClient 实现), Volley 英文齐射的意思 就是指无数急促的请求,适合数据量小,并且通信频繁的场景 官方文档 https://google.gi

2023-01-12 16:24:17 541

原创 Kotlin + Jpa + Querydsl

Kotlin + Jpa + Querydsl本篇主要介绍一下 kotlin + jpa + querydsl . jpa + querydsl 是我很喜欢的一种搭配,它能够让你写sql语句一样的去写代码 , 以前我也写过关于 java版本的, 本篇就来看看kotlin中如何去使用1.引入插件主要引入jpa插件 和 kapt Kotlin annotation processing tool(Kotlin 注解处理工具)plugins { // Apply the org.jetbra

2022-12-21 20:41:44 541

原创 Kotlin + SpringBoot + JPA 服务端开发

Kotlin + SpringBoot + JPA 服务端开发本篇主要介绍一下 kotlin + springboot的服务端开发环境搭建1.概述Kotlin 是一个基于JVM的编程语言, 是IDEA开发工具 jetbrains 公司开发的语言,也被google选为android开发的首选语言, 因为它是完全兼容Java的 所以也可以做后端开发 比如集成我们在使用Java的一些技术框架 ,本篇就来简单介绍一下和SpringBoot的集成下面我用Gradle init 的方式从头开始搭建Kot

2022-12-17 23:09:29 1022

原创 LVS 负载均衡

LVS 负载均衡本篇主要介绍一下 lvs 是什么 以及它的 nat 模式的搭建 配合nginx来演示1.概述LVS 是 Linux Virtual Server 的简写 (Linux 虚拟服务器 ), 是由章文嵩博士主导, 它虚拟出一个服务器集群,然后进行负载均衡的项目, 目前LVS 已经被集成到Linux内核模块中了, 外部请求到达LVS后它会根据不同的调度算法把请求分发到具体的后端真实服务器, 又根据LVS不同的工作模式 后端服务器会选择不同的方式将 响应数据返回, LVS工作模式分为 NA

2022-12-15 16:15:42 337

原创 Nginx 防盗链

Nginx 防盗链本篇主要介绍一下 nginx 中 防盗链的具体配置 , 以及http 的 referer 头 概述防盗链其实就是 防止别的站点来引用你的 资源, 占用你的流量在了解nginx 防盗链之前 我们先了解一下 什么是 HTTP 的头信息 Referer,当浏览器访问网站的时候,一般会带上Referer,告诉后端该是从哪个页面过来的nginx的 防盗链'功能基于 HTTP协议的Referer机制,通过判断Referer对来源进行 识别和判断 做出一定的处理nginx会通就

2022-12-13 09:14:42 579

原创 Nginx rewrite 详解

Nginx rewrite 详解本篇主要介绍 nginx 的 rewrite 重定向这个功能进行 详解介绍, 以及介绍它的使用场景1. rewrite 基本介绍rewrite是实现URL重写的关键指令,根据regex (正则表达式)部分内容,重定向到replacement,结尾是flag标记。 基本语法:rewrite <regex> <replacement> [flag];关键字 正则 替代

2022-12-12 16:42:42 1152

原创 keepalived 主备使用

keepalived 主备使用本篇主要介绍一下 keepalived 的基本的 主备使用1.概述什么是 keepalived呢,它是一个集群管理中 保证集群高可用的软件,防止单点故障,keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路冗余协议虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一

2022-12-12 16:39:47 3193

原创 Nginx 动静分离相关配置解析

Nginx 动静分离相关配置解析本篇主要介绍nginx 动静分离相关配置解析概述动静分离是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作,这就是网站静态化处理的核心思路.准备工作配置2台 虚拟机 并且都安装好nginx 服务,配置信息如下 , 并且在 hosts文件中做好域名配置ip模拟域名类型172.16.225.111www.testfront.com静态资源服务器17

2022-12-09 21:03:30 727

原创 Nginx rewrite 详解

Nginx rewrite 详解本篇主要介绍 nginx 的 rewrite 重定向这个功能进行 详解介绍, 以及介绍它的使用场景1. rewrite 基本介绍rewrite是实现URL重写的关键指令,根据regex (正则表达式)部分内容,重定向到replacement,结尾是flag标记。 基本语法:rewrite <regex> <replacement> [flag];关键字 正则 替代

2022-12-08 09:32:13 1920

原创 Gradle 使用maven本地仓库 带来的思考

Gradle 使用maven本地仓库 带来的思考本篇主要探究一下 在使用Gradle 的时候一般会配置 maven 的本地仓库的,那是不是Gradle 可以直接使用 maven本地仓库的jar呢 ? 下面来探究一下思考当我们在使用Gradle的时候 一配置一个 mavenLocal() 代表它会使用maven的本地仓库, 此时是不是直接用了maven的本地仓库中的jar包呢? 新版本好像已经可以直接使用maven仓库中的 jar 了 不过老版本好像是不行的验证方式Gradle versio

2022-12-05 14:01:06 1704

原创 Android ViewPager2 + TabLayout + BottomNavigationView

Android ViewPager2 + TabLayout + BottomNavigationView 实际案例本篇主要介绍一下 ViewPager2 + TabLayout + BottomNavigationView 的结合操作 概述相信大家都看过今日头条的的样式 如下: 顶部有这种tab 并且是可以滑动的, 这就是本篇所介绍的 ViewPager2 + TabLayout 的组合 下面来看看如何实现把实现思路1.Activity 布局文件中引入BottomNavigationV

2022-12-02 11:41:27 888

原创 Android ViewPager2 + Fragment + BottomNavigationView 联动

Android ViewPager2 + Fragment + BottomNavigationView 联动本篇主要介绍一下 ViewPager2 + Fragment + BottomNavigationView , 上篇中把ViewPager2和Fragment 联动起来了, 本篇主要把 BottomNavigationView集成进去 概述BottomNavigationView 是一个底部导航控件, 现在要实现的效果就是 滑动ViewPager2 中的Fragment 并且底部Bot

2022-12-02 11:39:20 1730

原创 Android ViewPager2 + Fragment 联动

Android ViewPager2 + Fragment 联动本篇主要介绍一下 ViewPager2 + Fragment , 上篇中简单使用了ViewPager2 实现了一个图片的滑动效果, 那图片视图可以滑动, ViewPager2也可以滑动 Fragment概述ViewPager2 官方对它的描述就是 以可滑动的格式显示视图或 Fragment 也就说明提供了滑动Fragment的实现 并且还很简单, 下面来看看吧实现思路1.Activity 布局文件中引入 ViewPager2

2022-12-01 05:44:00 2200 1

原创 Elasticsearch Analyzer 内置分词器

Elasticsearch Analyzer 内置分词器篇主要介绍一下 Elasticsearch中 Analyzer 分词器的构成 和一些Es中内置的分词器 以及如何使用它们 前置知识es 提供了 analyze api 可以方便我们快速的指定 某个分词器 然后对输入的text文本进行分词 帮助我们学习和实验分词器POST _analyze{ "analyzer": "standard", "text": "Th

2022-11-04 13:25:54 1899

原创 Elasticsearch mapping

Elasticsearch mapping本篇主要介绍一下 Elasticsearch mapping 的概念, 它是什么 以及如何自定义它, 并且再介绍一下 dynamic 的机制如果把 Elasticsearch中的mapping 对比到 mysql 中 就是 mysql中的 表的 scheme , 就是表的定义结构,正常在 关系型数据库mysql中 需要先把表的scheme 定义好 再插入数据, 并且 你无法插入未在scheme 中定义的字段 , 而 es 中 可以在你未给索引定义

2022-11-03 23:42:15 608

原创 git 多个commit 如何合并

git 多个commit 如何合并本篇主要介绍一下 git 中多个commit 如何合并, 因为commit 太多 会导致提交记录混乱, 所以有时候会把多个commit 合并成一个 保持提交记录干净清晰1.前置准备准备了一个git 项目 并且 提交了4次 , 有4个commit2.多个commit 合并根据前置准备 我觉得 最新的3个modify commit 想合并为1个 命令:git rebase -i commit ID要选择一个 commit ID , 这个 commit

2022-10-27 13:27:52 1457

原创 maven 重复依赖不同版本 选择规则

maven 重复依赖不同版本 选择规则本篇主要来看看 maven 对于 重复依赖的jar的不同版本时候 它内部的选择规则, 很多时候我们在搭建环境的时候 不注意就会存在依赖冲突等问题 那依赖冲突的时候 为什么maven选择了不是你如你所想的jar 版本呢 , 其实都是有一定规则的 下面来看看吧1.前言我们在使用maven 的时候 多多少少遇到过jar包冲突的问题, 在对一个jar包引入不同版本后,可能会导致NoSuchMethodError 错误, 那么你真的清楚 maven 在多个版本jar的时

2022-10-26 09:01:09 3286

原创 Elasticsearch rest-high-level-client 基本操作

Elasticsearch rest-high-level-client 基本操作本篇主要讲解一下 rest-high-level-client 去操作 Elasticsearch , 虽然这个客户端在后续版本中会慢慢淘汰,但是目前大部分公司中使用Elasticsearch 版本都是6.x 所以这个客户端还是有一定的了解前置准备准备一个SpringBoot环境 2.2.11 版本准备一个Elasticsearch 环境 我这里是8.x版本 引入依赖 elasticsearch-rest

2022-10-25 16:16:27 4220

原创 Docker 部署 Kibana

Docker 部署 Kibana本篇主要介绍 使用 Docker 部署 kibana 用于操作 Elasticsearch 使用.1. 前置准备1.1 Elasticsearch 准备可以先准备一个 Elasticsearch 服务 后续用于使用Kibana 去连接它操作,本篇就不展开了1.2 查看Elasticsearch 和 Kibana 的 版本关系https://www.elastic.co/cn/support/matrix#matrix_compatibility根据自己的

2022-10-10 13:33:29 6289 1

原创 Python Flask Blueprint 蓝图

Python Flask Blueprint 蓝图 本篇来了解一下 Flask 中 Blueprint 蓝图,什么蓝图 。。就是一个分模块的扩展而已,用来让不同的 业务模块api 分到不同的python文件中 而已,和 Spring mvc 的 class 级别 的@RequestMapping("/") 差不多。。前因:为什么要引入 Blueprint 蓝图呢? 因为如果默认把API接口都写到 一个py 文件里面 那么这个文件会越来越复杂,会越来越臃肿 导致 无法维护

2022-08-01 09:46:27 411

原创 Vim插件合集 (打造你的专属炫酷IDE)

Vim插件合集 本篇 主要来介绍一下 如何使用 Vim的插件功能 去把Vim打造成 炫酷 多功能的IDE ,让你可以用Vim编写Python Go 等等。。 而不用繁重的 Pycharm 等高级Ide效果图前置知识vim映射:就是映射你自己的快捷键 到 对应的操作 ,这个不明白可以后续了解一下 不影响本篇1.安装Vim插件管理器 VimPlugvim默认提供插件功能,但是如果你通过手动的方式去集成插件 那么太麻烦 太低效了,所以有vim的插件管理器去管理 我们需要的插件,这样会更加方

2022-07-29 21:13:44 2581 1

原创 Springboot 集成Druid

Springboot 集成Druid 本篇主要讲解一下 Springboot中如何集成 Druid 快来学习吧!!!Druid是Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。1.添加Druid依赖<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId>

2022-07-23 11:55:14 3495

原创 Python Json使用

Python Json使用 本篇主要介绍一下 python 中 json的使用 如何把 dict转成json 、object 转成json 、以及json转成对象 等等。。json是非常常用的一种数据格式,比如在前后端分离的 web开发中,返回给前端 通常都会使用json ,那么来看看 python 中如何玩转json1.dict 转成 json (json.dumps(dict))注意: ensure_ascii=False 否则中文乱码 import json student =

2022-07-23 11:54:23 266

原创 IntelliJ IDEA 插件推荐

IntelliJ IDEA 插件推荐 本篇主要统计了一些 Idea 的常用插件 分享一下 感谢作者zzpgoogle-java-format作用代码格式化风格。插件官网google-java-format - plugin for IntelliJ IDEs | JetBrains使用说明插件安装完成后需要到Preferences->Other Settings->google-java-format Settings勾选Enable google-java-format

2022-07-23 11:53:00 2948 1

原创 Kotlin Class 自定义类

Kotlin Class 自定义类1.Kotlin 构造器写法有4种1.1 第一种写法 类似Java/** * 默认类 就是 public类型,并且成员变量也是 public类型 */class Dog { //成员必须 初始化 ,不像Java var name: String = "" var age: Int = 0 //构造器第一种写法 类似Java constructor(name: String, age: Int) {

2022-07-01 13:19:38 596

原创 Kotlin 函数

Kotlin 函数Kotlin函数有自己的类型,所以是 "一等公民"可以复制 传递,并在合适条件下调用1. 函数的定义fun main(args:Array<String>):Unit{ println(args.contentToString())}fun 表示一个函数main 表示函数名称args:Array<String> 参数名称 和类型Unit 表示返回值 ==Java中 Void 返回值为Unit的时候可以省略2.函

2022-06-15 16:38:10 123

原创 Kotlin 集合

Kotlin 集合增加了 "不可变" 集合框架的接口没有另起炉灶, 复用Java API 的所有实现类型提供了丰富的方法,例如 forEach/map/flatMap 等高阶函数运算符级别的支持,简化集合框架的访问 1. Kotlin VS Java 集合类型KotlinJava不可变ListListList可变ListMutableListList不可变MapMap<K,V>Map<K,V>可变M

2022-06-15 16:35:36 461

原创 Kotlin 区间

Kotlin 区间kotlin 中的区间在Java中是没有的,区间和数学中的 [] 类似1. 创建一个区间使用 .. val intRange = 1..10 val charRange = 'a'..'z' val longRange = 1L..10L2. 创建半开半闭区间使用 until //创建半开半闭区间 // [1,10) val intRangeExclusive = 1 until 10

2022-06-15 16:33:59 943

原创 Kotlin Array数组

Kotlin Array数组###1.Kotlin Vs Java 类型KotlinJava整型IntArrayint[]整型装箱ArrayInteger[]字符CharArraychar[]字符装箱类型ArrayCharacter[]字符串ArrayString[]2.创建Kotlin数组 val arry1 = intArrayOf(1,2,3,4,5) println(arry1.contentToString

2022-06-15 16:31:57 1220

原创 Linux SSH 免密登录

Linux SSH 免密登录 本篇我们来 看看 Linux 的免密登录的原理 以及实际操作一番概述什么是 Linux SSH 免密登录,我觉得大家应该都 多少听过 或者操作过,那你真的理解整个免密登录的过程吗?Linux SSH 免密登录 就是 可以不输入密码 就可以通过SSH 远程连接到 服务器了1.SSH 免密登录原理通过上面的图解流程 可以大致分为下面几步,A 作为Client端 B作为 Server端A -> B A免密登录B在A上生成公钥私钥。将公钥拷贝给

2022-06-15 16:22:57 8368

原创 Android Jetpack Navigation基本使用

Android Jetpack Navigation基本使用 本篇主要介绍一下 Android Jetpack 组件 Navigation 导航组件的 基本使用当看到 Navigation单词的时候 应该就大概知道 这是一个关于导航用的,下面我来简单介绍一下 如何使用Navigation组件的基本使用流程,并且一步步 实际操作一番 Navigation ,下图是案例,实现登录到详情的跳转1.Navigation 基本概念Navigation 是一个Jetpack组件 支持用户导航,用于在

2022-06-15 16:09:37 413

原创 Fluent-Validator 业务校验器

Fluent-Validator 业务校验器背景在互联网行业中,基于Java开发的业务类系统,不管是服务端还是客户端,业务逻辑代码的更新往往是非常频繁的,这源于功能的快速迭代特性。在一般公司内部,特别是使用Java web技术构建的平台中,不管是基于模块化还是服务化的,业务逻辑都会相对复杂。这些系统之间、系统内部往往存在大量的API接口,这些接口一般都需要对入参(输入参数的简称)做校验,以保证:1) 核心业务逻辑能够顺利按照预期执行。2) 数据能够正常存取。3) 数据安全性。包括符合约束以及限制

2022-05-19 09:35:25 1491

原创 安装OpenStack Glance 组件

安装OpenStack Glance 组件 本篇主要记录一下 如何安装 OpenStack 的 Glance 镜像管理组件和上一篇一样 选择的是 queens 版本操作系统:Centos71.官网地址 有一些前置条件 如 mariadb 、 NTP 同步 、MQ 等 需要提前安装好 详细在上一篇Keystone中https://docs.openstack.org/glance/queens/install/install-rdo.html2.配置 glance 前置条件2.

2022-05-18 11:14:45 378

原创 OpenStack 安装 Keystone

OpenStack 安装 Keystone 本篇主要记录一下 如何安装 openstack的 第一个组件 keystone 认证授权组件 openstack 版本 我选的是queens 版本 1.OpenStack 官网看了一下官网 文档还是蛮全的,我采用 centos7 来做实验https://docs.openstack.org/keystone/queens/install/ 2.KeyStone 概述Keystone 是openstack 体系下面的认证、授权、和 目录服务

2022-05-17 09:34:19 760

原创 Linux 虚拟网络设备 tun/tap veth pair

Linux 虚拟网络设备 tun/tap veth pair 本篇主要介绍一下 linux 下面的 虚拟网络设备 tun/tap veth pair 随着容器逐步取代虚拟机,成为云基础架构的标准,然而容器的网络管理部分是离不开 Linux虚拟网络设备的,所以了解常用的Linux 虚拟网络设备对于我们云理解网络架构很有帮助Linux虚拟网络的背后都是由一个个虚拟设备构成的,在虚拟化技术还没出现之前,计算机网络系统一般都只包含物理网卡设备 由于虚拟化技术的出现,网络也需要被虚拟化,虚

2022-05-17 09:24:03 1251

原创 k8s 部署jenkins

k8s 部署jenkins 本篇主要讲解一下 jenkins 在 k8s 下面是如何部署的,主要对jenkins_home、maven 的一些挂载 和 docker 程序的挂载 ,使其让 pod中的 jenkins 支持 maven docker 等功能,并且当pod删除时不丢失 jenkins_home1.根据官网 安装 简易版Jenkins在Jenkins的官网的 安装教程部分其实就有 k8s的安装教程我们选择使用 YAML文件的方式安装 也可以选择 Helm 安装、在其中可

2022-05-14 08:54:14 10491 1

原创 k8s 配置 Secret 集成Harbor

本篇主要 记录一下 在 k8s 中如果想要 从 harbor拉取镜像 该怎么操作,以及介绍了一下 k8s 中 Secret 是什么1.Secret 是什么1.1 Secret 概述Secret 是一种包含少量敏感信息例如密码、令牌或密钥的对象。 这样的信息可能会被放在 Pod 规约中或者镜像中。 使用 Secret 意味着你不需要在应用程序代码中包含机密数据。由于创建 Secret 可以独立于使用它们的 Pod, 因此在创建、查看和编辑 Pod 的工作流程中暴露 Secret(及其数据...

2022-04-28 14:41:28 1630

空空如也

空空如也

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

TA关注的人

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