- 博客(64)
- 收藏
- 关注
原创 tomcat8优化实践以及优化建议
这里写目录标题tomcat8优化实践以及优化建议tomcat8的部署安装禁用AJP连接设置线程池设置NIO2运行模式tomcat8优化实践以及优化建议tomcat8的部署安装下载资源:或tomcat下载 :https://tomcat.apache.org/download-80.cgi#修改配置文件,配置tomcat的管理用户cd apache-tomcat-8.5.34/confvim tomcat-users.xml#写入如下内容:<role rolename="manag
2020-08-18 17:22:58 382 4
原创 GC垃圾回收机制
GC垃圾回收机制java垃圾回收的必要性常见的垃圾回收算法引用计数法:循环引用标记清除算法标记压缩算法复制算法JVM中年轻代的内存空间(young-gc|年轻代使用的复制算法)分代算法垃圾收集器以及内存分配串行垃圾收集器测试GC:并行垃圾收集器ParNew垃圾收集器(工作在年轻代上面)ParallelGC垃圾收集器(工作在年轻代或者是老年代上面)CMS垃圾收集器G1垃圾收集器(重点)原理Young GCRemembered Set(已记忆集合)Mixed GC全局并发标记拷贝存活对象G1收集器相关参数对于G
2020-08-03 18:13:12 652
原创 VisualVM工具的简单使用
监控本地进程存放地址:监控本地进程:本地jdk安装目录下 jdk1.8.0_201\bin\jvisualvm.exe 双击打开监控远程进程配置修改以下文件:bin/catalina.sh在一堆注释下面添加一下内容:JAVA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port= 你的端口号 -Dcom.sun.management.jmxremote.authenticate=false -Dcom
2020-07-31 18:03:07 391
原创 JVM优化
为什么要对jvm进行优化解决一下问题,例如:在生产环境程序突然卡主,没有任何日志的输出在某一段程序,CPU突然飙升不仅要让程序稳定,更要提升程序的运行速度jvm的运行参数1.jvm的参数类型分为三类:分别是:标准参数:指在往后的任何一个jvm的发行版本中都不会随意改变的参数-help-version-X参数(非标准参数):在往后的jvm版本中可能会做出一些改变-...
2020-07-31 10:36:32 488
原创 Netty使用分隔符和定长解码器
这里写自定义目录标题使用分隔符解码器使用分隔符解码器服务端import io.netty.bootstrap.*;import io.netty.buffer.ByteBuf;import io.netty.buffer.Unpooled;import io.netty.channel.*;import io.netty.channel.nio.NioEventLoopGroup;import io.netty.channel.socket.SocketChannel;import io.
2020-06-17 10:46:24 199
原创 Netty编程
Netty概述Netty是由JBOSS 提供的一个Java 开源框架。Netty提供异步的、基于事件驱动的网络应用程序框架,用以快速开发高性能、高可靠性的网络 IO 程序。模型和异步比较类似于上面的线程池模型,Netty抽象出两组线程池,BossGroup专门负责接收客户端连接,WorkerGroup 专门负责网络读写操作。NioEventLoop 表示一个不断循环执行处理任务的线程,每...
2020-02-18 23:25:52 255
原创 NIO编程
NIO编程NIO和BIO介绍BIO:BIO 有的称之为 basic(基本) IO,有的称之为 block(阻塞) IO,主要应用于文件 IO 和网络 IO在 JDK1.4 之前,我们建立网络连接的时候只能采用 BIO,需要先在服务端启动一个 ServerSocket,然后在客户端启动 Socket 来对服务端进行通信,默认情况下服务端需要对每 个请求建立一个线程等待请求,而客户端发送请求后...
2020-02-18 22:18:25 138
原创 线程安全问题及线程之间通信经典案例
线程之间通信经典案例下面的案例模拟实现农夫采摘水果放到筐里,小孩从筐里拿水果吃,农夫是一个线程, 小孩是一个线程,水果筐放满了,农夫停;水果筐空了,小孩停。注:同步锁必须是同一个对象,才能彼此唤醒定义一个筐:public class Kuang { public static ArrayList<String> kuang = new ArrayList<&...
2020-02-13 20:57:55 381
转载 SpringTask任务调度
SpringTask任务调度主要模块cron表达式cron表达式包括6部分特殊字符介绍例子Spring Task测试 和 串行任务并行任务主要模块cron表达式springtask测试类执行串行任务执行并行任务cron表达式cron表达式包括6部分秒(0~59) 分钟(0~59) 小时(0~23) 月中的天(1~31) 月(1~12) 周中的天 (填写MON,TUE,WED,THU...
2020-02-10 14:55:08 153
转载 【转载】Docker 搭建Maven私服nexus 3.17初始密码登录不上问题/admin登陆不上问题
Docker 搭建Maven私服nexus 3.17初始密码登录不上问题/admin登陆不上问题
2019-10-25 10:39:05 263
原创 maven版本冲突解决
maven版本冲突解决maven两大功能:依赖管理和一件构建依赖管理:分为直接依赖和间接依赖直接依赖:在pom文件中直接导入的jar包坐标,直接依赖于次jar包间接依赖:A依赖于B,B依赖于C,那么A间接依赖于C解决jar包冲突的三个原则:第一声明优先原则,pom坐标在最上面的优先路径近者优先原则,如果A直接依赖于B1,间接依赖于B2,那么B1优先jar包排除,在 depende...
2019-10-24 10:18:28 463
原创 SpringCloud2.0 Hystrix Dashboard 断路器指标看板 以及 断路器集群监控
转载别人的:SpringCloud2.0 Hystrix Dashboard 断路器指标看板SpringCloud2.0 Turbine 断路器集群监控 基础教程(九)注:**自己写demo的时候,自己通过浏览器调用,没有出现监控请求画面,一直在loading通过请求feign,由feign调用具体的服务的时候,出现了监控指标,应该就是这个原因。服务端注册断路器指标流Servlet的时...
2019-09-04 11:09:08 187
原创 SpringCloud-Hystrix 断路器
**Hystrix断路器:**就是让服务进行隔离,在微服务中服务之间是相互调用的,如果服务之间不能相互隔离,很可能会出现雪崩效应。Hystrix相当于一个保险丝,保护其他服务不受影响。完整的pom文件:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0...
2019-08-19 11:32:07 202
转载 SpringBoot解决cors跨域问题
SpringBoot解决cors跨域问题转载自:https://blog.csdn.net/lizc_lizc/article/details/81155895
2019-07-12 16:09:08 141
原创 Springboot进行国际化设置
springboot实现返回值国际化开始一个新项目,有幸接触到后端进行添加国际化的设计,学习大佬的代码,并自己写了一个demo,记录如下:创建一个springboot工程,引入spring-web-starter的坐标<dependencies> <dependency> <groupId>org.springf...
2019-07-12 15:21:40 624
原创 RabbitMQ实现死信队列
当一个队列的消息发送出现异常的时候,需要设置一个死信队列,将失败的消息放置死信队列,进行人工干预rabbitMQ的配置文件:spring: rabbitmq: virtual-host: / addresses: localhost username: guest password: guest port: 5672 application: ...
2019-04-28 10:23:04 695
原创 RabbitMQ实现延时队列Demo
本Demo的原理就是:将死信队列倒着用,然后实现延时队列简单的配置文件:spring: rabbitmq: virtual-host: / addresses: localhost username: guest password: guest port: 5672 application: name: consumer-01配置Ra...
2019-04-26 17:21:24 1053
原创 MongoDB的增删改查以及MongoTamplate的增删改查
业务场景今天在做业务的时候涉及到对mongDB的一些增删改查,包括对嵌套对象及其嵌套对象的某个字段的修改操作,现记录如下:样例数据://进行简单的查询操作db.getCollection("test").find({"name":"xiaoqiang"})//得到的结果如下:{ "_id": ObjectId("5c9199721b9ae042c8002232"), ...
2019-03-29 17:16:05 1208
原创 SpringCloud-Feign 远程调用
什么是Feign: Feign是NetFlix公司开源的Rest远程调用的客户端,可以实现http远程调用,像调用本地方法一样来调用远程的方法SpringCloud引入了Feign并且集成了Ribbon实现了负载均衡Feign的简单使用:请首先参考之前的博客,关于微服务调用,Ribbon的负载均衡引入Feign和Eureka-Client的jar包 <dependency&g...
2019-03-17 10:06:04 249
原创 SpringCloud-Ribbon负载均衡
什么是Ribbon: Ribbon是Netflix公司开源的一个负载均衡的项目(https://github.com/Netflix/ribbon),它是一个基于HTTP、TCP的客户端负载均衡器。Ribbon是一套基于客户端的负载均衡器客户端负载均衡器: 即给个客户端都注册中心的一套服务列表,调用的时候进行负载均衡,如SpringCloud的Ribbon服务端负载均衡器: 即在服务端有注册...
2019-03-15 18:32:22 388
原创 SpringCloud-Eureka注册中心-注册服务
引入客户端依赖<!-- 如果父工程存在的话不需要引入 --><!-- spring-cloud版本依赖 --><dependencyManagement> <dependencies> <dependency> <groupId>org.springframework....
2019-03-15 10:35:03 134
原创 SpringCloud-Eureka注册中心-高可用环境
**前言:**高可用环境即两个或者是多个EureKa服务相互向对方注册1、在实际使用时Eureka Server至少部署两台服务器,实现高可用。2、两台Eureka Server互相注册。3、微服务需要连接两台Eureka Server注册,当其中一台Eureka死掉也不会影响服务的注册与发现。4、微服务会定时向Eureka server发送心跳,报告自己的状态。 5、微服务从注册中心获...
2019-03-14 23:43:49 146
原创 SpringCloud-Eureka注册中心-单机环境
单机环境搭建在父工程中添加依赖&lt;dependency&gt; &lt;groupId&gt;org.springframework.cloud&lt;/groupId&gt; &lt;artifactId&gt;spring-cloud-dependencies&lt;/artifactId&gt; &a
2019-03-13 23:39:16 252
原创 Sql中对于树形结构的处理
前言:在开发中会遇到数据库为树形机构的表设计,级表中的数据的子id对应上一级的父id(parentId),这时候需要用到sql的自连接查询来得到树形结构的结果,并设计实体类来接收此类数据表的自连接查询,即自己连接自己来查询数据:sql样例如下:SELECT t1.id one_id,t1.pname one_name, t2.id two_id,t2.pname two_name,...
2019-03-13 16:12:08 3011
原创 Mybatis分页插件PageHelper(springboot)
Mybatis分页插件PageHelper介绍:PageHelper是Mybatis的通用插件,原理是将分页参数放在threadlocal当中,在进行sql查询的时候将分页参数取出,然后将其拼接到sql语句中进行分页查询具体使用方法:引入依赖项<dependency> <groupId>com.github.pagehelper</groupId&...
2019-03-06 18:12:04 123
原创 SpringBoot中SpringDataJpa自动生成表结构
加入SpringDataJpa的Pom文件<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> <version>1.5.15.R...
2019-02-21 17:57:36 5974 4
原创 学习之路-RabbitMQ(三):SpringBoot整合RabbitMQ
一:引入RabbitMQ的相关jar包:&lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spring-boot-starter-amqp&lt;/artifactId&gt;&lt;
2018-12-29 14:19:23 175 1
原创 学习之路-RabbitMQ(三):RabbitMQ的工作模式
RabbitMQ有以下几种工作模式 :1、Work queues 工作队列2、Publish/Subscribe 发布订阅模式3、Routing 路由模式4、Topics 通配符模式5、Header6、RPC一:Work queues 工作队列work queues与入门程序相比,多了一个消费端,两个消费端共同消费同一个队列中的消息。 应用场景:对于 任务过重或任务较多情况使用...
2018-12-28 23:09:11 241
原创 RabbitMQ的通配符模式Demo
案例:根据用户的通知设置去通知用户,设置接收Email的用户只接收Email,设置接收sms的用户只接收sms,设置两种 通知类型都接收的则两种通知都有效。生产者:package com.xuecheng.rabbitmq.producer;import com.rabbitmq.client.BuiltinExchangeType;import com.rabbitmq.client...
2018-12-28 22:01:09 404
原创 RabbitMQ的路由模式Demo
生产者:package com.xuecheng.rabbitmq.producer;import com.rabbitmq.client.BuiltinExchangeType;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.rabbitmq.client.Conn...
2018-12-28 20:19:13 299
原创 RabbitMQ的发布订阅模式Demo
RabbitMQ的发布订阅模式生产者:package com.xuecheng.rabbitmq.producer;import com.rabbitmq.client.BuiltinExchangeType;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.rabb...
2018-12-28 19:54:45 942 1
原创 学习之路-RabbitMQ(三):RabbitMQ的入门程序
1.创建maven工程2.分别在两个工程中导入依赖&lt;dependency&gt; &lt;groupId&gt;com.rabbitmq&lt;/groupId&gt; &lt;artifactId&gt;amqp‐client&lt;/artifactId&gt; &lt;version&gt;
2018-12-24 23:01:24 173
原创 学习之路-RabbitMQ(二):Mac安装RabbitMQ
1.安装:RabbitMQ:brew install rabbitmq2.RabbitMQ的安装位置:/usr/local/Cellar/rabbitmq/3.7.93.配置环境变量:cd~vi .bash_profileexport RABBIT_HOME=/usr/local/Cellar/rabbitmq/3.7.9export PATH=$PATH: $RABBIT_HOM...
2018-12-23 15:18:35 148
原创 学习之路-RabbitMQ(一):什么是RabbitMQ
**RabbitMQ**MQ全称为Message Queue,即消息队列, RabbitMQ是由erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开 发中应用非常广泛。RabbitMQ官方地址:http://www.rabbitmq.com/开发中消息队列通常有如下应用...
2018-12-23 14:06:28 249
原创 SpringBoot中使用GridFS
什么是GridFSGirdFS是MongoDB提供的用于持久化存储文件的模块在GridFS存储文件是将文件分块存储,文件会按照256KB的大小分割成多个块进行存储,GridFS使用两个集合 (collection)存储文件,一个集合是chunks, 用于存储文件的二进制数据;一个集合是files,用于存储文件的元数 据信息(文件名称、块大小、上传时间等信息)。从GridFS中读取文件要对文件...
2018-12-22 14:21:52 3871 1
原创 springboot中restTemplate的使用
这篇博客只是记录,供自己参考使用SpringMVC提供 RestTemplate请求http接口,RestTemplate的底层可以使用第三方的http客户端工具实现http 的 请求1.添加依赖<dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId...
2018-12-19 22:19:54 4859 3
原创 利用freemarker生成模板
在cms中使用freemarker将页面生成html文件,本节测试html文件生成的方法:1、使用模板文件静态化 定义模板文件,使用freemarker静态化程序生成html文件。2、使用模板字符串静态化 定义模板字符串,使用freemarker静态化程序生成html文件。使用模板文件静态化在test下创建测试类,并且将main下的resource/templates拷贝到test下,本次...
2018-12-17 23:53:40 843
原创 页面静态化技术:FreeMarker
页面静态化技术:FreeMarker背景: 为了实现页面的管理和快速上线,需要用到页面静态化如何: 页面静态化就是使用 模板+数据,通过技术手段将两者合二为一,生成一个html页面业务流程:获取模型所需要的数据制作模版利用静态化技术生成html将html页面存放在文件系统中从文件系统中取出发布到网页上学习freemarker1.导入freemarker的依赖<dep...
2018-12-17 23:47:32 319
原创 项目中的异常处理
项目中的异常处理写在前面:项目中经常遇到的异常处理一般分为两大类:可以预知的异常处理,不可预知的异常处理,本文针对于这两种异常处理给出具体的解决思路,如有问题,烦请斧正可预知的异常指的是在程序中根据业务需求或者是程序运行之前保证运行无误,提前对异常进行判断处理。一般返回的异常信息包括:执行结果标志(成功/失败)、错误码、错误提示信息。处理方案,看代码不可预知的异常指的是由框架抛出来的异...
2018-12-16 10:18:14 4184
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人