自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 使用jdbc查询mysql

使用jdbc查询mysql数据库

2024-08-06 17:42:43 162

原创 java工作常用

java工作常用代码,持续补充

2023-02-01 09:56:20 197

原创 mysql性能排查

慢日志-- 慢日志,slow_query_log 开关, slow_query_log_file 慢日志文件路径show variables like 'slow%';-- 开启慢日志set global slow_query_log='ON';-- 设置执行超过多久才记录慢日志show variables like 'long_query_time';set global long_query_time=5;-- 已出现慢日志的次数show global status like '%

2021-07-06 22:13:34 433

原创 异常 java.lang.IllegalStateException: Duplicate key

异常信息Exception in thread "main" java.lang.IllegalStateException: Duplicate key 3 at java.util.stream.Collectors.lambda$throwingMerger$0(Collectors.java:133) at java.util.HashMap.merge(HashMap.java:1254) at java.util.stream.Collectors.lambda$toMap$58(Col

2021-07-03 17:40:59 847

原创 java 线程池最佳实践

java线程池的使用创建线程池import lombok.extern.slf4j.Slf4j;import java.util.concurrent.*;import java.util.concurrent.atomic.AtomicInteger;// 线程池构建器// 队列满了之后才会创建第(corePoolSize+1)个线程, 而LinkedBlockingQueue 默认大小为int.Max,SynchronousQueue 大小为1// 默认队列满之后的拒绝策略是抛出异常,

2021-06-30 22:51:23 314

原创 mybatis sql拦截器(可用于自定义主键生成规则等情况)

自定义主键注解,使用在主键字段上import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;@Target({ElementType.FIELD})@Retention(RetentionPolicy.RUNTIME)public @in..

2021-04-26 22:33:36 577

原创 SpringBoot使用mybatis的最佳实践

基于SpringBoot 2.4.0, 使用mybatis, 数据库mysql增加如下依赖 <!-- 默认JDBC连接池为HikariCP, https://github.com/brettwooldridge/HikariCP--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId&.

2021-03-29 21:49:56 519

原创 idea自动添加版权许可证信息

idea设置版权许可证, 本例以apache2为例新建名为apache2的模板将以下内容中的[name of copyright owner]替换成你自己后, 复制到Copyright text, 点击ApplyCopyright $today.year [name of copyright owner]Licensed under the Apache License, Version 2.0 (the "License");you may not use this file exc

2021-03-29 21:42:58 2201

原创 Spring Cache 配置多级缓存

两级缓存: 本地缓存使用Caffeine, 远程缓存使用redis. 也可以只使用本地缓存或者只使用redis缓存基于SpringBoot 2.4.0, 依赖如下: <dependency> <groupId>com.github.ben-manes.caffeine</groupId> <artifactId>caffeine</artifactId> &l

2021-03-24 21:26:28 1385 1

原创 SpringBoot配置多数据源, 动态切换数据源.

springBoot配置多个数据源, 自定义策略动态切换数据源.本篇以mysql数据库主从同步,读写分离为例, 有两个数据源: 主数据源source,用于数据更新(update,insert,delete); 从数据源replica1用于数据查询基于springBoot2.4.0, junit5.7, 数据库连接池hikari国际运动的影响, 当前各开源项目已逐步清理master,salve,blacklist,whitelist等术语, mysql分别使用source,replica,blockl

2021-03-19 22:34:32 758 1

原创 go 实现 生产者消费者模型

go 生产者消费者模型package mainimport ( "log" "time")// go 生产消费者模型func main() { // 设置缓冲区大小 ch := make(chan int, 5) startTime := time.Now().Unix() log.Println("start") go provide(ch) time.Sleep(time.Second * 3) for data := range ch { // 接收到的数据为

2021-02-28 14:36:33 173

原创 k8s: 配置ingress的会话亲和

Ingress会话亲和,又称会话保持,粘性会话,指同一客户端的请求在一定时间内会被ingress路由到相同的pod处理. 本文控制器使用的是ingress-nginxingress默认的负载均衡策略是轮询, 验证如下使用浏览器连续访问9次ingress查看ingress日志, 可看到9次请求被轮询负载到不同pod处理配置会话亲和修改ingress, 增加如下内容nginx.ingress.kubernetes.io/affinity: cookie # 实现会话亲和.

2021-01-09 22:13:52 2340

原创 IE5迁移到IE11过程中遇到的一些问题

IE5迁移到IE11过程中遇到的一些问题document.getElementById(“idName”)IE11中严格区分idName的大小写,IE5不区分大小写,如果你在适配过程中遇到浏览器控制台报null错误, 就应该检查报错行是否idName大小写错误获取frame的写法变化IE5写法: document.frames(“frameName”)IE11写法:document.frames[“frameName”]使用xhr(XMLHttpRequest)时, .

2021-01-09 15:55:46 534 2

原创 k8s:获取pod的ip

获取pod ipspec: containers: - name: xxx env: # 获取pod ip,并赋值给容器内的环境变量POD_IP - name: POD_IP valueFrom: fieldRef: apiVersion: v1 fieldPath: status.podIP检查进入pod查看POD_IP:echo $POD_IPcook获取p

2021-01-06 21:17:23 6810 1

原创 k8s:简单部署应用

业务机器准备镜像DockerfileFROM openjdk:8-jre-alpine# 配置同级目录下jar包名字ENV JAR_NAME=awesome-java-0.1.jar# 工作目录/opt,jar包会被复制为/opt/app.jarWORKDIR /optCOPY $JAR_NAME app.jarEXPOSE 8080ENTRYPOINT ["java","-jar","/opt/app.jar"]将Dockerfile 与awesome-java-0.1.jar放

2021-01-06 00:21:17 877

原创 k8s: 设置kubectl命令的默认namespace

使用k8s过程中, 一般要新建命名空间作为工作空间, 如此执行kubectl命令时都要加-n参数指定命名空间, 这有点麻烦而且容易忘记, 本文教你设置工作空间为默认命名空间解决这个麻烦两种方法设置默认上下文的默认命名空间: kubectl config set-context default --namespace=${work_namespace}新建上下文并设置为默认上下文:新建上下文: kubectl config set-context ${work_context} --cluster

2021-01-04 23:22:44 6863

原创 k3s执行helm命令报错:Error: Kubernetes cluster unreachable: Get “http://localhost:8080/version?timeout=32s“

报错信息:Error: Kubernetes cluster unreachable: Get "http://localhost:8080/version?timeout=32s": dial tcp [::1]:8080: connect: connection refused报错原因: helm v3版本不再需要Tiller,而是直接访问ApiServer来与k8s交互,通过环境变量KUBECONFIG来读取存有ApiServre的地址与token的配置文件地址,默认地址为~/.kube/conf

2021-01-02 18:45:15 12691 3

原创 k3s安装

使用k3s搭建一个k8s的学习环境k3s官网文档: https://docs.rancher.cn/docs/k3s/_index/准备两台centos7的虚拟机,一台主机名为server,一台主机名为agent0, 使用ip addr 获得两台机器ip:server 192.168.160.130agent0 192.168.160.131k3s默认的容器运行时是containerd, 而国内docker更为流行, 我对docker也更熟悉一些, 所以在k8s未来也将抛弃docker的情

2020-12-29 00:17:20 1210

原创 Docker基础

一、入门三板斧What-Docker是什么Docker 是世界领先的软件容器平台,所以想要搞懂 Docker 的概念我们必须先从容器开始说起。容器是一种轻量级的、可执行的独立软件包,包含软件运行所需的所有内容:代码、运行时环境、系统工具、系统库和设置。容器虚拟化的是操作系统而不是硬件,是内核级的虚拟化,容器之间是共享同一套操作系统资源的。虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统。因此容器的隔离级别会稍低一些。Why-为什么需要用Docker、容器Docker 的镜像提供了

2020-12-22 23:31:15 581 2

原创 go开源web框架gin的简单使用

go开源web框架gin的简单使用代码:package mainimport ( "fmt" "github.com/gin-gonic/gin" "strconv")// 博客结构体 ,字段首字母必须大写,否则gin不能获取到值返回给前端// `json:"name"` 配置转json时字段的名字type Blog struct { Id uint64 `json:"id"` Name string `json:"name"`}var blogList []Blog

2020-12-15 23:04:16 356

原创 go中数组为值传递的验证及指针的简单使用

1. 数组默认为值传递package mainimport "fmt"func main() { arr := [3]int{} fmt.Println(arr) // replace(arr) fmt.Println(arr) // replaceByPointer(&arr) fmt.Println(arr)}// 数组默认为值传递(与java不同),所以此函数中对数组的改变不会影响原数组func replace(arr [3]int) { for i :=

2020-12-10 23:19:15 151

原创 go官网依赖包下载失败

连接golang.org 失败错误信息:package golang.org/x/net/html: unrecognized import path “golang.org/x/net/html”: https fetch: Get “https://golang.org/x/net/html?go-get=1”: dial tcp 216.239.37.1:443: connectex: A connection attempt failed because the connected par.

2020-12-07 23:05:37 464

原创 Go net/http包,原生http客户端使用

Go net/http包,原生http客户端使用http包提供的两个快速Get,Post请求的函数定义如下(go不支持函数重载)func Get(url string) (resp *Response, err error)func Post(url, contentType string, body io.Reader) (resp *Response, err error)func PostForm(url string, data url.Values) (resp *Resp

2020-12-03 22:35:46 393 4

空空如也

空空如也

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

TA关注的人

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