- 博客(67)
- 资源 (6)
- 收藏
- 关注
原创 【怎么查看堆的dump文件简单介绍】
一、怎样获取Dump 通过OOM获取,即在OutOfMemoryError后获取一份HPROF二进制Heap Dump文件,可以在jvm里添加参数: -XX:+HeapDumpOnOutOfMemoryError该配置会把快照保存在用户目录或者tomcat目录下,也可以通过 -XX:HeapDumpPath=/tmp/heapdump.hprof 来显示指定路径 主动获取,即在虚拟机添加参数如下,然后在Ctrl+Break组合键即可获取一份Heap Dump -XX:+HeapDu.
2020-12-16 23:14:20
1880
原创 【IntelliJ IDEA - Debug 调试多线程程序】
使用IntelliJ IDEA Debug调试多线程程序设置步骤一、对需要debug的地方打上debug红点为debug的点二、右键点击这个debug点三、选中Thread,点击 MakeDefault四、点击Done,设置完成,可以进行多线的debug调试了五、观察多线的执行...
2020-12-13 15:07:40
272
原创 【java 自旋锁、轻量级锁、重量级锁、偏向锁】
一、首先要讲这几个锁,需要了解一个知识点:对象头java对象在堆中的存储模型为:对象头、实例数据、对齐填充 对象头里面存储信息:分为两部分第一部分为:对象自身的运行时的数据。第二部分为:...
2020-12-12 22:47:48
162
原创 【JVM的垃圾回收及JVM工具命令】
一、对象存活的算法1、引用计数法2、根可达性分析算法二、垃圾回收的算法1、标记清除算法2、复制算法3、标记整理算法4、分代收集算法三、垃圾收集器1、Serial2、ParNew3、Parallel Scavenge4、Serial Old5、CMS6、G1四、垃圾收集器的参数设置参数 描述 UseSerialGC 虚拟机运行在 Client 模式下的默认值,打开此开关后,使用Serial+Serial Old 的收集..
2020-12-12 20:16:59
297
原创 【原码、反码、补码】
以5和-5作为列子数据 原码 反码 补码 5 00000101 11111010 11111011 负数在计算机中没有原码、反码、补码一说负数在计算集中的表达就是正数的补码如5为例:5的原码是:00000101 (表示为1*2的0次方加上0*2的1次方加上1*2的2次方)5的反码是:对原码的每一位取反:111110105的补码是:对原码加1:11111011-5在计算机中的二进制表达为:11111011如果想把-5从二进制表达为十进
2020-12-12 14:16:07
12542
3
原创 【Mysql 的解析执行顺序】
SQL解析顺序示例语句:SELECT DISTINCT< select_list >FROM< left_table > < join_type >JOIN < right_table > ON < join_condition >WHERE< where_condition >GROUP BY< group_by_list >HAVING< having_condition &...
2020-11-29 16:12:19
183
原创 【Mysql 之DDL与DML】
一、DDL语句1、数据库操作:database创建数据库create database 数据库名;create database 数据库名 character set 字符集;查看数据库查看数据库服务器中的所有的数据库:show databases;查看某个数据库的定义的信息:show create database 数据库名;删除数据库(慎用)drop database 数据库名称;其他数据库操作命令切换数据库:use 数据库名;查看正在使用的数据库
2020-11-29 15:59:34
73
原创 【有限状态机(Finite State Machine---FMS)】
其实我们在编程时实现相关业务逻辑时经常需要处理各种事件和状态切换,写各种switch/case 和if/else ,所以我们其实可能一直都在跟有限状态机打交道,只是可能没有意识到。在处理一些业务逻辑比较复杂的需求时,可以先看看是否适合用一个有限状态机来描述,如果可以把业务模型抽象成一个有限状态机,那么代码就会逻辑特别清晰,结构特别规整。下面我们就来聊聊所谓的状态机,以及它如何在代码中实现。1、状态机的要素状态(State):表示对象的某种形态,在当前形态下可能会拥有不同的行为和属性。 ...
2020-11-15 23:16:46
647
原创 【K8S 基本理论及架构原理】
1、认识虚拟化1.1、什么是虚拟化在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储。虚拟化技术是一套解决方案。完整的情况需要 CPU、主板芯片组、BIOS 和软件的支持,例如 VMM 软件或者某些操作
2020-11-08 14:09:38
29905
原创 【K8S实践】
1、K8S 基本介绍就在 Docker 容器技术被炒得热火朝天之时,大家发现,如果想要将 Docker 应用于具体的业务实现,是存在困难的——编排、管理和调度等各个方面,都不容易。于是,人们迫切需要一套管理系统,对 Docker 及容器进行更高级更灵活的管理。就在这个时候,K8S 出现了。K8S ,就是基于容器的集群管理平台,它的全称,是 kubernetes 。2、K8S 集群这个集群主要包括两个部分:一个 Master 节点(主节点)一群 Node 节点(计算节点)一看就明白
2020-11-08 13:28:26
133
原创 【Nginx基础知识】
Nginx 概述 第1章1.1 Nginx 简介Nginx (engine x) 是一个轻量级的、高性能的、基于 Http 的、反向代理服务器,静态 web服务器。Nginx 最初是由俄罗斯人 Igor Sysoev(伊戈尔·赛索耶夫)使用 C 语言为俄罗斯访问量第二的 Rambler.ru 站点开发的一款服务器。2004 年 10 月发布第一个版本。Nginx 的官网: http://nginx.org国内大型的站点,例如百度、京东、新浪、网易、腾讯、淘宝等,都使用了 Nginx。
2020-11-08 12:58:47
51124
原创 【docker文档】
1 Docker 介绍Docker 产生背景Docker 是云时代的产物,它的诞生是一种必然。对于云计算\云服务的相关概念,本课程不会去阐述。不过如果想了解 Docker,那么必须对云服务的一些运营模式有所了解。云服务的运营模式:1、IaaS(基础设施即服务):经营的是基础设施,比如阿里云服务器(只安装操作系统)2、PaaS(平台即服务):经营的是平台,比如 MySQL 开发平台(安装在 linux里面现成的平台)、redis 开发平台。3、SaaS(软件即服务):经营的是软件,比如...
2020-11-07 20:59:15
312
1
原创 【Spring Reader的体系】
一、Spring BeanDefinitionReader的继承实现结构二、BeanDefinitionReader 使用ResouceLoader对象三、XmlBeanDefinitionReader 来读XML文件 主要是用来读写spring的xml配置文件
2020-11-07 20:15:00
208
原创 【Spring ResourceLoader 体系】
一、ResourceLoader继承实现结构二、DefaultResourceLoader 主要是实现单个资源文件的加载三、ResourcePatternResolver主要是显示多个资源文件的加载
2020-11-07 19:59:43
138
原创 【Spring之Resource体系】
一、继承实现结构图(部分)1、resource 描述spring的资源。主要封装一些readonly方法,用来获取资源的信息。2、AbstractResource 作为Resource的第一层实现类,主要一些子类共有的方法
2020-11-07 19:55:09
346
原创 Jenkins
Jenkins文档:中文文档:https://www.jenkins.io/zh/英文文档:https://www.jenkins.io/
2020-11-01 12:49:02
137
原创 【Storm 学习小事列】
一、Storm模型重要概念:niubus、supervisor、worker、executor、task二、java编程模型重要概念:topology、spout、blot、Tuple、stream、trident1)topology是一个虚拟概念,包含spout和blot,被worker处理2)spout 用来接收数据来源,作为storm流式处理中的开始端,负责数据的读入与发射到下游处理器上。3)blot 用来做数据逻辑处理位于spout的下端4)tuple做为流式处理中.
2020-10-27 19:54:12
105
原创 【多线程之BlockingQueue】
一、BlockingQueue抽象模型:二、BlockingQueue的主要方法:1)add、remove、element 在无法马上执行时,会抛出异常2)offer、poll、peek 在无法马上执行时,会返回一个特殊的值3)put、take 在无法马上执行时,会阻塞4)offer、poll增加了超时机制,在超时之后会返回一个特殊的值三、BlockingQueue的实现类1)SynchronousQueue 同步队列,只能存放一个元素2)DelayQueue .
2020-10-26 23:06:16
194
原创 【springcloud WebEndpointPropertie报错解决方案】
springcloud报错信息:java.lang.ClassNotFoundException: org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointPropertie2020-10-25 22:35:55.933 WARN [store,,,] 1100 --- [ main] o.s.boot.SpringApplication : Unable to
2020-10-25 22:38:39
508
原创 【springCloud zuul超时机制设置】
9.14. Zuul TimeoutsIf you want to configure the socket timeouts and read timeouts for requests proxied through Zuul, you have two options, based on your configuration:If Zuul uses service discovery, you need to configure these timeouts with the ribbon..
2020-10-25 16:00:51
453
原创 【springcloud 自定义health的状态,存在疑问哈】
1、实现HealthCheckHandler根据自身的逻辑来实现服务的上线或者下线,状态会报告给eureka,(可以通过前台请求来改变服务的状态,利用续约的定时器,定时向eureka服务器发送状态数据)package com.example.springcloud.store.cusconfig;import com.example.springcloud.store.controller.StoreController;import com.netflix.appinfo.HealthCh
2020-10-25 13:30:48
325
原创 【springcloud eureka整合ribbon问题解决方案】
问题背景:在eureka整合openfeign和ribbon的情况下,A服务调用B服务,出现如下问题:com.netflix.client.ClientException: Load balancer does not have available server for client: ORDER-MIC-SERVICE at com.netflix.loadbalancer.LoadBalancerContext.getServerFromLoadBalancer(LoadBalancerC.
2020-10-24 15:41:55
543
原创 RedisTemplate APi详解
import org.springframework.data.redis.core.RedisTemplate;import java.util.HashMap;import java.util.Map;import java.util.concurrent.TimeUnit;/** * 操作redis的工具类 */public class RedisUtil { /** * redis 字符串数据类型的工具类 */ public static .
2020-10-22 21:55:57
449
原创 【关于redisTemplate 使用jedis连接池,方法不推荐使用的解决办法】
一、RedisConnectionFactory实现体系二、PoolConfig的实现体系三、JedisClientConfiguration的实现体系四、编码实现产生RedisTemplate编写application.properties文件# Redis服务器连接端口spring.redis.port=6379# Redis服务器地址spring.redis.host=192.168.200.3# Redis数据库索引(默认为0)spring.redis.d
2020-10-22 16:27:00
926
原创 【sql优化的几条思路】
sql优化的几条思路1、执行顺序的问题2、大表小表的问题3、索引失效的问题一、检查sql语句是否走了索引:EXPLAIN做MySQL优化,我们要善用EXPLAIN查看SQL执行计划。type列,连接类型。一个好的SQL语句至少要达到range级别。杜绝出现all级别。 key列,使用到的索引名。如果没有选择索引,值是NULL。可以采取强制索引方式。 key_len列,索引长度。 rows列,扫描行数。该值是个预估值。 extra列,详细说明。注意,常见的不太友好的值,如下
2020-10-16 10:17:08
87
原创 【springMVC 将对象通过responseBody转换成json】
@ResponseBodyYou can use the@ResponseBodyannotation on a method to have the return serialized to the response body through anHttpMessageConverter. The following listing shows an example:Java@GetMapping("/accounts/{id}")@ResponseBodypublic Accou...
2020-09-07 14:32:01
292
原创 【Spring之若干注解释义】
IOC注解使用方法一、bean类型注解第一步:在xml文件中配置context:component-scan第二步:在类上添加componet注解,component注解衍生出controller、service、repository一般情况下: 1、controller添加在展示层的controller上 2、service添加在服务层的service上 3、repository添加在持久层的dao上二、类注...
2020-09-05 11:44:18
126
原创 【RabbitMQ之重回队列、TTL队列、死信队列】
源码:设置requeue设置为true时,MQ Server 没有收到手动的ack时,会将信息重新投递给Server /** * Reject one or several received messages. * * Supply the <code>deliveryTag</code> from the {@link com.rabbitmq.client.AMQP.Basic.GetOk} * or {@link com...
2020-08-01 16:20:41
397
原创 【RabbitMQ 之自定义消费者与消费端的限流机制】
1、通过继承DefaultConsumerpublic class MyConsumer extends DefaultConsumer { private Channel channel; public MyConsumer(Channel channel) { super(channel); this.channel = channel; } /** * 重写此方法 * @param consumerTag
2020-08-01 15:18:28
298
原创 【RabbitMQ之Message】
Map<String,Object> headerMap = new HashMap<>(); headerMap.put("myselfProperties","myselfProperties"); AMQP.BasicProperties basicProperties = new AMQP.BasicProperties.Builder() .deliveryMode(2)//投...
2020-07-29 22:17:35
1185
原创 【RabbitMQ之路由类型Topic】
Topic Exchange–将路由键和topic进行匹配。此时队列需要绑定要一个topic上。任何发送到Topic Exchange的消息都会被转发到所有关心RouteKey中指定topic的Queue上1、这种模式较为复杂,简单来说,就是每个队列都有其关心的topic,所有的消息都带有一个“标题”(RouteKey),Exchange会将消息转发到所有关注主题能与RouteKey模糊匹配的队列。2、这种模式需要RouteKey,也许要提前绑定Exchange与Queue。3、...
2020-07-29 21:57:47
375
原创 【RabbitMQ之路由类型为fanout】
Fanout Exchange不需要路由键。只需要简单的将队列绑定到交换机上。一个发送到交换机的消息都会被转发到与该交换机绑定的所有队列上。很像子网广播,每台子网内的主机都获得了一份复制的消息。Fanout交换机转发消息是最快的(不需要做路由规则的判断)。任何发送到Fanout Exchange的消息都会被转发到与该Exchange绑定(Binding)的所有Queue上。编码实践一、生产者和消费者模型1、创建连接(生产端)Connection connection = nul...
2020-07-29 21:21:05
251
原创 【RabbitMQ之路由类型为direct】
Direct Exchange 需要将一个队列绑定到交换机上,要求该消息与一个特定的路由键完全匹配。这是一个完整的匹配。如果一个队列绑定到该交换机上要求路由键 “cat”,则只有被标记为“cat”的消息才被转发,不会转发到以dog为路由键的queue上,只会转发cat作为路由键的queue上。任何发送到Direct Exchange的消息都会被转发到RouteKey中指定的Queue。1、一般情况可以使用rabbitMQ自带的Exchange:”"(该Exchange的名字为空字符...
2020-07-29 21:01:15
348
原创 【RabbitMQ之简单队列】
简单队列模型QueueQueue(队列)是RabbitMQ的内部对象,用于存储消息,用下图表示。RabbitMQ中的消息都只能存储在Queue中,生产者(下图中的P)生产消息并最终投递到Queue中,消费者(下图中的C)可以从Queue中获取消息并消费。多个消费者可以订阅同一个Queue,这时Queue中的消息会被平均分摊给多个消费者进行处理,而不是每个消费者都收到所有的消息并处理。编码实践一、生产者和消费者模型1、创建连接(生产端) Connection connec
2020-07-28 23:26:44
159
原创 【从源码的视角 全貌了解Spring 事务的传播特性】
required A有事务B无事务 A无异常 B有异常 则 AB 同时回滚 required A有事务B有事务 A无异常 B有异常 则 AB 同时回滚 required A无事务B有事务 A无异常 B有异常 则 A不回滚 required A无事务B无事务 A无异常 B有异常 则 AB不回滚 required new A有事务B无事务 A无异常 B有异常 则 AB 同时回滚 required new A无事务B有事务 A无异常 B有异常 则 A不回滚...
2020-07-25 22:32:46
121
原创 【mybatis编译时,xml丢失解决方案】
mybatis编译时,xml丢失解决方案解决方案在pom文件中加上<resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> <resource>
2020-07-23 21:34:10
468
原创 Netty深度学习之小试牛刀一
1.2牛刀小试通过该程序达到的目的是,对 Netty 编程的基本结构及流程有所了解。该程序是通过 Netty 实现 HTTP 请求的处理,即接收 HTTP 请求,返回 HTTP 响应。这个代码相当于“SpringMVC + Tomcat”1.2.1 创建工程创建一个普通的 Maven 的 Java 工程。1.2.2 导入依赖仅导入一个 netty-all 依赖即可。&l...
2019-09-15 17:35:57
133
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人