- 博客(68)
- 资源 (10)
- 收藏
- 关注
原创 使用jvisualvm工具排查springboot工程内存溢出
最近在做压力测试时,经常会出现内存溢出,总结一下排查步骤。一、使用如下命令启动springboot工程nohup java -jar -Dcom.sun.management.jmxremote.port=9000 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=10.20.23.xxx springbootxx
2020-08-05 15:48:56
1824
原创 docker中安装mysql
一、拉取mysql镜像,这里示例mysql5.7。命令:docker pull mysql:5.7二、创建一个mysql的容器docker run --name "mysql" -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7表示容器名字为mysql,本地机器的端口为3307,容器的端口为3306,数据库的密码为root三、进入容器docker exec -it mysql /bin/bash四、登录mysql 。
2020-07-24 09:48:55
256
原创 linux安装docker
一、使用 uname -r 查看系统的内核版本,3.10即可[root@VM-0-7-centos ~]# uname -r3.10.0-862.el7.x86_64二、检查是否已经安装[root@VM-0-7-centos ~]# yum list installed | grep docker如果没有列表,说明没有安装过。三、使用yum命令安装docker[root@VM-0-7-centos ~]# yum -y install docker如果出现如下界面,说明安
2020-07-24 09:32:58
608
原创 Spring Cloud eureka服务搭建
一、创建springboot工程、Eureka注册中心1、引入maven依赖<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.3.RELEASE</version> &
2020-06-21 13:35:22
199
原创 Mysql报错:Specified key was too long; max key length is 767 bytes
在执行mysql脚本时,报错:Specified key was too long; max key length is 767 bytes。解决办法:一、修改mysql的字符集为uft8再次执行时正常。二、mysql的字符集为utf8mb41、先检查一下数据库被限制了索引的大小SHOW variables like ‘innodb_large_prefix’;如果...
2020-03-02 13:40:02
30980
8
原创 Springboot新增配置文件
一、在resources下面创建test.properties文件内容如下:com.test.name=zhangyscom.test.age=20二、创建Userpackage com.hundsun.springcloud.bean;import org.springframework.boot.context.properties.ConfigurationProp...
2019-06-05 13:23:11
1503
原创 Springboot配置文件随机生成内容
一、创建application.yml文件my: name: hundsun age: 12 number: ${random.int} uuid: ${random.uuid} max: ${random.int(10)} value: ${random.value} greeting: hi,I'm ${my.name}二、创建ConfigBean类...
2019-06-05 13:12:35
989
原创 SpringBoot使用junit测试
一、引入maven依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>...
2019-06-05 13:08:25
897
原创 Drools规则引擎demo
一、eclipse安装drools插件 1、插件下载地址:http://download.jboss.org/drools/release/7.22.0.Final/ 2、将下载完的插件解压到本地3、打开eclipse,选择help-> install new software。打开后点击Add按键,在弹出的对话框内点击Local按键,选择E:\SoftWa...
2019-05-30 09:29:37
976
原创 在一台Linux机器上安装Zookeeper集群
一、安装jdk、并配置环境变量,安装jdk就不再叙述。需要注意的是,jdk的版本和zookeeper的版本要匹配,自己在安装的过程中,使用Zookeeper3.5.4时,发现jdk7不支持,然后下载了Zookeeper3.4.13版本。一、新建zookeeper文件夹,并且在zookeeper文件夹下面新建server1、server2、server3文件夹二、进入server1文件夹...
2019-03-18 18:55:51
3515
3
原创 Springboot在程序启动之前特殊处理
我们平时使用springboot都是使用main函数直接启动的,例如@SpringBootApplicationpublic class Application { public static void main(String[] args) { ApplicationContext ctx = SpringApplication.run(Application...
2019-01-17 14:12:06
814
1
原创 设计模式之观察者模式
一、观察者模式UML图观察者模式:多个观察者同时监听同一个对象,如果该对象有变化,会通知所有的观察者对象。例如:天气预报、公司通知放假等等 Observer 观察者接口,如果主题发生变更时,则更新状态ObserverImpl:观察者的实现类,主题发生变化时,更新自己的状态 Subject:主题的父类,所有需要观察的主题应该继承这个类Subjec...
2019-01-16 15:04:41
192
原创 设计模式之模版方法
一、模版方法:所有处理的请求流程都一样,只有流程中某些较少的地方不一样,可以考虑使用模版方法。比如我们每天上班,都是 起床、上班、下班、睡觉的流程。那么可以使用模版方法。模板方法UML图:二、模版方法实现代码:public abstract class TemplateClassAbstract { public void getUp(){ Syste...
2019-01-14 13:30:01
171
原创 JDK8 Stream API
package com.hundsun.java.se.java8;import org.apache.ibatis.reflection.SystemMetaObject;import org.junit.Test;import java.sql.SQLOutput;import java.util.*;import java.util.stream.Collectors;imp...
2018-12-31 20:25:56
211
原创 JDK8 引用(方法引用、构造器引用、数组引用)
/*** @Description:* 一、方法引用* 如果lambda 体中的内容有方法已经实现了,我们可以使用“方法引用”* (可以理解为方法引用是 Lambda表达式的另外一种表现形式)* 主要有三种语法格式:* 对象 ::实例方法名* 类:: 静态方法名* 类::实例方法名* 注 : Lambda 体中调用方法的参数列表和返回类型,要与函数式接口中抽象方...
2018-12-30 21:21:40
726
原创 JDK8 lambda表达式 及四大内置核心函数式接口
package com.hundsun.java.se.java8; import org.junit.Test; import java.util.Comparator;import java.util.function.Consumer; /*** @Description: lambda表达式的基础语法* @author:zhangys* @date:...
2018-12-30 19:45:33
1123
原创 springboot配置多数据源,注解操作数据库
最近新搭建了一个项目,需要去不同的数据库中查询数据,需要多个数据源,在网上搜索了下,基本上实现都很复杂,下面我自己实现了一个很简单的配置方法。1、原来我们都是在application.yml文件中配置数据源,现在不需要在application.yml文件中配置了。 新建jdbc.properties文件,内容如下:2、新建beans.xml,内容如下<?xml...
2018-12-12 19:59:34
630
原创 Springboot集成redis实现分布式锁
1、在pom.xml文件中新增如下依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency>2、ap...
2018-12-12 19:26:22
786
原创 org.xml.sax.SAXNotRecognizedException 异常
org.xml.sax.SAXNotRecognizedException: Feature 'http://javax.xml.XMLConstants/feature/secure-processing' is not recognized. at org.apache.xerces.parsers.AbstractSAXParser.setFeature(Unknown Source)...
2018-11-14 09:50:47
5729
原创 Lua脚本发送http请求时报错: module 'socket' not found
在使用nginx发送http请求时报如下错误:lua: ./socket/http.lua:11: module 'socket' not found: no field package.preload['socket'] no file './socket.lua' no file '/usr/share/lua/5.1/socket.lua' no file '/usr/shar...
2018-11-12 14:35:57
11853
3
原创 Nginx+ lua实现http转发请求
最近要使用nginx+lua实现 一个需求: 在nginx的location部分,请求时,判断用户是否为会员,如果是会员,则跳转到a页面,否则跳转到b页面。 用户服务是一个单独的服务,具体lua脚本实现代码如下:upstream tuc_sgin { server 127.0.0.1:9806; server 127.0.0.1:9807;}loc...
2018-11-12 14:27:21
8990
原创 Nginx Access Log 设置访问日志,过滤日志中成功的请求不输出到日志中
Nginx处理请求后把关于客户端请求的信息写到访问日志。默认,访问日志位于 logs/access.log,写到日志的信息是预定义的、组合的格式。要覆盖默认的配置,使用log_format指令来配置一个记录信息的格式,同样使用access_log 指令到设置日志和格式和位置。格式定义使用变量。1、自定义一个日志格式log_format mylogformat '"$remote_addr...
2018-10-24 19:51:05
10383
转载 内存屏障与volatile
内存屏障由于现代操作系统都是多处理器操作系统,每个处理器都会有自己的缓存,可能存再不同处理器缓存不一致的问题,而且由于操作系统可能存在重排序,导致读取到错误的数据,因此,操作系统提供了一些内存屏障以解决这种问题:LoadLoad屏障对于Load1; LoadLoad; Load2 ,操作系统保证在Load2及后续的读操作读取之前,Load1已经读取。StoreStore屏障对于Store1; St...
2018-07-15 13:19:23
677
转载 MySQL5.6 数据库主从(Master/Slave)同步安装与配置详解
安装环境操作系统 :CentOS 6.5 数据库版本:MySQL 5.6.27主机A:192.168.1.1 (Master)主机B:192.168.1.2 (Slave)1234这里强调的数据库的版本,是因为MySQL在5.6之前和之后的安装方式是不一样的。 本人在进行配置的时候,也遇到了这个坑,这里提前说明,希望大家不要采坑。注:这里有一篇CentOS安装MySQL的文章,在这里引出,过...
2018-06-23 13:50:12
241
转载 @Transactional注解的几个参数--事务传播控制--事务隔离级别--异常与回滚
阅读目录控制事务传播----propagation属性控制事务隔离级别----属性isolation只可读/可读写遇到哪些异常会回滚和不回滚----rollbackFor和noRollbackFor属性@Transactianal注解有一些属性,见Spring-Framework-Reference Table17.3 Transactional-settings@Transactional(pr...
2018-06-06 10:40:29
502
转载 Spring事务管理之几种方式实现事务
1、事务认识大家所了解的事务Transaction,它是一些列严密操作动作,要么都操作完成,要么都回滚撤销。Spring事务管理基于底层数据库本身的事务处理机制。数据库事务的基础,是掌握Spring事务管理的基础。这篇总结下Spring事务。事务具备ACID四种特性,ACID是Atomic(原子性)、Consistency(一致性)、Isolation(隔离性)和Durability(持久性)的英...
2018-06-06 10:23:38
189
转载 Tomcat中server.xml配置详解
tomcat中server.xml配置详解Tomcat Server的结构图如下:该文件描述了如何启动Tomcat Server<Server> <Listener /> <GlobaNamingResources> </GlobaNamingResources> <Service> <...
2018-05-31 09:56:45
196
原创 Linux下面抓包
一、使用命令:tcpdump -i any -s 0 -w 111.dat111.dat是想要生成的文件名称二、如果该命令不能使用,则需要安装:yum install -y tcpdump安装成功后如下图:三、使用wireshark打开所生成的文件:输入http过滤,可以查看请求包中的数据...
2018-05-30 15:30:05
2865
转载 tomcat7以上,设置maxPostSize="0"参数后台获取不到的问题
遇到两次这个问题,记录一下。 登录的时候后台获取不到验证码,本地环境是tomcat7.32,服务器是tomcat7.82,一样的配置,本地没有发生这样的情况。查询资料发现tomcat7配置的时候,把maxPostSize=”0”的配置去掉的时候问题消失。根据以往的经验,maxPostSize=”0”不就是不限制post数据的大小的么,怎么还反倒限制了数据的大小了呢?因为项目里面要post一个数据到...
2018-05-30 15:22:38
1599
转载 ConcurrentHashMap源码详解
1. ConcurrentHashMap概述ConcurrentHashMap是线程安全的哈希表,不同于HashTable,后者在方法上增加synchronized关键字,利用对象同步锁实现线程之间的同步。显然,HashTable实现线程安全的方式太“重”,并发度高的情况下,很多线程争用同一把锁,吞吐量较低。ConcurrentHashMap通过锁分段技术,只有在同一个段内,才会存在锁竞争,提高了...
2018-05-10 14:14:46
204
原创 HashMap源码解析
创建HashMap,对初始容量和负载因子进行校验public V put(K key, V value) { if (table == EMPTY_TABLE) { //如果hash表为空,则进行扩容 inflateTable(threshold); } if (key == null) //如果key为null,则添加元素 ...
2018-05-10 14:01:05
140
原创 Windows下配置nginx
一、下载:http://nginx.org/en/download.html二、解压该压缩包,解压后如图所示:三、启动nginx。双击nginx.exe四、访问服务器http://localhost/五、配置nginx的默认端口是80,配置在nginx-1.13.12/conf/nginx.conf 文件中配置。...
2018-05-09 14:45:29
209
原创 mysql查看性能常用命令
1、查看mysql版本号:select version();2、查看mysql存储引擎:show engines;InnoDB是默认的存储引擎3、查看mysql的缓冲池大小配置:show variables like 'innodb_buffer_pool_size' ;缓冲池大小为:8388608B/1024/1024=8M,一般设置为机器的物理内存的80%4、show variables li...
2018-04-20 09:59:24
7069
原创 Eclipse搭建DL4J项目
1、访问https://github.com/deeplearning4j/dl4j-examples2、点击“clone or download”,选择“download zip”3、下载到磁盘并解压如下图:4、把dl4j-examples导入到eclipse中。File->Import->Existing Maven Projects5、导入进去之后会报错:Maven报错Missi...
2018-04-19 14:05:25
1997
1
原创 系统性能优化,linux常用命令
最近做了系统的性能优化,因为是第一次做,很多地方不太熟悉,在做完本次的性能优化之后,系统的性能提升一倍,对于优化的过程中遇见的问题和使用的linux做一次总结。一、Linux查看端口、进程以及kill进程查看端口 :ps -aux|greo tomcat如果没有8080的端口号,可查看所有进程和端口的使用情况,使用命令:netstat -apn发现下面的进程列表,其中最后一栏是PID...
2018-03-28 15:51:31
686
原创 Spring循环依赖
循环依赖就是循环引用,就是两个或者多个bean之间互相持有对方,比如A引用B,B引用C,C引用A。如下图注:此处不是循环调用,循环调用是方法之间的调用,循环调用是无法解决的,除非有终结条件,否则就是死循环,最终会导致内存溢出。spring循环依赖包括:构造器循环依赖、setter循环依赖。public class A { private B b; public void a() { b...
2018-02-08 15:21:22
379
原创 数据库的隔离级别及实现原理
一、数据库的隔离级别数据库的隔离级别 脏读 不可重复读 幻读读取未提交(Read Uncommittied) √ ...
2018-02-01 19:34:46
1286
原创 ThreadLocal的使用及实现原理
一、ThreadLocal使用public class ThreadLocalApp { public static void main(String[] args) { Number t1 = new Number(); Number t2 = new Number(); Number t3 = new Number(); t1.start(); t2.start();
2018-02-01 19:09:53
256
转载 Spring 注解详解
使用注解来构造IoC容器 在spring 3.0中,通过@controller标注即可将class定义为一个controller类。为使spring能找到定义为controller的bean,需要在applicationContext.xml配置文件中注册。在base-package指明一个包 表明com.om包及其子包中,如果某个类的头上带有特定的注解【@C
2018-01-20 17:52:24
202
原创 ActiveMQ学习笔记
1、下载activeMQ,解压如图:2、运行activemq.bat,运行成功后出现如下界面:注:运行activemq.bat可能出现如下错误:主要是jdk版本不正确,我的jdk版本是jdk5,换了jdk8之后就可以了,ActiveMQ和jdk对应如下:3、访问http://localhost:8161/admin/ 用户名:admin 密码
2018-01-19 22:21:13
233
MyBatis开发及学习手册.docx
2017-09-22
Mybatis实例——可直接导入eclipse运行
2017-09-22
Mybatis源码可直接导入eclipse
2017-09-22
TCP_IP协议详解 卷三.pdf
2017-09-21
SpringMVC 实例
2017-09-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人