自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL主从复制搭建

1台master一台slavemaster配置在/etc/my.cnf配置文件的[mysqld]下增加如下两行配置log-bin=mysql-binserver-id=1创建用于数据同步的账号CREATE USER 'repl'@'192.168.135.%' IDENTIFIED BY '123456';GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.135.%';flush privileges;查看master状态show

2021-03-02 15:08:52 202

原创 设计模式(行为型)---观察者模式

概念观察者模式的定义:多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。简单来说就是被观察对象持有观察者,当被观察对象发生变化时调用观察者方法通知观察者观察者模式中的四种角色:1.抽象主题,即被观察者,实现观察者的添加,删除,与通知观察者的方法2.具体主题,继承抽象主题3.抽象观察者,一般是一个接口,定义update方法,具体主题发生改变时调用该方法通知观察者4.具体观察者,实现抽象观察者接口举例说明JDK对于观察者模式已经有相应的类支持

2021-01-27 11:08:53 244

原创 设计模式(结构型)---桥接模式

概述桥接模式的定义:将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。举例说明假设有两种包,品牌分别是Coach与Prada,种类有钱包,单肩包,双肩包,颜色有红色,黄色,蓝色,那么一共有233=18种,需要新建18个类来买描述这些产品吗,如果颜色又增加了1个黑色,一共有234=24种,描述产品的类的数量会迅速膨胀,为避免类的数量激增,需要使用组合关系代替继承关系关系图如下定义Color接口/** * 颜色 */publi

2021-01-15 14:04:50 228

原创 设计模式(结构型)---适配器模式

概述适配器模式将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。适配器模式分为三种:接口适配器,类适配器,对象适配器举例说明接口适配器有一个票务接口/** * 票务接口 */public interface Ticketing { //查询 void queryTicket(); //支付 void payment(); //退票 void refundTicket(); //

2021-01-14 14:37:50 107

原创 设计模式(创建型)---建造者模式

概述建造者模式将一个对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。核心构成1.Builder:抽象建造者,定义多个通用方法和构建方法2.ConcreteBuilder:具体建造者,实现Builder接口,可以有多个3.Director:指挥者,控制建造流程,并交给具体建造者,由具体建造者去创建对象4.Product:产品,需要被建造的类举例说明以手机为例/** * 产品 */public class Phone { //cpu private Stri

2021-01-12 17:39:03 75

原创 设计模式(创建型)---原型模式

概述原型模式的定义:以一个已经创建的实例作为原型,通过复制该对象来创建一个和原型相同或相似的新对象。优点1.复制在性能上比直接 new 一个对象更加优良。2.可以使用深拷贝方式保存对象的状态,使用原型模式将对象复制一份,并将其状态保存起来,可辅助实现撤销操作。缺点1.需要为每一个类配备一个克隆方法,对已有的类进行改造时,需要修改源代码,违背了“开闭原则”2.在实现深克隆时需要编写较为复杂的代码,且当对象之间存在多重的嵌套引用时,需要对每一层对象对应的类都必须支持深克隆应用场景当创建新对象成

2021-01-11 18:07:21 65

原创 设计模式(创建型)---抽象工厂模式

抽象工厂模式是基于简单工厂模式与工厂方法模式的拓展。举例说明键盘与鼠标都属于设备,ThinkPad生产键盘和鼠标,Mac也生产键盘和鼠标,那么产品关系如下代码如下:键盘/** * 键盘 */public interface Keyboard { /** * 键盘可以输入文字 */ void type();}鼠标/** * 鼠标 */public interface Mouse { /** * 鼠标可以点击

2021-01-09 21:45:23 80 2

原创 设计模式(创建型)---工厂模式

工厂模式提供了一种创建对象的最佳方式,创建对象时不会对客户端暴露创建逻辑。分类工厂模式有 3 种不同的实现方式1.简单工厂模式:传入相关的类型来返回相应的类,这种方式比较单 一,可扩展性相对较差;2.工厂方法模式:通过实现类实现相应的方法来决定相应的返回结果,这种方式的可扩展性比较强;3.抽象工厂模式:基于上述两种模式的拓展,且支持细化产品简单工厂模式核心组成1.抽象类:简单工厂模式所创建对象的父类2.若干个抽象类的子类:简单工厂模式创建的就是这些类的对象3.工厂类:简单工厂模式的核心,

2021-01-08 16:49:41 84

原创 设计模式(创建型)---单例模式

分类单例模式分为懒汉与饿汉懒汉:懒加载,延迟创建对象饿汉:提前创建对象实现步骤1.私有化构造方法2.对外提供一个获取单例的方法单例模式(懒汉)第一种方式/** * 单例模式-懒汉 * 实现步骤1.私有化构造函数 2.对外提供一个获取实例的方法 */public class SingletonLazy { private static SingletonLazy instance; /** * 私有化构造方法 */ private S

2021-01-07 17:14:04 60

原创 Redisson实现分布式锁

Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。它不仅提供了一系列的分布式的Java常用对象,还提供了许多分布式服务。其中包括(BitSet,Set,Multimap,SortedSet,Map,List,Queue,BlockingQueue,Deque,BlockingDeque,Semaphore,Lock,AtomicLong,CountDownLatch,Publish / Subscribe,Bloo...

2020-12-18 17:02:45 150 1

原创 Spring中Bean的生命周期

Spring中Bean的生命周期分为4个阶段1.实例化2.属性复制3.初始化4.销毁源码分析进行源码分析前需要了解两个重要的接口,BeanPostProcessor与InstantiationAwareBeanPostProcessor,两者关系如下InstantiationAwareBeanPostProcessor继承了BeanPostProcessor两个接口中的方法如下BeanPostProcessorInstantiationAwareBeanPo

2020-12-09 17:31:04 364 1

原创 CentOS7安装Redis5.x

官网https://redis.io/download选择stable(稳定版)下载安装包wget https://download.redis.io/releases/redis-6.0.9.tar.gz解压安装包tar -zxvf redis-6.0.9.tar.gz进入解压后的目录cd redis-6.0.9编译代码make编译完成后进入src目录cd src/启动Redis./redis-server启动成功,等待连接再打开一个

2020-11-13 18:00:41 190

原创 RocketMQ主从集群搭建

虚拟机中已安装了RocketMQ,安装过程参考https://blog.csdn.net/supreme000/article/details/109117577使用VMware从已经安装好RocketMQ中克隆两台虚拟机作为本次集群搭建使用的机器两台机器ip分别为192.168.135.131(主),192.168.135.132(从)1.修改配置修改runserver.sh与runbroker.sh脚本中-Xms, -Xmx, -Xmn三个参数的大小,根据自己的内存合理分配我的是分别

2020-10-21 03:29:31 617

原创 SpringBoot集成RocketMQ(完整demo)

RocketMQ本地源码安装https://blog.csdn.net/supreme000/article/details/109117577RocketMQ可视化控制台rocketmq-externals安装https://blog.csdn.net/supreme000/article/details/109156523以上两步都完成后,将RocketMQ集成到SpringBoot中新建一个SpringBoot工程pom文件如下<?xml version="1.0" enc

2020-10-20 10:54:48 3791

原创 RocketMQ可视化控制台rocketmq-externals安装

1.下载安装包,安装rocketmq-externals地址https://github.com/apache/rocketmq-externals虚拟机没安装Git,下载zip包wget -O rocketmq-externals-master.zip https://github.com/apache/rocketmq-externals/archive/master.zip下载完后解压zip包unzip rocketmq-externals-master.zip进入rock

2020-10-19 13:35:31 7456 4

原创 RocketMQ本地源码安装

1.从rocketMQ官网下载源码包并安装地址https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.7.1/rocketmq-all-4.7.1-source-release.zipwget http://mirror.bit.edu.cn/apache/rocketmq/4.7.1/rocketmq-all-4.7.1-source-release.zip解压安装包unzip rocketmq-all-4.7.1-source-re

2020-10-16 17:37:00 1215

原创 Linux安装配置Maven

maven官网https://maven.apache.org/download.cgi1.下载安装包wget https://mirror.bit.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz解压安装包tar -zxvf apache-maven-3.6.3-bin.tar.gz 2.配置Maven环境变量cd /etc/profile.d/touch maven_exp

2020-10-16 15:22:28 134

原创 DUBBO RPC Service参数校验

接上篇文章https://blog.csdn.net/supreme000/article/details/109049545完善service参数校验service-api模块依赖 <dependencies> <!-- 参数校验相关依赖 --> <dependency> <groupId>javax.validation</groupId> &l

2020-10-13 17:59:47 892

原创 SpringBoot集成DUBBO,完整demo

上篇文章完成了ZooKeeper集群的搭建https://blog.csdn.net/supreme000/article/details/109021543本篇文章实现SprigBoot与DUBBO的集成,用搭建好的ZooKeeper集群作注册中心概述​​​​​​​工程结构一个父工程,三个子模块,service-api定义接口与数据结构,service-provider与service-consumer模块集成service-api模块,service-provider作为服务生产者实

2020-10-13 14:48:16 771 1

原创 Linux搭建单机多进程zookeeper集群

1.ZooKeeper是什么ZooKeeper 是一个开放源码的分布式协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。分布式应用程序可以基于 Zookeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。2.ZooKeeper集群搭建需要先安装配置好java环境安装包下载地址https://archive.a

2020-10-12 13:44:10 380

原创 linux下迁移mysql数据目录

mysql默认的数据目录是/var/lib/mysql,当数据量过大时需要迁移到其它目录操作如下:1.备份数据库mysqldump -u saas -p 数据库名 > 脚本名.sql2.停掉mysql服务进程service mysqld stop3.移动数据目录这里将数据目录移动到/data/下mv /var/lib/mysql /data/ 4.修改/etc/my.cnf配置文件修改datadir与socket两个属性的值改为迁移后的目录# d

2020-08-10 17:54:04 526

原创 使用Mybatis流式查询避免OOM

使用mybatis查询数据库,当查询出的数据量过大时会出现OOM异常,可以用流式查询对此类问题进行处理,使用方法如下再mapper或dao接口中定义查询方法public interface IPassInfoDao { void queryAllPassInfo(ResultHandler<IPassInfo> iPassInfoResultHandler);}ResultHandler用来处理查询到的数据,流式查询方法必须是void类型XML:

2020-07-22 16:54:30 2097 1

原创 Linux服务器cpu占用率100%问题定位

top命令查看cpu使用情况,按1查看每个cpu核心的使用情况如图,有一颗cpu的占用率达到100%,进程pid是3909使用top -H -p pid查看该进程下线程占用cpu的情况可以看到是pid为3958的线程导致cpu占用率较高使用jstack工具导出堆栈信息jstack pid > error.log将3958转换为16进制f76查找该线程的堆栈信息grep -A 15 0xf76 error.log定位到具体的代码即可...

2020-06-28 10:57:43 865

原创 springboot中使用cookie

1.cookie是什么cookie是浏览器访问服务器后由服务器生辰并传给浏览器的一种数据,浏览器会保存服务器传给它的cookie并且每次访问服务器都会带上cookie2.cookie的使用一般是登陆时前端请求后端接口,后端生成cookie并把常用值放进cookie,将cookie放到response中返回给浏览器demo如下package com.example.test.controller;import org.springframework.stereotype.Contro

2020-05-18 17:26:15 2994

原创 mysql truncate

delete from 会记录日志提交事务,如果数据很多会执行很慢Truncate table 表名快速删除

2020-04-21 16:16:43 138

原创 MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction异常解决

系统无法登陆,查询日志发现执行update语句时有如下报错### Cause: com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction; Lock wait timeout exceeded; try resta...

2020-04-21 16:13:09 939

原创 mysql常用命令收集汇总笔记

1.查询所有表的数据容量SELECT table_schema AS '数据库', table_name AS '表名', table_rows AS '记录数', TRUNCATE ( data_length / 1024 / 1024, 2 ) AS '数据容量(MB)', TRUNCATE ( index_length / 1024 / 1024, 2 ) AS '索引容量(...

2020-04-21 15:56:34 146

原创 CentOS安装OpenJDK1.8

OpenJDK官网给出的安装方法我的系统是CentOS,属于Red Hat的一种,所以使用第二种方法安装查询yum源中的jdk版本yum list | grep jdk安装openjdk1.8yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel根据第一张图的官方说明,java-1.8.0-openjdk...

2020-04-02 14:33:49 5435

原创 CentOS7安装MySql5.7

部署应用时用的比较多,总结一下。1.查看是否安装有mariadb,若已经卸跳过此步骤或没有安装CentOS7自带mariaDBrpm -qa | grep -i mariadb查询mariadb相关信息;rpm参数,q询问模式,a查询所有套件;grep参数,i忽略大小写若有相关信息输出,则有mariadb卸载mariadbyum remove maria...

2020-04-01 01:25:57 88

原创 Linux发送HTTP请求

exec 4<> /dev/tcp/www.baidu.com/80建立socket连接,这里的数字4相当于是java中的一个Socket对象,<>表示输入输出查看/proc/$$/fd可以发现如下内容,$$表示当前进程的PID,012分别代表输入,输出,错误echo -e 'GET / HTTP/1.0\n' 1>& 4使用标准输出1...

2020-03-22 18:30:51 625

原创 CentOS7卸载GitLab

1.在管理员权限下执行gitlab-ctl stop停止gitlab服务2.卸载gitlabrpm -e gitlab-cegitlab-ce社区版gitlab3.查看gitlab进程ps -ef | grep gitlab守护进程是runsvdir -P /opt/gitlab/service log,使用kill PID终止该进程4.删除相关文件...

2020-03-06 10:50:58 647

原创 使用winsw将springboot程序jar包注册为windows服务

winsw下载地址https://github.com/kohsuke/winsw/releases下载.exe文件,这个exe文件的名字可以根据自己的需要修改将程序打成jar包,winsw使用只需要配置一个与.exe文件同名的xml文件即可这里把.exe文件与xml文件重命名demo.exe与demo.xml主要是demo.xml的内容,如下name与descript...

2020-03-04 23:27:35 419

原创 mybatis生成器的配置与使用

mybatis生成器可以便捷的根据数据库表结构生成代码。需要两个配置文件,两个java类即可。1.generator.properties配置数据库连接jdbc.driverClass=com.mysql.cj.jdbc.Driverjdbc.connectionURL=jdbc:mysql://localhost:3306/iot?useUnicode=true&charac...

2020-02-25 22:48:02 331

原创 Centos7搭建GitLab服务器

1.安装相关依赖yum -y install policycoreutils openssh-server openssh-clients postfix policycoreutils-python主要是邮件服务postfix2.修改 /etc/postfix/main.cf的设置vi /etc/postfix/main.cf添加配置inet_interfaces =...

2020-02-12 11:32:36 98

原创 mysql中文显示乱码

show variables like 'character_set_%';查看当前的字符集信息;部分不是utf8编码导致中文乱码set character_set_client=utf8;set character_set_connection=utf8;set character_set_results=utf8;设置为utf8编码,数据显示正常...

2020-01-16 00:13:41 112

原创 本地git配置多个git账号

ssh-keygen -t rsa -C "你的邮箱"回车,输入文件名,输入密码,再次输入密码有多个账号的话重复以上步骤,密钥生成完后在.ssh目录下创建config文件内容如下:Host github.com Hostname github.com User user1 PreferredAuthentications publickey Ide...

2020-01-08 16:42:14 419 1

原创 java回调

有两个类A和B,一个接口CallBack,A实现CallBack接口,在A类中调用B类的方法,该方法参数中有CallBack类型的参数,则B类中被调用的方法可以通过该参数调用A中实现CallBack的方法;例如:有A类public class A implements CallBack{ @Override public void alreadyFinish(Stri...

2020-01-08 15:13:39 76

原创 Spring实现ApplicationContextAware接口获取容器中的实例,在static方法中调用service

package com.newgrand.dkinterfacetest.test;import org.springframework.beans.BeansException;import org.springframework.context.ApplicationContext;import org.springframework.context.ApplicationConte...

2020-01-07 17:21:55 284

原创 SpringBoot集成Flyway实现数据库版本管理

目录结构:pom文件: <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifact...

2019-12-19 15:48:25 428

原创 @Scheduled注解的cron表达式的值从yml读取

在yml文件中配置cron表达式的值:blog: sche: cron: 0 0/1 * * * ? 在@Scheduled注解中引用:@Scheduled(cron = "${blog.sche.cron}")可以直接读取yml文件中的值,不需要配置config类...

2019-11-27 09:28:43 4149 2

空空如也

空空如也

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

TA关注的人

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