自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (2)
  • 收藏
  • 关注

原创 Spring Cloud GateWay 路由转发实例及规则介绍

Spring在因Netflix开源流产事件后,在不断的更换Netflix相关的组件,比如:Eureka、Zuul、Feign、Ribbon等,Zuul的替代产品就是SpringCloud Gateway,这是Spring团队研发的网关组件,可以实现限流、安全认证、支持长连接等新特性。删除线格式Spring Cloud Gateway...

2019-09-18 16:00:00 11556 1

原创 SpringBoot 2.1.8 整合 JWT 框架

一、传统Session认证1、认证过程1、用户向服务器发送用户名和密码。2、服务器验证后在当前对话(session)保存相关数据。3、服务器向返回sessionId,写入客户端 Cookie。4、客户端每次请求,需要通过 Cookie,将 sessionId 回传服务器。5、服务器收到 sessionId,验证客户端。2、存在问题1、session保存在服务端,客户端访问高并发时...

2019-09-17 11:40:51 475

原创 链表与数组的区别

因为数组不需要遍历,能直接取得要操作的对象,但是需要移动其后的所有项,而链表无法直接获取要操作的对象,需要遍历获取,之后直接删除或者插入,而不需要移动其他项。之所以说链表的插入和删除比数组的性能好,并不是说在任何情况下链表的插入和删除效率都要比数组的高,而是链表插入删除的最差时间复杂度也就是O(n),而在已得到要操作的结点的引用时,它就能省去遍历的步骤直接插入删除,时间复杂度为O(1),并且数组会有比如扩容等操作造成很多额外的时间支出,以及内存碎片所导致的空间支出。而链表则没有大小限制,支持动态扩容。

2023-09-01 15:38:02 162

原创 mysql EXPLAIN详解

MySQL EXPLAIN命令是查询性能优化不可缺少的一部分,该文主要讲解explain命令的使用及相关参数说明。idid是用来顺序标识整个查询中SELELCT 语句的,在嵌套查询中id越大的语句越先执行。该值可能为NULL,如果这一行用来说明的是其他行的联合结果。select_type表示查询的类型table对应行正在访问哪一个表,表名或者别名注意:MySQL对待这些表和普通表一样,但是这些“临时表”是没有任何索引的。typetype显示的是访问类型,是较为重要的一个指标,结果值从好到坏依

2022-07-13 18:52:11 188 1

原创 【无标题】

一、QPS,每秒查询QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。互联网中,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。二、TPS,每秒事务TPS:是TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时

2022-07-09 09:52:18 86

原创 Linux 端口号 与 进程号 互查

linux下通过进程名查看其占用端口:1、先查看进程pidps -ef | grep 进程名2、通过pid查看占用端口netstat -nap | grep 进程pid例:通过nginx进程查看对应的端口号#查看nginx进程pid:命令:ps -ef | grep nginx结果:root 9836 1 0 Jul11 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginxnobo

2021-05-07 17:18:50 142

原创 spring不能注入静态变量的原因

静态方法是属于类(class)的,普通方法才是属于实体对象(也就是New出来的对象)的,spring注入是在容器中实例化对象,所以不能使用静态方法。@Autowired private static YourClass yourClass; 可以试一下,yourClass在这种状态下不能够被依赖注入,会抛出运行时异常java.lang.NullPointerException,为什么呢?...

2020-03-09 15:27:40 642

原创 TPS和QPS 并发量区别;日活 访问量 活跃度

一、系统承载吞度量系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。系统吞吐量几个重要参数:QPS、TPS、并发数、响应时间1、吞吐量(TPS):吞吐量是指系统在单位时间内处理请求的数量;也就是事务数/秒。它是软件测试结果的测量单位。2、每秒查询率QPS...

2020-03-06 10:41:01 3222

原创 PV、UV、QPS 之间关系

QPS:每秒查询率(Query Per Second) ,每秒的响应请求数,也即是最大吞吐能力。QPS = req/sec = 请求数/秒QPS统计方式 [一般使用 http_load 进行统计]QPS = 总请求数 / ( 进程总数 * 请求时间 )QPS: 单个进程每秒请求服务器的成功次数峰值QPS:原理:每天80%的访问集中在20%的时间里,这20%时间叫做峰值时间公式:( ...

2020-03-06 10:27:04 872

原创 PV、TPS、QPS 计算公式

TPS和QPS的区别术语说明:QPS = req/sec = 请求数/秒【QPS计算PV和机器的方式】QPS统计方式 [一般使用 http_load 进行统计]QPS = 总请求数 / ( 进程总数 * 请求时间 )QPS: 单个进程每秒请求服务器的成功次数单台服务器每天PV计算公式1:每天总PV = QPS * 3600 * 6公式2:每天总PV = QPS * 3600 * ...

2020-03-06 10:08:45 1253

原创 Springboot v2.0.6 +vue实现增删查改例子小记

学习Vue,就想着自己搭建一个框架学习一下,本文属于Vue与后台的增删改查入门例子,不做讲解,只为了记录一下代码。后台框架前台框架的搭建自己百度就可以做到了...

2020-01-16 13:36:19 540

转载 定位linux服务器cpu过高的问题

1.top命令找到cpu占用最高的进程号2.top -Hp 5363命令找到cpu占用最高的线程号3.获取5363的16进制红框部分14f3:printf %x 53754.进入java的bin目录下执行命令: jstack 5363(进程号) |grep -A 200 1ad8(线程号16进制)...

2019-12-23 15:32:17 162

转载 Redis缓存穿透、缓存雪崩、redis并发问题分析

把redis作为缓存使用已经是司空见惯,但是使用redis后也可能会碰到一系列的问题,尤其是数据量很大的时候,经典的几个问题如下:(一)缓存和数据库间数据一致性问题分布式环境下(单机就不用说了)非常容易出现缓存和数据库间的数据一致性问题,针对这一点的话,只能说,如果你的项目对缓存的要求是强一致性的,那么请不要使用缓存。我们只能采取合适的策略来降低缓存和数据库间数据不一致的概率,而无法保证两者间...

2019-11-14 11:42:21 65

原创 何为微服务?微服务架构的优势!

一、传统单体架构的缺陷传统的单体应用,将所有功能的表示层、业务逻辑层,数据访问层,包括静态资源等等全部糅合在一个工程里面,编译,打包,部署在单台服务器上上线,比如打成war包放在Tomcat的webapp目录中部署项目。这样的项目开发部署适合小型项目,系统功能不复杂,访问量不大的情况下有绝对的优势。开发速度快,运维方便。但是当业务越来越复杂,功能越来越多,参与的开发人员越来越多,就暴露出问题了:...

2019-11-12 16:53:15 201

原创 常用的设计模式汇总!

单例模式简单点说,就是一个应用程序中,某个类的实例对象只有一个,你没有办法去new,因为构造器是被private修饰的,一般通过getInstance()的方法来获取它们的实例。getInstance()的返回值是一个对象的引用,并不是一个新的实例,所以不要错误的理解成多个对象。单例模式实现起来也很容易,直接看demo吧public class Singleton {private st...

2019-11-12 13:55:04 84

原创 Spring boot 整合 RabbitMQ 介绍

消息确认机制消息确认分为两部分: 生产确认 和 消费确认。生产确认: 生产者生产消息后,将消息发送到交换机,触发确认回调;交换机将消息转发到绑定队列,若失败则触发返回回调。消费确认: 默认情况下消息被消费者从队列中获取后即发送确认,不管消费者处理消息时是否失败,不需要额外代码,但是不能保证消息被正确消费。我们增加手动确认,则需要代码中明确进行消息确认。在配置文件中添加:spring: ...

2019-10-23 15:16:22 346

原创 IDEA调试常用快捷键

1、F8 单步调试,不进入函数内部2、F7 单步调试,进入函数内部3、Shift+F7 选择要进入的函数4、Shift+F8 跳出函数5、Alt+F9 运行到断点6、Alt+F8 执行表达式查看结果7、F9 继续执行,进入下一个断点或执行完程序8、Ctrl+F8 设置/取消当前行断点9、Ctrl+Shift+F8 查看断点...

2019-10-19 14:47:10 278

原创 基于Springboot高并发商品限时秒杀系统

系统介绍本系统是使用SpringBoot开发的高并发限时抢购秒杀系统,除了实现基本的登录、查看商品列表、秒杀、下单等功能,项目中还针对高并发情况实现了系统缓存、降级和限流。开发工具IntelliJ IDEA + Navicat + Sublime Text3 + Git + Chrome压测工具JMeter开发技术前端技术 :Bootstrap + jQuery + Thymelea...

2019-09-16 16:03:28 506

转载 MySQL分区和分表

一、概念1.为什么要分表和分区?日常开发中我们经常会遇到大表的情况,所谓的大表是指存储了百万级乃至千万级条记录的表。这样的表过于庞大,导致数据库在查询和插入的时候耗时太长,性能低下,如果涉及联合查询的情况,性能会更加糟糕。分表和表分区的目的就是减少数据库的负担,提高数据库的效率,通常点来讲就是提高表的增删改查效率。2.什么是分表?分表是将一个大表按照一定的规则分解成多张具有独立存储空间的实...

2019-09-11 19:43:55 95

转载 Vue环境搭建+VSCode+Win10

<div id="article_content" class="article_content clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_307&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/junshangs...

2019-07-15 15:36:54 128

原创 jquery动态控制checkbox选中状态

jquery动态控制checkbox选中状态后台传一个字符串 1,2,3如何循环把checkbox value或者id值为 1 2 3 的这三个checkbox选中。 1 2 3

2019-01-28 14:38:46 10008

原创 Springboot 2.0.3.RELEASE 与 activiti 5.22.0 整合

activiti Spring boot 整合源码项目采用Springboot 2.0.3.RELEASE版本以及activiti 5.22.0版本在acitiviti官网下载完整包https://github.com/Activiti/Activiti/releases/tag/activiti-5.22.0下载完成后1、将Activiti-activiti-5.22.0\modules...

2018-11-09 10:36:02 5627

activiti Spring boot 整合

Springboot 2.0.3.RELEASE版本 + activiti 5.22.0版本 + mysql 代码整合真实案例。

2018-11-09

深入浅出_jBPM_电子书.doc

深入浅出的介绍了 jbpm工作流,及如何进行工作,此文档值得拥有。请到此一看。

2014-06-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除