自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

刘富国的博客

刘富国的博客

  • 博客(80)
  • 资源 (4)
  • 收藏
  • 关注

原创 golang(gin)的全局统一异常处理,并统一返回json

1.定义Recover中间件package handlerimport ( "awesomeProject/Result" "github.com/gin-gonic/gin" "log" "net/http" "runtime/debug")func Recover(c *gin.Context) { defer func() { if r := recover(); r != nil { //打印错误堆栈信息 log.Printf("panic: %v\n", r

2020-06-13 16:03:48 16044 2

原创 GO使用阿里云 ,解决go get 下载项目慢或无法下载的问题

一、以下载beego为例#-v 可以展示下载安装过程中的详细信息go get -v github.com/astaxie/beego二、出现的问题(慢/无法下载/最终失败)三、解决方案1.使用golang开发,直接设置代理https://goproxy.io/2.使用其他工具 访问官网,参考官网教程设置:https://goproxy.io/或使用阿...

2020-05-21 11:41:53 20182 1

原创 使用pdfBox实现pdf转图片,解决中文方块乱码等问题

目录1.引入依赖2.pdf转图片工具类3.出现的问题4.问题解决1.引入依赖<dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox</artifactId> <version>2.0.13<...

2019-01-08 16:55:13 27547 44

原创 openfeign的熔断(hystrix)使用THREAD导致的线程间数据传递问题

openfeign的熔断(hystrix)使用THREAD方式,存在线程间数据传递的问题,这里使用阿里的 transmittable-thread-local ,解决线程间数据传递的问题

2022-07-06 10:11:08 1090 1

原创 一款快速在本地执行curl命令的效率提升插件(utools必装插件)

插件介绍作为程序员肯定听说过utools这个工具:官网utools拥有海量的插件,今天我们就来介绍这款名叫"curl"的插件场景在日常开发中,经常需要复制测试环境的curl在本地进行调试,或者需要快速执行curl命令传统方式需要五步copy浏览器中的curl命令打开文本编辑器手动进行替换域名复制新curl命令命令行执行使用该插件现在只需两步copy浏览器中的curl命令呼出utools,回车即可Github地址觉得不错,star一下使用效果预览...

2022-05-27 14:56:15 879 1

原创 VUE使用webpack插件实现自定义打包过程(vue.config.js)

该教程以复制文件为例一、package.json 引入插件 copy-webpack-plugin "devDependencies": { "copy-webpack-plugin": "^11.0.0", },二、vue.config.js配置插件const {defineConfig} = require('@vue/cli-service')const CopyWebpackPlugin = require("copy-webpack-plugin")module.ex

2022-05-20 17:57:34 1468

原创 WEB端代码文本编辑器ACE的使用指南(附代码)

快速导航一、ACE的介绍二、快速开始1. package.json引入ace-builds2. vue页面引入相应script3. 初始化ace编辑器4.展示效果三、进阶使用一、ACE的介绍Ace是一个用JavaScript编写的可嵌入代码编辑器。它与Sublime,Vim和TextMate等原生编辑器的功能和性能相匹配。它可以很容易地嵌入到任何网页和JavaScript应用程序中ace官网github地址(ace: 项目源码)github地址(aceBuild: 构建后的代码,方便引入)

2022-05-17 10:05:46 4427 16

原创 Spring JMX注解的使用方式:@ManagedResource @ManagedOperation @ManagedAttribute

在日常开发过程中,经常会遇到需要加字段、加表的情况,不可避免的就需要去刷数据,常用的方法是价格http接口或dubbo接口,外部调用触发割接程序。这里介绍一直更简单的方式,使用spring的注解,把割接程序暴露给jmx,直接用工具连jvm,查看MBean执行割接方法即可。@ManagedResource: 加在Class上,Spring指示向 JMX 服务器注册类的实例**@ManagedOperation:**加在Method上,Spring指示将指定方法公开为 JMX 操作(仅get/set方.

2021-09-08 16:41:44 3074 1

原创 JVM实战学习——排查java程序 死锁(jstack)

JVM实战学习——排查java程序 磁盘IO占用过高、CPU占用过高、内存占用过高(pidstat)一、排查cpu高占用1.示例代码使用以下代码,启动的服务会产生cpu资源大量占用的情况1)死锁程序2)启动类2.查询项目进程1)使用 jps 命令查询项目启动的进程[root]# jps -l22640 study-java-jvm-app-1.0-SNAPSHOT.jar ## 其中 22640 就是项目进程1349 -- process information unavaila

2021-05-17 11:41:55 292

原创 JVM实战学习——排查java程序 磁盘IO占用过高、CPU占用过高(pidstat)

JVM实战学习——排查java程序 磁盘IO占用过高、CPU占用过高、内存占用过高(pidstat)一、排查cpu高占用1.示例代码使用以下代码,启动的服务会产生cpu资源大量占用的情况1)占有大量CPU资源2)启动类2.查询项目进程1)使用 jps 命令查询项目启动的进程[root]# jps15539 jar ## 其中15539就是项目进程1349 -- process information unavailable15673 Jps2)或者使用 ps -ef |

2021-05-14 13:33:12 4669 1

原创 五、设计模式——接口隔离原则

客户端不应该被迫依赖于它不使用的方法(接口根据模块/业务拆分)

2020-08-18 15:16:24 616

原创 四、设计模式——单一职责原则

一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分(类/方法要拆解的较细一些,便于重用)

2020-08-18 15:14:54 225

原创 三、设计模式——依赖倒置原则

高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象(要面向接口编程,不要面向实现编程)

2020-08-18 15:11:55 255

原创 二、设计模式——里式替换原则

继承必须确保超类所拥有的性质在子类中仍然成立(不要重写父类方法)

2020-08-18 15:05:48 184

原创 一、设计模式——开闭原则

软件实体应当对扩展开放,对修改关闭(通过接口或者抽象类为软件实体定义一个相对稳定的抽象层)

2020-08-18 15:03:45 190

原创 微信小程序 组件无法使用全局样式 (app.wxss)

1. 当我们在开发微信小程序时:2. 通常会使用一些第三方的UI组件库,或者自己封装了一些全局的样式引入在app.wxss中;3. 这时候如果使用自定义组件的话,会发现全局样式无法使用;4. 只要在对应组件的js文件中设置addGlobalClass属性为true即可Component({ options: { addGlobalClass: true }})...

2020-08-05 10:02:56 5418 1

原创 微信小程序storage操作报错,判断是否能取到值

微信小程序wx.getStorage报错,判断是否能取到值1.取不到值时,控制台报错2.解决办法:添加.catch(err=>{})捕获异常 wx.getStorage({ key: 'storageKey' }).then(data => { //能在storage中取到值 }).catch(err => { //storage取不到值 }) }...

2020-07-10 08:52:42 1920

转载 教你如何修改运行中的docker容器的端口映射

教你如何修改运行中的docker容器的端口映射     在docker run创建并运行容器的时候,可以通过-p指定端口映射规则。但是,我们经常会遇到刚开始忘记设置端口映射或者设置错了需要修改。当docker start运行容器后并没有提供一个-p选项或设置,让你修改指定端口映射规则。那么这种情况我们该怎么处理呢?今天Docker君教你如何修改运行中的docker容器的端口映射?方法一:删除原有容器,重新建新容器这个解决方案最为简单,把原来的容器删掉,重新建一个。当然这次不

2020-07-02 16:14:14 501 1

转载 Windows 10 子系统Linux重启(不重启Win10)

Windows 10 子系统Linux重启(不重启Win10)net stop LxssManagernet start LxssManager

2020-07-02 15:43:42 1204

原创 golang(gin) 接入jwt,使用token验证身份

1)这里使用开源的 jwt-go1.token 工具类package handlerimport ( "awesomeProject/utils" "github.com/dgrijalva/jwt-go" "github.com/gin-gonic/gin" "time")//用户信息类,作为生成token的参数type UserClaims struct { ID string `json:"userId"` Name string `json:"name"` P.

2020-06-13 17:37:17 7886 8

原创 golang (go) 实现热部署的两种方式(超简单)

1. 使用 fresh 实现热部署# 安装 fresh$ go get github.com/pilu/fresh# 跳转到项目目录,例如项目名为‘myapp’$ cd /path/to/myapp# 启动$ fresh2. 使用 gin 实现热部署# 安装 fresh$ go get github.com/codegangsta/gin# 验证gin是否安装成功$ gin -h# 启动$ gin run main.go...

2020-06-05 15:20:33 5840 1

原创 kubeadm token 24小时过期,重新生成token

1.kubeadm join一个新的worker node的时候报错:Unauthorized这是因为token已经失效了,默认情况下,kubeadm init产生的token的有效期是24个小时。你可以使用下面的命令来重新产生token:kubeadm token create --print-join-command...

2020-05-30 11:41:40 2898

原创 如何使用kubeadm安装kubernetes(K8S)——1.实践环境准备

动手前必读1、使用公有云服务器的同学看这里用云服务器的同学们,跳过keepalived的章节(第二章第一节),不要用虚拟ip(云环境一般都不支持自己定义虚拟ip)就直接把虚拟ip设置为第一个master的ip就可以了(global-config.properties文件中配置【下文第五节 - 准备配置文件】)。PS:如果是一定要高可用的话可以购买云商的负载均衡服务(比如阿里云的SLB),把backends设置成你的三个master节点,然后虚拟ip就配置成负载均衡的内网ip即可。一、实践环境准备

2020-05-21 18:23:11 376

原创 如何使用kubeadm安装kubernetes(K8S)——4.部署dashboard

四. 部署dashboard1. 部署dashboard# 上传dashboard配置$ scp target/addons/dashboard-all.yaml <user>@<node-ip>:/etc/kubernetes/addons/# 创建服务$ kubectl apply -f /etc/kubernetes/addons/dashboard-all.yaml# 查看服务运行情况$ kubectl get deployment kubernetes-d

2020-05-21 08:56:31 207

原创 如何使用kubeadm安装kubernetes(K8S)——3.集群可用性测试

三、集群可用性测试1. 创建nginx ds # 写入配置$ cat > nginx-ds.yml <<EOFapiVersion: v1kind: Servicemetadata: name: nginx-ds labels: app: nginx-dsspec: type: NodePort selector: app: nginx-ds ports: - name: http port: 80 targetPort

2020-05-21 08:55:50 176

原创 如何使用kubeadm安装kubernetes(K8S)——2.搭建高可用集群

二. 搭建高可用集群1. 部署keepalived - apiserver高可用(任选两个master节点)重要:如果是云环境,一般不支持自定义虚拟ip。这一步可以跳过了。下面所有用到虚拟ip的地方设置为其中某一台master的ip即可。1.1 安装keepalived# 在两个主节点上安装keepalived(一主一备)$ yum install -y keepalived1.2 创建keepalived配置文件# 创建目录$ ssh <user>@<master-

2020-05-21 08:55:04 246

原创 如何使用kubeadm安装kubernetes(K8S)

kubernetes-ha-kubeadm项目介绍项目致力于让有意向使用原生kubernetes集群的企业或个人,可以方便的、系统的使用kubeadm的方式搭建kubernetes高可用集群。并且让相关的人员可以更好的理解kubernetes集群的运作机制。集群部署过程严格按照官方文档的流程。非科学上网的同学同样适用。持续跟进kubernetes最新版本软件版本os centos7.6(ubuntu也适用,需要替换部分命令)kubernetes 1.14.0etcd 3.3.10

2020-05-19 17:07:08 335

原创 我的Mysql学习笔记

一、为什么要使用索引?使用索引查找数据,能够避免全表扫描,提升查找效率。二、什么样的信息能成为索引?主键、唯一键等能让数据具备一定区别性的字段三、索引的数据结构?主流:B+ tree,小众:hash bitMap(oracle)四、密集索引和稀疏索引的区别?密集索引:每个搜索码值都对应一个索引值(索引跟数据一同存储)稀疏索引:只为某些搜索码值对应索引值(索引跟数据分开存储)五、m...

2020-05-05 19:52:57 180

转载 spring事务的7种传播行为

原文链接:https://blog.csdn.net/soonfly/article/details/70305683

2020-01-19 10:30:17 189

原创 springboot 使用日志切面(aspect) 监控请求 和 返回

gitee demo地址

2020-01-02 09:41:43 1124

原创 linux服务开机自启动、注册系统服务详解

linux服务开机自启动、注册系统服务新建文件servername.service,例如doowe.service编写服务配置,spring boot服务修改对应的Description、WorkingDirectory、ExecStart即可编写代码service文件[Unit]# 服务描述Description=doowe [Service]# 服务工作目录Workin...

2019-12-30 14:24:49 385

转载 正向代理与反向代理的区别

1、前言  最近工作中用到反向代理,发现网络代理的玩法还真不少,网络背后有很多需要去学习。而在此之前仅仅使用了过代理软件,曾经为了访问google,使用了代理软件,需要在浏览器中配置代理的地址。我只知道有代理这个概念,并不清楚代理还有正向和反向之分,于是赶紧学习一下,补充一下知识。首先弄清楚什么是正向代理,什么是反向代理,然后是二者在实际使用中展示的方式是什么样的,最后总结一下正向代理用来做什...

2019-12-06 13:45:10 196

原创 开发微信第三方平台所遇到的坑

开发微信第三方平台所遇到的坑一、逻辑隐藏规则二、开发隐藏规则三、方便开发的技巧一、逻辑隐藏规则第三方平台全网发布后,不可删除未全网发布也有十分钟的推送,但取不到ticket申请全网发布/覆盖现网全网发布,不可撤销,不可编辑,只能等待申请结果当申请第三方平台审核成功时(未发布,秒审批通过)二、开发隐藏规则未全网发布也有十分钟的推送已发布,未覆盖现网全网发布,当更改授权事件接收...

2019-10-10 10:34:04 576

原创 springboot整合rabbitmq发送延时消息

手把手教springboot整合rabbitmq发送延时消息

2019-10-08 13:35:14 667 1

原创 手把手教你 springboot整合mybatis-plus

目录一、引入依赖二、 数据库相关配置三、编写实体类四、编写mapper类五、使用方法(具体的条件构造器参考https://mp.baomidou.com/guide/wrapper.html)六、service层官方网站:https://mp.baomidou.com/guide/一、引入依赖 <dependency> &lt......

2019-06-11 10:37:08 612

原创 Oracle数据库主键自增的两种方式(SEQUENCE和触发器)

1.准备工作创建oracle数据库表,用户表 SYS_USERS 其中user_id为主键-- Create tablecreate table SYS_USERS( user_id NUMBER(9) not null, user_name VARCHAR2(20) not null, user_pwd VARCHAR2(20) not null,...

2019-04-29 11:07:18 12488

原创 我的docker学习笔记

docker语法登录docker:命令释义docker login登录docker logout登出镜像相关操作:命令释义docker search (keyword)从Docker Hub查找镜像docker pull (repository)从Docker Hub拉取镜像docker tag (image) (use...

2019-04-19 09:34:59 126

原创 mysql慢查询,处理sql语句执行速度慢问题

一、根据慢日志定位慢查询sql# 临时开启慢日志(如重启数据库,还会改为默认值off,如需永久改需要修改配置文件)show variables like '%slow_query_log%' ;(如果查询出的值为off则需要开启慢日志)set global slow_query_log=on;(开启慢日志)# 设置1秒以上为慢查询(如重启数据库,还会改为默认值off,如需永久改需要...

2019-03-04 17:30:45 4040

原创 springboot 使用rabbitmq消息队列

目录1.引入rabbitmq依赖2.application.yml配置文件3.消息接收端的三种实现4.发送端的实现1.引入rabbitmq依赖 &lt;!--rabbitmq--&gt; &lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/......

2019-02-27 17:39:31 684

转载 linux下安装rabbitmq

文章转载自:https://www.cnblogs.com/web424/p/6761153.html一、RabbitMQ概念RabbitMQ是流行的开源消息队列系统,是AMQP(Advanced Message Queuing Protocol高级消息队列协议)的标准实现,用erlang语言开发。RabbitMQ据说具有良好的性能和时效性,同时还能够非常好的支持集群和负载部署,非常适合在较...

2019-02-25 14:24:14 155

calico-rbac-kdd.yaml

calico的配置文件,用于博客内容的超链接。calico的配置文件,用于博客内容的超链接。 。calico的配置文件,用于博客内容的超链接。calico的配置文件,用于博客内容的超链接。 。calico的配置文件,用于博客内容的超链接。calico的配置文件,用于博客内容的超链接。 。

2020-05-25

calico.yaml

calico的配置文件,用于博客内容的超链接。calico的配置文件,用于博客内容的超链接。calico的配置文件,用于博客内容的超链接。calico的配置文件,用于博客内容的超链接。calico的配置文件,用于博客内容的超链接。calico的配置文件,用于博客内容的超链接。

2020-05-25

IOC&AOP的jar包

AOP为Aspect Oriented Programming的缩写,意为:面向切面编程(也叫面向方面),可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。

2017-09-14

navicat premium v12.0.11中文/英文/繁体

navicat premium v12.0.11中文/英文/繁体,文本文档里面是百度云的链接。Navicat 12 具备多项改进和新功能,能满足你对数据库开发的需求。过百种增强的功能和耳目一新的界面,让你以崭新的方式创建、管理和维护数据库。

2017-09-14

空空如也

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

TA关注的人

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