![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
❀❀❀❀❀❀-中间件及其调优
女汉纸一枚
丢弃对未来的怯懦,保持对未来的执着。
展开
-
【kafka】深入理解kafka第一章-初识kafka
1、kafka分布式流式处理平台,以高吞吐、可持久化、可水平扩展、支持流数据处理等而被广发使用2、kafka三大角色消息系统:系统解耦、冗余存储、流量削峰、缓冲、异步通信、扩展性(增加分区达到水平扩展)、可恢复性、消息顺序保障(分区消息顺序性)、回溯消费存储系统:消息持久化、多副本机制流式处理平台:流式处理类库(窗口、连接、变换和聚合)3、kafka架构说明:...原创 2020-01-12 10:51:25 · 416 阅读 · 1 评论 -
【maven】生命周期
本来不值得搬到CSDN来写的东西,突然发现他很重要。如果我想知道执行mvn命令后,这个命令对我的项目做了什么?我还是得看生命周期。下面图片可以点击放大。举例来说明:执行mvn clean compile:首先经历了过程一,清理了项目中的target,然后进行到生命周期二,在编译src/main/java目录下的java文件至项目输出的主classpath目录中之前还经过了对src/...原创 2018-02-27 14:18:42 · 235 阅读 · 26 评论 -
【maven插件】cobertura-maven-plugin测试覆盖率
测试覆盖率是衡量项目代码质量的一个重要的参考指标。Cobertura是一个优秀的开源测试覆盖率统计工具,maven通过Cobertura-maven-plugin与之集成,用户可以使用简单的命令为maven项目生产测试覆盖率报告。运行命令:$ mvn cobertura:cobertura效果:打开项目目录:target/site/cobertura/下的index.xml文件...原创 2018-02-24 11:38:04 · 6868 阅读 · 21 评论 -
【maven】跳过测试类(二)
跳过测试,未跳过测试方法编译$mvn package-DskipTests //跳过测试,未跳过测试代码编译 动态指定要运行的测试用例:maven-surefire-plugin提供了一个test参数让maven用户能够在命令行指定要运行的测试用例。$ mvn test -Dtest=指定的测试类 //test参数的值是测试用例的类名,效果就是只有指定的这一个测试类得到...原创 2018-02-24 11:28:25 · 284 阅读 · 17 评论 -
【maven】依赖范围
编译项目主代码的时候生成一套classpath:编译和执行测试生成一套classpath;实际运行项目的时候又生成一套classpath,依赖范围就是用来控制依赖与三种classpath的关系:compile:编译依赖范围,默认使用该依赖范围-spring-coretest:测试依赖范围,只对测试classpath有效-Junitprovided:已提供依赖范围,对于编译和测试clas...原创 2018-02-12 20:16:01 · 320 阅读 · 12 评论 -
【maven】配置全局JDK和局部JDK
设置全局的JDK,在settings.xml文件中的profiles元素下添加如profile元素 <profile> <id>jdk1.8</id> <activation> <activeByDefault>true</activeByDefault> ...原创 2018-02-10 16:27:21 · 682 阅读 · 11 评论 -
【maven】常用命令应用场景
运行命令清除target目录下的classes并且重新编译mvn clean compile编写单元测试代码,引入测试依赖 运行测试方法的命令mvn clean test此处:命令行输入mvn clean test,耳maven实际执行的可不止这两个任务,还有clean:clean、resources:resources、compiler:compile、resourec...原创 2018-02-10 16:08:52 · 533 阅读 · 10 评论 -
【maven】跳过测试类(一)
平时将jar安装到本地仓库的时候会,运行mvn install命令会运行本地测试方法,所以需要跳过测试类,有以下两种方法:第一种:$mvn install -Dmaven.test.skip = true第二种:<!--跳过测试类--><plugin> <groupId>org.apache.maven.plugins</grou...原创 2018-02-10 16:01:37 · 232 阅读 · 7 评论 -
【maven插件】maven-shade-pulgin
对于java程序带有main方法的打包成jar后可执行配置:第一步:在pom文件中配置插件 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> ...原创 2018-02-03 21:46:52 · 335 阅读 · 6 评论 -
【maven插件】maven-surefire-plugin生成单元测试报告单(.html)
在pom.xml添加插件: <build> <finalName>javawebdemo</finalName> <plugins> <plugin> <groupId>org.apache.maven.p...原创 2018-01-28 20:18:38 · 3995 阅读 · 16 评论 -
【Tomcat】作为servlet容器的基本功能
tomcat作为servlet容器响应客户请求访问特定的servlet的流程如下:客户发出要求访问特定servlet的请求 servlet容器接收到客户请求,对其解析 servlet容器创建一个servletrequest对象,在servletrequest对象中包含了客户请求信息及其他关于客户的信息,入请求头、请求正文,以及客户机的IP地址等 servlet容器创建一个servl...原创 2017-12-30 20:34:17 · 765 阅读 · 11 评论 -
【tomcat】Linux同时运行两个或多个tomcat
通常情况下,发布部署web项目,我们大多数会选择tomcat应用服务器。具体部署流程就不多说了。如果同时在Linux上启动两个或多个tomcat,仅仅需要对tomcat实例做如下操作即可:修改/tomcat/conf/server.xml文件中的三个端口号,保证多个tomcat实例下该三个端口互不相同:第一个:tomcat监听的关闭端口第二个:监听请求第三个:接收其他服务器...原创 2017-11-17 10:37:39 · 448 阅读 · 16 评论 -
【maven】整理依赖,优化依赖
显示项目中已解析依赖,每个依赖的范围:mvn dependency:list通过这棵树可以看到某个依赖是通过哪条传递路径引入的,方便依赖的版本的管理:mvn dependency:tree分析当前项目的依赖,主要找寻一些编译过程中主代码和测试代码用不到的依赖:mvn dependency:analyze注意: Used undeclare...原创 2018-03-04 15:15:21 · 905 阅读 · 12 评论 -
【JVM】基础
1、对象为什么放到堆里面? 对象放到堆里面,可以实现多个对象共享。可能会引起一些安全问题2、栈是运行时的单位和线程绑定,堆是存储的单位。局部变量没有线程安全问题,因为它不是共享的。 栈解决程序的运行问题,即程序如何执行,或者说如何处理数据;堆解决的是数据存储的问题,即数据怎么放,放在哪儿。Java中一个线程就会相应有一个线程与之对应,这点很容易理解,因为不同的线程执行逻辑有所不同,...原创 2018-06-03 18:59:25 · 195 阅读 · 2 评论 -
【攻克RabbitMQ】常见问题
消息什么情况下会丢失?配合mandatory参数或备份交换器来提高程序的健壮性发送消息的交换器并没有绑定任何队列,消息将会丢失交换器绑定了某个队列,但是发送消息时的路由键无法与现存的队列匹配预估队列的使用情况?在后期运行过程中超过预定的阈值,可以根据实际情况对当前集群进行扩容或者将相应的队列迁移到其他集群。消费消息?推模式,拉模式保证消息的可靠性?RabbitMQ......原创 2018-08-22 09:47:46 · 6203 阅读 · 2 评论 -
【攻克RabbitMQ】多租户与权限的相关命令
多租户与权限#建立vhost,大括号里的参数表示 vhost 的名称。rabbitmqctl add vhost {vhost}#罗列当前vhost的相关信息,name标识vhost名称;tracing是否使用了RabbitMQ的trace功能rabbitmqctl list vhosts name tracing#删除vhost的命令,删除vhost同时也会删除其下所有的队列、交换器...原创 2018-08-22 09:49:55 · 506 阅读 · 2 评论 -
【JVM】JVM基础
程序计数器 PC Register:JVM支持多线程同时执行,每一个线程都有自己的PC Register,线程正在执行的方法叫做当前方法,如果是Java代码,PC Register里面存放的就是当前正在执行的指令的地址,如果是C代码,则为空。虚拟机栈JVM Stacks:Java虚拟机栈是线程私有的,它的生命周期与线程相同。虚拟机描述的是Java方法执行的内存模型:每个方法在执行的同时都会...原创 2018-08-18 17:57:35 · 205 阅读 · 0 评论 -
【JVM】基于BTrace的监控调试
BTrace简介BTrace可以动态地向目标应用程序的字节码注入追踪代码JavaComplierApi、JVMTI、Agent、Instrumentation+ASMBTrace安装入门本机安装新建环境变量BTRACE_HOME添加Path:%BTRACE_HOME%\bin插件安装BTrace使用详解编写脚本需要用到的依赖 ......原创 2018-08-18 15:41:46 · 1009 阅读 · 1 评论 -
【JVM】JVisualVM可视化监控
各版本插件中心:https://visualvm.github.io/pluginscenters.html根据自己JDK的版本选择合适的插件中心安装常用插件:工具——插件本人安装了两个常用插件监控本地Tomcat监控远程Tomcat添加远程主机修改远程tomcat配置[root@localhost bin]# vi catalina.s...原创 2018-08-18 14:40:54 · 542 阅读 · 1 评论 -
【JVM】Jconsole、Jvisualvm检测死锁
查看java进程jps -l打开Jconsole工具,连接指定的Java进程点击如下死锁原创 2018-08-18 11:11:42 · 677 阅读 · 1 评论 -
【JVM】Jstack实战死循环与死锁
死锁检测# 查看Java PID(进程号)[root@localhost ~]# jps -l# 控制台输出线程的dump信息[root@localhost tomcat]# jstack PID[root@localhost tomcat]# jstack Usage: jstack [-l] &lt;pid&gt; (to connect to ...原创 2018-08-18 10:53:07 · 2445 阅读 · 2 评论 -
【JVM】Jmap+MAT实战内存溢出
导出内存映像文件#第一种:内存溢出自动导出-XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath=./#第二种:使用jmap命令手动导出[root@localhost ~]# jmap -dump:format=b,file=heap.hprof 1092Dumping heap to /root/heap.hprof ...Heap d...原创 2018-08-18 08:30:48 · 958 阅读 · 1 评论 -
【JVM】基于JDK命令行监控
JVM参数类型标准参数# 此类参数相对比较稳定-help-server -client #指定JVM的类型-version #就是查看当前机器的java是什么版本,是什么类型的JVM(Server/Client),采用的是什么执行模式。-showversion #运行一个程序的时候首先把JVM的版本信息打印出来,这样便于问题诊断。个人建议Server类型的程序都把这个选项...原创 2018-08-16 20:24:34 · 446 阅读 · 0 评论 -
【zookeeper】单机版安装
1、访问如下链接:zookeeper压缩包下载2、打开页面3、点击下载(可以看到zookeeper的历史版本)4、利用文件传输软件传输到服务器上的home文件夹(也可以上传到其他文件目录)下5、解压[root@localhost home]# tar -zxvf zookeeper-3.4.11.tar.gz 6、查看解压后的目录,并且重命名...原创 2018-07-22 20:00:08 · 184 阅读 · 4 评论 -
【RabbitMQ】学习笔记(一)
1、为什么我们认为应该选择RabbitMQ呢?除了Qpid之外,RabbitMQ是唯一实现了AMQP标准的代理服务器正式由于Erlang,RabbitMQ集群不可思议的简单每个人的经历不同,但我们发现RabbitMQ比竞争对手更可靠,更能防止崩溃RabbitMQ难以置信的容易安装和使用2、为什么通信过程需要信道呢?为什么不直接通过TCP连接发送AMQP命令呢?主要原因在于对操作系统...原创 2018-06-24 17:45:01 · 265 阅读 · 5 评论 -
【攻克RabbitMQ】基础
消息传递模式:点对点 (P2P, Point-to-Point) 模式和发布/订阅 (Pub/Sub) 模式作用 解耦、冗余、扩展性、削峰、可恢复性、顺序保证、缓冲、异步通信具体特点 可靠性、灵活的路由、扩展性、高可用性、多种协议、多语言客户端消息队列的运转过程:多个消费者可以订阅同一个队列,这时队列中的消息会被平均分摊(轮询)给多个消费者进行处理,...原创 2018-08-22 09:39:28 · 291 阅读 · 1 评论