摘要:
JMeter入门 一、概述 JMeter是Apache下一款在国外非常流行和受欢迎的开源性能测试工具,JMeter可用于模拟大量负载来测试一台服务器,网络或者对象的健壮性或者分析不同负载下的整体性能。 1、压测不同的协议和应用 1) Web - HTTP, HTTPS (Java, NodeJS, 阅读全文
摘要:
TCP协议 本文内容如下: 1)TCP协议概念 2)TCP头部结构和字段介绍 3)TCP流量控制 滑动窗口 4)TCP拥塞控制 慢启动、拥塞避免、快重传、快恢复 有关TCP的三次握手四次挥手单独写了一篇博客:【TCP协议】 TCP三次握手和四次挥手 有关TCP粘包和黏包,也单独写一篇博客,下一篇博客 阅读全文
摘要:
HTTP协议详解 一.HTTP简介 1.HTTP协议,即超文本传输协议(Hypertext transfer protocol)。是一种详细规定了浏览器和万维网(WWW = World Wide Web)服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。 2.HTTP协议作为TCP/ 阅读全文
摘要:
“兵马未动粮草先行”,看完了相关的配置之后,我们先来创建一张测试表和一些测试数据。 -- 如果存在 person 表先删除 DROP TABLE IF EXISTS person; -- 创建 person 表,其中 username 字段可为空,并为其设置普通索引 CREATE TABLE per 阅读全文
摘要:
高并发设计方案 1.负载均衡2.分布式微服务3.缓存机制4.分布式关系型数据库4.1 垂直分表4.2 水平分表4.3 开源框架分类4.4 实现方案5.分布式消息队列5.1 常见的消息队列5.2 消息队列的场景6.CDN内容分发网络 负载算法: 随机算法 轮询算法 轮询权重算法 一致性哈希算法 最小连 阅读全文
摘要:
一、数据库与缓存一致性 使用缓存,可以降低耗时,提供系统吞吐性能。但是,使用缓存,会存在数据一致性的问题。 1、几种缓存使用模式 Cache-Aside Pattern,旁路缓存模式 Read-Through/Write-Through(读写穿透) Write- behind (异步缓存写入) 一般 阅读全文
摘要:
Spring事务详解 什么叫事务?关于事务,最简单最常见的例子就是取钱。ATM机取钱有两个步骤,第一步输入金额密码,银行卡扣掉1000元,第二步ATM出钞1000元,这两个步骤必须要么都执行成功,要么都不执行。如果其中一个步骤失败了,必须把整个过程回滚,取消掉所有操作,这就是事务最基本的应用,事务就 阅读全文
摘要:
生成付款二维码 一、微信网站扫码支付介绍 1、扫码支付文档 微信开发官方文档:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_5 有关微信支付的流程图微信官方已经说的很清楚了,这里也无需其它解释。这边采用微信支付扫码模式二(不依 阅读全文
摘要:
授权码code获取用户基本信息 上一遍已经获得微信回调的code,网址:回调获取code 那这篇通过code和其它参数去获得用户基本信息。 github源码地址:https://github.com/yudiandemingzi/spring-boot-wechat-login 1、UserServ 阅读全文
摘要:
本地调试工具ngrok、微信回调ngrok域名 一、本地调试工具ngrok 1、什么是ngrok? 简单总结下:内网穿透利器,使用反向代理原理,达到从外网访问防火墙内部的服务。 2、ngrok作用 举例:用户微信扫码授权成功后,会带上用户信息回调对应的域名,但在本地电脑开发,微信没法回调,所以需要配 阅读全文
摘要:
扫码登录流程讲解、获取授权登陆二维码 具体流程可以看微信官网的扫码登录文档 地址:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open141931650 阅读全文
摘要:
正文首先来明确一下 Offset 的含义, RocketMQ 中, 一 种类型的消息会放到 一 个 Topic 里,为了能够并行, 一般一个 Topic 会有多个 Message Queue (也可以 设置成一个), Offset是指某个 Topic下的一条消息在某个 Message Queue里的 阅读全文
摘要:
java提高(16) java注解 注解含义注解是JDK1.5之后才有的新特性,它相当于一种标记,在程序中加入注解就等于为程序打上某种标记,之后又通过类的反射机制来解析注解。 一、JDK自带注解 JDK1.5之后内部提供的三个注解 @Deprecated #废弃,过时。 @Override #重写、 阅读全文
摘要:
HashSet 与TreeSet和LinkedHashSet的区别 今天项目开发,需要通过两个条件去查询数据库数据,同时只要满足一个条件就可以取出这个对象。所以通过取出的数据肯定会有重复,所以要去掉重复项。 如果用list集合接收两次的返回对象,那么肯定是有重复对象在list集合中,一开始我想到的是 阅读全文
摘要:
TreeSet(一) 一、TreeSet定义: 与HashSet是基于HashMap实现一样,TreeSet同样是基于TreeMap实现的。 1)TreeSet类概述 使用元素的自然顺序对元素进行排序 或者根据创建 set 时提供的 Comparator 进行排序 具体取决于使用的构造方法。 2)T 阅读全文
摘要:
异常 一.异常与错误的区别 再讲异常之前我们就应该要知道异常和错误的区别 Error类和Exception类的父类都是throwable类,他们的区别是: Error类一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢等。对于这类错误的导致的应用程序中断, 仅靠程序本身无 阅读全文
摘要:
设计模式总则 一、概述 1、什么是设计模式 设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。 解释下: 分类编目:就是说可以找到一些特征去划分这些设计模式,从而进行分类。 代码设计经验:这句很重要,设计经验的总结,也就是说设计模式,是为了指导设计而从经验中总结出来的套路。 阅读全文
摘要:
ThreadPoolExecutor 官方API解释线程池的好处: (1)通过重用线程池中的线程,来减少每个线程创建和销毁的性能开销。 (2)对线程进行一些维护和管理,比如定时开始,周期执行,并发数控制等等。 一、Executor Executor是一个接口,跟线程池有关的基本都要跟他打交道。下面是 阅读全文
摘要:
线程创建、start、run 一、创建线程方式 java创建线程的方式,主要有三种:类Thread、接口Runnable、接口Callable。 1、Thread和Runnable进行比较 他们之间的区别 1、实现Runnable的类更具有健壮性,避免了单继承的局限。 2、Runnable更容易实现 阅读全文
摘要:
Map中的computeIfAbsent方法 Map接口的实现类如HashMap,ConcurrentHashMap,HashTable等继承了此方法,通过此方法可以在特定需求下,让你的代码更加简洁。 一、案例说明 1、概述 在JAVA8的Map接口中,增加了一个方法computeIfAbsent, 阅读全文