自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 并行处理RPC调用

使用 CompletableFuture 和 ThreadPoolExecutor 实现并行的远程调用,并在所有调用完成后收集结果。

2024-07-16 14:28:25 161

原创 事务工具类封装

日常开发中,一个方法中避免不了多次操作数据库,很多场景下会使用@Transactional注解,难免会出现大事务(业务代码也包含在其中),同时不在一个事务中,很可能就会引发事务问题,以下为事务封装工具类。

2024-07-11 13:33:02 190

原创 方法工具类封装

方法工具类封装

2024-07-11 13:18:19 82

原创 Centos环境下安装docker

1.Docker 要求 CentOS 系统的内核版本高于 3.10,使用命令查看centos环境是否支持dockeruname -r2.使用root用户登录Centos,确保yum包更新到最新sudo yum update3.卸载之前安装的版本(首次安装可忽略)sudo yum remove docker docker-common docker-selinux docker-engine4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是d

2021-10-11 17:48:28 173

原创 docker安装redis

1.拉取镜像#拉取最新版本的镜像docker pull redis#指定版本号拉取镜像docker pull redis:4.0.92.启动容器(1)从官网下载redis.conf配置文件(http://download.redis.io/redis-stable/redis.conf)wget https://raw.githubusercontent.com/antirez/redis/4.0/redis.conf -O /usr/local/bin/docker/redis/redis

2021-10-10 21:19:19 128

原创 寻找字符串中联系数字(全部都是1位数)之和为k的子串

寻找字符串中联系数字(全部都是1位数)之和为k的子串,如字符串"20210521"中和为6的子串为"105"。1.Java实现package com.test;public class SubString1 { public static void main(String[] args) { String str = "20210521"; int k = 6; String res = new SubString1().splitStr(s

2021-10-08 21:09:04 183

原创 自动化部署项目

一、部署流程介绍1、先上一下手绘导图,大致的流程图如下:(不喜勿喷呀)大致的部署流程是这样的:开发人员把做好的asp.net core项目代码通过git推送到gitlab,然后Jenkins通过 gitlab webhook (前提是配置好),自动从拉取gitlab上面拉取代码下来,然后进行build,编译、生成镜像、然后把镜像推送到Harbor仓库;然后在部署的时候通过k8s拉取Harbor上面的代码进行创建容器和服务,最终发布完成,然后可以用外网访问。(ps:看着我讲这么简单,但心里有许多小鹿在心里

2021-10-08 20:54:33 1823

原创 Linux代理服务器配置

说明:一般在工作中,公司内部使用内网的话,服务器也做了设置,不能直接拉取阿里、网易等的镜像,需要通过配置代理服务器进行转发访问,也就是说,服务器首先访问代理服务器,然后通过代理服务器拉取阿里、网易等的镜像信息。1.安装squid工具yum install squid -y2.修改配置文件vim /etc/squid/squid.conf## Recommended minimum configuration:## Example rule allowing access from y

2021-02-03 10:42:23 2444 4

原创 判断一个链表是否有环

1.思路思路一:从头节点开始,依次遍历节点中的每一个节点。每次遍历一个新的节点的时候,从头开始重新遍历之前的节点,用新的节点判断是否和之前的节点是否相同,如果相同,则说明该链表有环;如果不相等,继续遍历,直到最后一个节点,若不想等,则说明无环。实现的时间负责复杂度为O(n*n),空间复杂度为O(1)思路二:创建一个以节点ID为Key的HashSet集合,用来存储遍历过的节点的值,然后从头节点开始,一次遍历链表中的每一个节点的值,每遍历一个节点,就以新节点和存储在HashSet结合中的节点作比较,如果Ha

2021-01-31 21:10:12 233 4

原创 优先队列

1.简介​ 队列的特点是:先进先出(FIFO),也就是说,入队时,将新的元素置于队尾;出队时,队头元素最先被移出。​ 优先队列不再遵循先入先出的原则,它分为两种情况:(1)最大优先队列:无论入队顺序如何,都是当前最大的元素优先出队(2)最小优先队列:无论入队顺序如何,都是当前最小的元素优先出队二叉堆是实现优先队列得基础,二叉堆中堆节点的“上浮”和“下沉”的时间复杂度都是O(logn),所以优先队列的入队和出队操作的时间复杂度都是O(logn)2.代码实现import java.util.A

2021-01-30 11:32:37 4361 5

原创 二叉堆代码实现

文章目录1.简介2.二叉堆的代码实现2.1 构建堆2.2 上浮调整2.3 下沉调整2.4 测试方法1.简介​ 二叉堆本质上是一棵完全二叉树,它分为最大堆和最小堆。最大堆就是它里面的任何一个父节点的值,都大于或者等于它的左、右孩子节点的值。最小堆就是其中的任何一个父节点的值都小于或者等于它左、右孩子节点的值。二叉堆中的根节点叫做堆顶,最大堆和最小堆决定了:最大堆的堆顶是整个堆中最大的元素,最小堆的堆顶是整个堆中最小的元素。2.二叉堆的代码实现二叉堆虽然是一棵完全二叉树,但是它的存储方式并不是链式存储

2021-01-27 16:06:37 129

原创 Jenkins需要安装的插件

作为CI/CD的调度中心,Jenkins具有十八般武艺,目前已有1700多个插件,功能强大到似乎有点过分了。本文主要列出平时我们常用的插件。以下这两个网站是Jenkins所有的插件及说明Jenkins Plugins https://plugins.jenkins.ioJinkins Plugins Wiki https://wiki.jenkins.ioGit Parameter这是一个参数构建扩展,可以在构建的时候选择git的某一个分支来构建服务。Docker利用Docker容器动态创建J

2021-01-26 15:25:12 2918

原创 docker安装jenkins

文章目录1.拉取镜像2.创建文件并授权3.运行Jenkins容器4.查看Jenkins是否启动成功5.查看jenkins的日志6.配置镜像加速7.在浏览器中访问——你的ip:102408.查看密码9.输入密码登录成功10.如果没代理,选择跳过插件安装1.拉取镜像docker pull jenkins/jenkins注:没有指定tag时,默认拉取的时最新版本(latest)2.创建文件并授权创建Jenkins挂载目录并授权权限(我们在服务器上先创建一个jenkins工作目录 /var/jenki

2021-01-26 11:50:43 292 2

原创 docker安装mysql5.7

1.拉取mysql镜像docker pull mysql:5.7.322.查看本地镜像docker images 或者docker images mysql3.创建目录mkdir /usr/local/bin/docker/mysql/logsmkdir /usr/local/bin/docker/mysql/datamkdir /usr/local/bin/dcoker/mysql/conf4.创建my.cnf文件[mysql]#设置mysql客户端默认字符集default-c

2021-01-25 15:33:25 1230 2

原创 二叉树的遍历

文章目录1.构建一棵二叉树2.二叉树的遍历2.1递归方式实现2.1.1前序遍历2.1.2中序遍历2.1.3后序遍历2.1.4层序遍历2.2非递归方式实现2.2.1前序遍历2.2.2中序遍历2.2.3后序遍历2.2.4层序遍历1.构建一棵二叉树private static class TreeNode{ int data; TreeNode leftChild; TreeNode rightChild; TreeNode(int data){ th

2021-01-23 15:08:11 215 8

原创 单例模式

1.简介单例模式的特点:(1)单例类只能有一个实例​ (2)单例类必须自己创建自己的唯一实例​ (3)单例类必须给所有其他对象提供这一事例2.懒汉式#线程不安全,第一次类加载反应稍慢public class Singleton{ private static Singleton single= null; //构造方法私有化 private Singleton(){} public static Singleton getInstance(){ if(si

2021-01-22 16:15:12 140 1

原创 离线安装docker和k8s

1.docker的安装与配置1.1.下载所需的 docker 二进制文件(也可以去笔者百度网盘获取资源,链接在最下方)https://github.com/moby/moby/releases1.2.创建docker目录,上传并解压二进制包cd /usrmkdir dockercd dockerrz(选中上传准备好的docker二进制包)tar –zxvf docker-1.13.1.tgz1.3.将解压目录下的所有docker*文件复制到/usr/bin下cp /usr/docker

2021-01-14 14:25:26 705 3

原创 Java基础知识(待更新)

一、 集合框架常见的集合框架有哪些(1) Collection和Map接口是所有集合框架中最大的父接口(2) Collection接口的子接口有:List接口和Set接口(3) Map接口的实现类主要有HashMap、TreeMap、HashTable、Properties、ConcurrentHashMap(4) Set接口的实现类主要有HashSet、TreeSet、LinkedHashSet(5) List接口的实现类主要有ArrayList、LinkedList、Stack、Vect

2021-01-03 16:48:35 337

原创 使用POI实现Excel表格的导入导出

1.在pom.xml文件中到处依赖<dependencies> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.4</version> </dependency&g

2020-12-31 15:46:33 245

原创 Java线程池

1.什么是线程池?线程池是一种多线程处理形式,处理过程中将任务提交到线程池,任务的执行交由线程池来管理。如果每个请求都创建一个线程去处理,那么服务器的资源很快就会被耗尽,使用线程池可以减少创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。java.util.concurrent.Executors提供了一个 java.util.concurrent.Executor接口的实现用于创建线程池,多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器

2020-12-31 11:40:44 89

原创 sql优化

sql优化1.在表中建立索引,优先考虑where、group by使用到的字段;2.尽量避免使用select *,避免返回无用的字段而降低查询效率;3.尽量避免使用in或not in,会导致数据库引擎放弃索引进行全表扫描;优化方式:如果查询到的数据是连续的,可以考虑使用between…and…,如果是子查询,可以考虑使用exists4.尽量避免使用or,会导致数据库引擎放弃索引进行全表扫描5.尽量避免在字段开头进行模糊查询,会导致数据库引擎放弃索引进行全表扫描;优化方式:可以在字段后面进行模糊

2020-12-31 11:05:15 118

原创 自动化部署

文章目录一.简介1.K8S是什么?2.为什么要用K8S?3.使用K8S有哪些好处?4.环境构成二.服务器规划三.安装环境版本四.安装Docker环境五.安装docker-compose1.下载docker-compose文件2.为docker-compose文件赋予可执行权限3.查看docker-compose版本六.安装K8S集群环境安装K8S基础环境七.初始化Master节点八.初始化Worker节点九.重启K8S集群引起的问题1.Worker节点故障不能启动2.Pod崩溃或不能正常访问十.K8S安装i

2020-12-29 16:56:23 2537 3

空空如也

空空如也

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

TA关注的人

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