- 博客(90)
- 资源 (5)
- 收藏
- 关注
转载 压测结果-----聚合报告分析(JMeter)
一、聚合报告中的主要名称的含意:Label:每个请求的名称#Samples:各请求发出的数量Average:平均响应时间(单位:毫秒)。默认是单个Request的平均响应时间,当使用了Transaction Controller时,也可以以Transaction为单位显示平均响应时间Median:中位数,具体后面讲90%Line:后面讲95%Line:后面讲99%Line:后面讲Min:最小响应时间Max:最大响应时间Error%:请求的错误率 = 错误请求的数.
2021-11-05 14:39:38 1419
原创 Zookeeper学习
一、zookeeper概述1、工作机制:2、特点3、数据结构4、应用场景A、统一命名服务B、统一配置管理C、统一集群管理D、服务器动态上下线E、软负载均衡二、Zookeeper集群1、选举机制A、第一次启动B、非第一次启动2、节点类型3、监听器原理...
2021-11-02 00:53:35 255
原创 JAVA并发----线程数设置
一、提出问题为了加快程序处理速度,我们会将问题分解成若干个并发执行的任务。并且创建线程池,将任务委派给线程池中的线程,以便使它们可以并发地执行。在高并发的情况下采用线程池,可以有效降低线程创建释放的时间花销及资源开销,如不使用线程池,有可能造成系统创建大量线程而导致消耗完系统内存以及“过度切换”(在JVM中采用的处理机制为时间片轮转,减少了线程间的相互切换) 。但是有一个很大的问题摆在我们面前,即我们希望尽可能多地创建任务,但由于资源所限我们又不能创建过多的线程。那么在高并发的情况下,我们怎么选择最
2021-11-01 23:27:29 660
原创 CompletableFuture用法
一、是什么是Java 8 新增加的Api,该类实现,Future和CompletionStage两个接口,提供了非常强大的Future的扩展功能,可以通过回调的方式处理计算结果二、怎么用1、创建异步任务:public static void main(String[] args) throws Exception { ExecutorService executor = Executors.newFixedThreadPool(10); String
2021-10-18 10:44:04 182
原创 异步任务概念及实现
一、什么是同步和异步同步是阻塞模式,异步是非阻塞模式。 同步就是指程序在执行某个请求的时候,若该请求需要一段时间才能返回信息,那么这个进程将会—直等待下去,知道收到返回信息才继续执行下去。 异步就是程序调用一个耗时较长的功能(方法)时,它并不会阻塞程序的执行流程,程序会继续往下执行。当功能执行完毕时,程序能够获得执行完毕的消息或能够访问到执行的结果(如果有返回值或需要返回值时)。下面通过一个示例来看一下同步和异步的区别。示例中程序通过网络获取两个文件,并对两个文件进行合并处理:二、实现异步
2021-09-05 20:24:20 3465
转载 PO、VO、BO、DTO 和 POJO的概念和用处
一、概念第 1 个:DAO DAO(Data Access Object)数据访问对象,它是一个面向对象的数据库接口,负责持久层的操作,为业务层提供接口,主要用来封装对数据库的访问,常见操作无外乎 CURD。我们也可以认为一个 DAO 对应一个 POJO 的对象,它位于业务逻辑与数据库资源中间,可以结合 PO 对数据库进行相关的操作。第 2 个:PO PO(Persistent Object)持久层对象,它是由一组属性和属性的get和set方法组成,最简单的 PO 就是对应数据库中某个表
2021-08-12 19:51:14 1667
原创 解决spring boot + mybatis 查询数据返回实体类时,实体类个别字段值为null的问题
主要原因:表的字段名找不到实体类的对应的属性解决方案:1、开启mybatis的字段命名驼峰转换,在 application.yml添加mybatis: configuration: map-underscore-to-camel-case: true即可。 2、采用resultMap,将查出的数据的列名称对应的实体属性单独定义,形式为<resultMap>...</resultMap>。例如:...
2021-08-09 11:36:12 1849
原创 软测题目总结
1.软件开发过程模型瀑布模型:严格按照线性的、按阶段顺序逐步细化的开发模式螺旋模型:基本思路时依据前一版本的结果构造新的版本,需要经历多次需求分析、设计、实现、测试这组顺序活动,不断重复迭代的过程形成了一个螺旋上升的路径(整个过程需要迭代多少次取决于具体情况) 优点:能在迭代过程中收集到各种度量的数据 缺点:需要投入更多的人力来更细致的管理其过程,主要因为每次迭代完必须保证其文档的一致性增量模型:每次迭代只是在前一次...
2021-05-12 19:28:55 160
原创 小米测试面试题
1.软件开发模型,不同模型间的区别?2.软件测试分为哪几个阶段,集成测试和系统测试之间的区别?主要分为四个阶段:单元测试、集成测试,系统测试、验收测试集成测试和系统测试的区别:1.测试方法不同:集成测试采用白盒+黑盒,系统测试采用黑盒2.考察范围不同:集成测试主要测试模块之间的接口和接口数据传递关系,以及模块组合后的整体功 能;系统测试主要测试整个系统相对于需求的符合度3.评估基准不同:集成测试主要是接口覆盖率,系统测试是测试用例对需求规格的覆盖率3.白盒测试和黑盒测试的优缺
2021-04-20 21:09:46 3249 3
原创 测试常见面试题
1.公司的测试流程:首先参与需求评审会议,产品会介绍产品业务及功能细节,开发会对功能实现流程做一个介绍;之后大佬制定具体测试计划,然后我们编写测试用例,写完后进行用例评审。等开发开发完成并且自测通过后提测,测试正式介入。先进行一轮详细测试,测试过程中发现的bug做好详细记录,并对bug进行跟踪,进行回归测试,直至产品满足需求。详细测试完成后有两人进行合并测试,测试结束后分析测试结果,编写测试报告。最后就是发布上线。上线后关注线上产品是否正常运行。2.项目相关:3.开发不认识bug怎么办?
2021-04-14 20:36:34 269 2
原创 postman使用指南
简单使用指南:下图是Postman的工作区间,各个模块功能的介绍如下:1、New,在这里创建新的请求、集合或环境;还可以创建更高级的文档、Mock Server 和 Monitor以及API。2、Import,这用于导入集合或环境。有一些选项,例如从文件,文件夹导入,链接或粘贴原始文本。3、Runner,可以通过Collection Runner执行自动化测试。后续介绍。4、Open New,打开一个新的标签,Postman窗口或Runner窗口。5、My Workspace - 可以单独或
2021-04-11 11:37:12 313
转载 自动化测试---元素定位
1. Xpath 定位 绝对路径(不推荐) 是一个完整的xpath路径,可通过浏览器插件定位并直接生成。但因为这种方式是直接写死的,页面一旦发生改动,维护成本非常大,所以我们一般都采用相对路径。例如:xpath=/html/body/div[2]/div[1]/div/div[1]/div/form/span[1]/input 相对路径(推荐) 就是使用元素本身定位。例://*[@id="kw"]xpath常用符号: / 表示绝对路径绝对路径是指从根目录开始 ..
2021-02-20 11:13:11 207
原创 Puppeteer Error:Execution context was destroyed, most likely because of a navigation.
原因:页面发生了跳转导致page丢失解决方案:// 在跳转之后添加await page.waitForNavigation(); // 等待页面跳转
2021-02-20 11:03:27 729 1
原创 Linux基本命令
一.系统命令logout(注销) ,shutdown(关闭系统), halt(关机并切断电源), reboot(重启)二.文件和目录操作1. ls (列出文件列表),常用参数: -l , 用于显示目录下的文件例:显示当前目录下文件列表root@Lan-Test:~# ls -l root@Lan-Test:~# ll2. cd (切换目录),可让用户切当前所在的目录,即changedirectory例:切换到/data/jetty-7.6.9/目录root@Lan-Te.
2020-12-24 15:25:03 300
原创 多线程面试总结一
1.在Java程序中怎么保证多线程的运行安全?出现线程安全问题的原因:线程切换带来的原子性问题 缓存导致的可见性问题 编译优化带来的有序性问题解决方案:JDK Atomic开头的原子类,synchronized,LOCK,可以解决原子性问题 synchronized,volatile,LOCK可以解决可见性问题 Happens-Before规则可以解决有序性问题2.线程与进程的区别根本区别:进程是操作系统资源分配的基本单位,线程是处理器任务调度和执行的基本单位资源开销:进程之
2020-10-13 15:42:29 161
原创 Java面试题2
1.数组与集合的互相转换数组转 List:使用 Arrays. asList(array) 进行转换。 List 转数组:使用 List 自带的 toArray() 方法。2.创建线程的四种方式继承 Thread 类; 实现 Runnable 接口; 实现 Callable 接口; 使用 Executors 工具类创建线程池3.数据库的乐观锁和悲观锁是什么?怎么实现的?数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及
2020-09-20 12:48:44 181
转载 八大排序算法总结
原文地址:http://blog.csdn.net/hguisu/article/details/7776068概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序。 快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机...
2020-09-04 10:07:26 440
转载 数组和链表的区别
谈到链表与数组的区别,可以从几个不同的角度来谈,首先从逻辑结构上说,两者都是数据结构的一种,但存在区别,数组是申请的一块连续的内存空间,并且是在编译阶段就要确定空间大小的,同时在运行阶段是不允许改变的,所以它不能够随着需要的改变而增加或减少空间大小,所以当数据量大的时候,有可能超出了已申请好的数组上限,产生数据越界,或者是数据量很小,对于没有使用的数组空间,造成内存浪费。链表则是动态申请的内存空间,并不像数组一样需要事先申请好大小,链表是现用现申请就OK,根据需求动态的申请或删除内存空间,对于的
2020-08-11 18:01:47 444
原创 异步----CompletableFuture
一、线程回顾1、初始化线程的4种方式1. 继承ThreadThread01 thread = new Thread01();thread.start(); //启动线程```2. 实现Runnable接口Runnable01 runnable01 = new Runnable01();new Thread(runnable01).start();3. 实现Callable接口+FutureTaskFutureTask<Integer> futureTask
2020-07-28 11:31:29 244
原创 面包屑导航
一、网站面包屑导航有哪几种类型?1、路径型:路径型面包屑是一个动态显示用户到达页面经过的途径;2、位置型:位置型面包屑是固定的,显示了页面在网站结构中的位置;3、属性型:属性型面包屑给出的当前页面的分类信息。面包屑导航一般都在导航的下面,形式一般为 首页 > 一级目录名称 > 二级目录名称 > 目前位置,尽量要把面包屑导航的层次控制在四层以内,这样也有利与搜索引擎蜘蛛一层层往下爬,到了四层以下就很难爬到了。二、作用分别是什么?1、让用户了解目前所处位置,以及当前
2020-07-27 07:25:36 605
原创 SpringCache简单应用
一,整合1,引入依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency> <groupId>org.sp
2020-07-24 08:35:27 132
原创 项目性能压测
1.性能指标:测试实例:JMeter Address Already in use 错误解决性能监控:首先考虑应用是属于CPU密集型还是IO密集型1.JVM内存模型两个检控工具2.中间件对性能的影响nginx:网关 ;中间件越多,性能损失越大,大都损失在网络交互上业务方面:数据库的响应速度(优化SQL,加索引),页面渲染(thymeleaf)的速度(开缓存),获取静态资源的速度(动静分离)优化:一,动静分离:1,所有
2020-07-20 16:30:15 294
原创 nginx+windows搭建域名访问环境
1.修改Windows的hosts文件,添加映射规则:2.nginx做反向代理,所有来自gulimall.com的请求都转到商品服务修改nginx配置:访问gulimall.com先访问到虚拟机的nginx,nginx监听80端口,然后将请求代理到本机10000端口由于是分布式服务,可能需要多次修改nginx配置,可以让nginx代理带网关,再有网关到注册中心发现有哪些服务然后分发请求nginx配置网关在网关配置域名映射:(一定要放在最后,否则就会把其他匹配规则截掉)
2020-07-20 08:50:07 346 1
原创 商品上架-sku在es中存储模型分析
1,为什么采用ES做全文检索?ES的全文检索功能比MySQL强大,且ES的数据都是存在内存中的,总体性能上强于MySQL2.数据在ES中的存储模型:ES数组的扁平化处理:扁平化处理会带来一些问题,可能会检索到原本没有的数据,为解决这个问题,可以使用嵌入式的属性...
2020-07-19 23:17:07 658
原创 通过JAVA操作ES
1.导入依赖;<dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client</artifactId> <version>7.8.0</version></dependency>2.编写配置,给容器中注入一个RestHighLeve
2020-07-15 17:28:29 194
原创 Elastic search对数据的分析
聚合分析:复杂聚合:子聚合复杂查询进阶:最终结果:Mapping映射:首先创建索引指定映射规则:
2020-07-14 22:59:33 242
转载 浪潮之巅
近一百多年来,总有一些公司很幸运地、有意识或者无意识地站在技术革命的浪尖之上。一旦处在了那个位置,即使不做任何事,也可以随着波浪顺顺当当地向前漂个十年甚至更长的时间。在这十几年间,它们代表着科技的浪潮,直到下一波浪潮的来临。从一百年前算起,AT&T 公司、IBM 公司、苹果公司 (Apple)、英特尔 (Intel) 公司、微软 (Microsoft) 公司、思科公司 (Cisco) 公司、雅虎 (Yahoo) 公司和谷歌 (Google) 公司都先后被幸运地推到了浪尖。虽然,它们来自不同的领域.
2020-07-14 06:58:36 1860
原创 Elasticsearch对文档的查询操作
查询文档中个字段的含义:“-index”: 表示在那个索引(相当于数据库中位于那个库)“-type”: 表示是那个类型(相当于数据库中位于哪个表)“-id”: 记录的ID“-version”: 版本号“-seq_no”: 并发控制字段,每次更新就会加一,用来做乐观锁“-primary_term”: 同上。主分片重新分配,如重启就会变化“-found”: 表示是否找到数据查询文档中个字段的含义“-source”:真正查找的内容更新文档:POST更新会对比原来...
2020-07-14 00:07:04 473
原创 SpringMVC无法访问静态资源的解决办法
1.激活Tomcat的defaultServlet来处理静态文件在SpringMVC的配置文件里添加<mvc:default-servlet-handler/>在web.xml里配置不需要被拦截的内容: <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.png</url-pattern
2020-07-13 22:33:41 914
原创 Docker 启动 Elasticsearch 7.4.2闪退问题的解决
问题:启动之后,在docker ps 命令下面找不到我们的启动的容器只有在docker ps -a才看的到我们启动的容器可能的原因:虚拟机内存不足。可通过-e ES_JAVA_OPTS限制占用内存大小具体配置:docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" \-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \-v /mydata/elas
2020-07-11 01:00:56 757
原创 Java面试(一)
1.面向对象的三大特征:多态,封装,继承2.什么是多态,JAVA语言是如何实现多态?所谓多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。因为在程序运行时才确定具体的类,这样,不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上,从而导致该引用调用的具体方法随之改变,即不修改程序代码就可以改变程序运行时
2020-07-09 09:30:03 180
原创 最短超串-滑动窗口
class Solution { public int[] shortestSeq(int[] big, int[] small) { //左右双指针表示滑动窗口,start和min用来保存最优解 int left = 0,right = 0,start = 0; int min = Integer.MAX_VALUE; //window用来记录当前窗口包含的字符和出现的次数 //needs用来记录small当中出现的.
2020-07-01 12:51:23 237
原创 消息中间件Active MQ
消息中间件Active MQ:解决了耦合调用的问题;异步模型;抵御洪峰流量,达到保护主要业务的目的,削峰JMS编码总体架构类比JDBC消息两大模式:Topic:消息队列的详细比较:消息体;事务偏生产者,签收偏消费者开启事务容错能力大大加强,消息如果出错可以回滚Session.rollback();手动签收:...
2020-06-16 17:49:39 188
原创 Docker:容器虚拟化技术
理念:一次构建处处运行Docker是什么:解决了运行环境和配置问题软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术Docker与虚拟机虚拟机:带环境安装的一种解决方案,能够使应用程序,操作系统和硬件三者之间的逻辑不变 容器虚拟化技术:Linux容器,不是模拟一个完整的操作系统,只需要软件工作所需的库资源和设置Docker架构图:Docker的三大要素:镜像,容器,仓库镜像:容器 :仓库:小总结:Docker命令中Ru...
2020-06-16 17:21:31 268
原创 集合类不安全之并发修改异常:java.util.ConcurrentModificationException,高并发多线程访问下的常见异常
ArrayList线程不安全的原因是其中的add方法没有加锁故障现象:java.util.ConcurrentModificationException 导致原因:并发争抢修改导致,参考花名册签名情况,一个人正在写,另一个同学过来抢夺,导致数据不一致异常。并发修改异常。 解决方案: 用Vector Collections.synchronizedList(new ArrayList<>(); new CopyOnWriteArrayList<>(); ...
2020-06-16 17:05:05 489
原创 CAS及其引起的ABA问题
CAS是什么也就是比较并交换(compareAndSet)CAS全称为Compare-And-Swap,它是一条CPU并发原语。调用Unsafe类中的CAS方法,JVM发出CAS汇编指令,这是偏硬件的功能。而原语的执行必须是连续的,在执行过程中不允许被终端。也就说CAS是一条CPU的原子指令。CAS底层原理: AtomicInteger类下:private static final Unsafe unsafe=Unsafe.getUnsafe(); private static...
2020-06-16 17:00:14 267
原创 JAVA反射机制及其应用场景
JAVA反射机制 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。Java反射机制主要提供了以下功能:(1)在运行时判断任意一个对象所属的类;(2)在运行时构造任意一个类的对象;(3)在运行时判断任意一个类所具有的成员变量和方法;(4)在运行时调用任意一个对象的方法;生成动态代理。实现Java反射机制的API在Java.la...
2020-06-16 16:51:14 735
转载 HashMap、HashTable和ConcurrentHashMap的区别?
HashMap和HashTable的区别一种比较简单的回答是:(1)HashMap是非线程安全的,HashTable是线程安全的。(2)HashMap的键和值都允许有null存在,而HashTable则都不行。(3)因为线程安全、哈希效率的问题,HashMap效率比HashTable的要高。但是如果继续追问:Java中的另一个线程安全的与HashMap功能极其类似的类是什么?同样是线程安全,它与HashTable在线程同步上有什么不同?带着这些问题,开始今天的文章。1.HashM..
2020-06-16 16:30:55 201
Spring AOP源码分析.mmap
2020-08-18
Git-2.26.1-64-bit.exe
2020-04-16
jdk1.8.0_191.rar
2020-04-10
ssm-crud.zip
2020-04-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人