自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Mysql 常用函数

【代码】Mysql 常用函数。

2023-09-18 10:34:38 91

原创 RestTemplate 下载第三方接口Zip文件,并读取文件中需要的内容,提供给前端下载

业务场景: 使用 resttemplate 调用第三方提供的接口,该接口是下载 zip文件,里面有多个pdf文件。这里需要把其中的pdf文件读取出来,并返回给前端下载 pdf文件。

2023-04-03 09:20:21 1095

原创 SpringBoot 自动装配原理

@SpringBootApplication 注解点进去如下: 有3个重要的注解分别是 @SpringBootConfiguration要想当前程序可以申明成自动注入装配的。我们一般可以在类上添加 @Component ,但是这个 @SpringBootConfiguration 里并没有看到。点击 Configuration 进入 点击 @Configuration 进入,可以看到 Configuration 上已经有了 @Component 的注解了。注解有继承关系。Spring

2022-06-28 08:13:46 171

原创 [m] Spring Cloud gateway 2 : 配置文件、Java代码Path断言两种方式实现URL映射

properties 配置文件、Java代码 RouteLocator 两种方式实现 url 映射第一种:配置文件形式匹配的路径是 /pro 。就会映射到 EUREKA-CLIENT 服务,并自动做负载均衡。第二种 Java代码配置 RouteLocatorBuilder ...

2022-04-15 15:33:30 589

原创 [m] Spring Cloud gateway 1 创建默认路由规则

创建gatewaypom 依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apac

2022-04-08 17:54:36 1040

原创 SpringCloudAlibaba 【7】Sentinel 熔断降级

熔断降级熔断策略,慢调用比例,异常比例,异常数​ 现代微服...

2022-03-30 13:48:31 446

原创 SpringCloudAlibaba 【6】Sentinel 流控规则

流控规则资源名:唯一名称,默认请求路径针对来源:Sentinel可以针对调用者进行限流,填写微服务名,默认default(不区分来源)阈值类型/单机阈值: QPS(每秒钟的请求数量):当调用该API的QPS达到阈值的时候,进行限流 线程数:当调用该API的线程数量达到阈值的时候,进行限流是否集群:当前不需要集群流控模式: 直接:API达到限流条件时,直接限流 关联:当关联的资源达到阈值时,就限流自己 链路:只记录指定链路上的流量(指定资源从入口资源进来的流量,如果达到阈值,...

2022-03-15 17:12:25 229

原创 SpringCloudAlibaba 【5】Sentinel 初始化监控

SentinelGithubhttps://github.com/alibaba/Sentinel/wiki/%E4%BB%8B%E7%BB%8D国内官网文档quick-start下载和安装https://github.com/alibaba/Sentinel/releases官方提供的手册:https://spring-cloud-alibaba-group.github.io/github-pages/hoxton/en-us/index.html#_spring_cl.

2022-03-15 15:59:15 698

原创 SpringCloudAlibaba 【4】Nacos Linux安装集群配置

Nacos Linux安装在官网上下载NacosLinux版本:https://github.com/alibaba/nacos/releases在Linux系统中解压此文件tar -zxvf nacos-server-2.0.3.tar.gz打开nacos目录下的bin目录输入命令即可执行sh startup.sh -m standaloneNacos集群配置修改application.properties配置文件,但是修改之前我们最好做一个备份...

2022-03-15 11:31:23 2381

原创 SpringCloudAlibaba 【3】Nacos 持久化配置

Nacos支持三种部署模式1. 单机模式 - 用于测试和单机试用2. 集群模式 - 用于生产环境,确保高可用3. 多集群模式 - 用于多数据中心场景集群部署说明集群部署说明具体拆分 默认Nacos使用嵌入式数据库实现数据的存储,所以,如果启动多个默认配置下的Nacos节点,数据储存存在一致性问题,为了解决这个问题,Nacos采用了集中存储方式来支持集群化部署,目前仅支持MySql的存储。1. 推荐使用Linux2. 可以使用内部数据源或者外部数据源(推...

2022-03-14 17:50:56 804

原创 SpringCloudAlibaba 【2】Nacos配置中心搭建

在 Nacos Spring Cloud 中,dataId 的完整格式如下:${prefix}-${spring.profiles.active}.${file-extension}prefix默认为spring.application.name的值,也可以通过配置项spring.cloud.nacos.config.prefix来配置。 spring.profiles.active即为当前环境对应的 profile,详情可以参考Spring Boot文档。注意:当spring....

2022-03-13 12:13:27 830

原创 SpringCloudAlibaba 【1】Nacos注册中心搭建

springcloudalibaba 官网https://nacos.io/zh-cn/docs/quick-start-spring.htmlnacos 官网文档https://nacos.io/zh-cn/docs/quick-start-spring-cloud.htmlNacos 下载GitHub - alibaba/nacos: an easy-to-use dynamic service discovery, configuration and service managem.

2022-03-11 18:03:08 209

原创 项目越来越慢的原因

线程争抢过于激烈,可使用 visualvm 查看。可视化分析线程dump的工具:fastThread Smart Java thread dump analyzer - thread dump analysis in seconds .

2022-02-10 15:43:21 747

原创 SpringMvc 同一个接口接收不同的 Content-Type

前端传参中,请求头中的 Content-Type 会有多种形式,这里只列举两种application/json application/x-www-form-urlencoded同一个接口,来接收不同的Content-Type 类型,代码如下。通过判断不同的Content-Type,使用不同的方式读取数据。 请求是 Post 请求: @PostMapping("Pay") @ApiOperation(value = "支付接口", response = ScanPayPassi.

2022-01-05 16:57:48 1021

原创 CPU 过高问题定位

使用 Linux 命令检查 CPU 过高问题top + jstack1. 使用 top 命令查看CPU占用最高的进程:360322. 使用 top -Hp 36032 查看36032 这个进程里线程运行的信息。从结果可以看出 36044 这个线程是Cpu占用率最高的3. 使用 printf %x 36044 把36044 转换为16进制,得到 8ccc .4. 使用 jstack 36032 > 1.txt 去dump Cpu过高的进程,把结果输出到1.txt...

2021-12-12 11:29:38 359

原创 Jvm 垃圾收集器

垃圾收集算法:为实现垃圾回收提供理论支持垃圾收集器:利用垃圾收集算法,实现垃圾回收的实践落地。各种垃圾收集器之间也是可以配合使用的:比如 CMS可以和ParNew配合,CMS和Parallele Scavenge 不能使用Stop The World简写为 STW,也叫全局停顿,Java代码停止运行,native 代码继续运行,但不能与JVM进行交互。 原因:多半由于垃圾会受到在;也可能是 Dump线程,死锁检查、 Dump 堆等导致。...

2021-11-09 18:01:27 426

原创 Jvm 垃圾回收算法

标记-清除(Mark-Sweep)标记需要回收的对象(前文的使用可达性分析来判断标记) 清理掉需要回收的对象标记-清除(Mark-Compact)标记需要回收的对象 把所有的存活对象压缩到内存的一端 清理掉边界外所有的空间复制(Copy)把内存分为两块,每次只使用一块 将正在使用的内存中的存活对象复制到未使用的内存中去,然后清除掉正在使用的内存中的所有对象 交换两个内存的角色,等待下次回收...

2021-11-09 16:05:13 77

原创 Jvm 垃圾回收算法 : 引用计数&可达性分析

什么场景下该使用是吗垃圾回收策略垃圾回收发生在哪些区域对象在什么时候能够被回收什么场景下该使用是吗垃圾回收策略对内存要求苛刻的场景:想办法提高对象的回收效率,多回收掉一些对象,腾出更多内存 在Cpu使用率高的情况下:降低高并发垃圾回收的频率,让CPU更多的去执行你的业务而不是垃圾回收垃圾回收发生在哪些区域堆和方法区线程共享,垃圾回收的主要对象。方法区回收废弃的常量和不需要使用的类。对象在什么时候能够被回收引用计数法:通过对象的引用计数器来判断是否被引用。但是解决.

2021-11-09 14:40:49 544

原创 编译器优化 [3] 逃逸分析、标量替换、栈上分配

逃逸分析

2021-11-06 12:56:40 216

原创 编译器优化 [2]- 方法内联

方法内联当一个线程调用方法时,就会把栈帧压入到栈中。压栈和出栈都是有Cpu,内存,时间开销的。Jvm会自动识别热点方法,并发起方法内联。方法内联就是把目标方法的代码复制到发起调用的方法之中,避免发生真实的方法调用。可以避免压栈和出栈的操作。提高效率。方法内联:public class InlineTest { private static int add1(int x1,int x2,int x3,int x4){ return add2(x1, x2) + a

2021-11-05 16:05:18 326

原创 编译器优化 [1]

字节码是如何运行的?Java有两种运行方式: 解释执行:由解释器一行一行翻译执行 编译执行:把字节码编译成机器码,直接执行机器码两种运行方式对比: 解释执行: 优势在于没有编译的等待时间 性能相对差一些编译执行: 运行效率会高很多,一般认为比解释执行快一个数量级 带来了额外的开销(Cpu开销,内存开销) 查看使用哪种运行方式java -versionjava versio...

2021-11-04 14:46:33 396

原创 数据结构算法【2】选择排序、冒泡排序、插入排序

一个数组长度为 N ,把他从小到达排序选择排序: 从小到大排序直接从整个数组中找到最小的一个数,和0位置交换位置; 排除0位置(0位置肯定是最小的了),从1~N位置查找最小数字,和1位置数交换位置。 排除0,1位置,从2 ~ N 位置查找最小数字,并把最小数字和2位置交换,以此类推冒泡排序: 从小到大排序两两比较,0和1位置比较,谁大往后移,1和2比较,谁大往后移,那么到最后N-1和N位置数比较,谁大往后移,第N个位置的肯定是最大的数。 排除掉第N位置的数,还是从0和1开始两两比较,

2021-11-02 15:56:12 168

原创 数据结构算法【1】位运算

每个数看起来是十进制,其实底层都是 2进制的数 。int 整形是 32位的 二进制数。 Long 类型是64位的。打印一个 int 整形数字, 32位的二进制数 public static void main(String[] args) { int a = 3; print(a); } public static void print(int num ){ for(int i =31 ; i >= 0 ; i--){

2021-10-21 23:02:34 191

原创 [m] 7 | Spring Cloud Hysrtrix - Request Cache 减压 、 多降级

Request Cache 减压Request Cache 相对与降级来说,更像是一种减压手段 使用 @CacheResult 缓存返回值 Request Cache 不生效?

2021-10-20 10:31:11 99

原创 [imooc] Spring Cloud Hystrix 降级、超时配置

1. 新建 moudle : hystrix-consumer服务提供者依然是 eureka-clientPom.xml 依赖中引入 spring-cloud-starter-netflix-hystrix <dependencies> <dependency> <!-- eureka 最核心的依赖 从顶层项目中的 dependencyManagement 中获取版本--> ...

2021-10-20 10:14:13 302

原创 [wy] Sharding-jdbc - [2] 分库分表 、5种分片策略、自定义分片策略

分片策略包含分片键和分片算法,由于分片算法的独立性,将其独立抽离。真正可用于分片操作的是分 片键 + 分片算法,也就是分片策略。目前提供5种分片策略。 标准分片策略 对应StandardShardingStrategy。提供对SQL语句中的=, IN和BETWEEN AND的分片操作支 持。StandardShardingStrategy只支持单分片键,提供PreciseShardingAlgorithm和 RangeShardingAlgorithm两个分片算法。PreciseShardin

2021-09-27 16:33:03 1274

原创 【mk】sharding - Jdbc 分布式全局ID(雪花算法) Springboot 、 自定义分片策略

UUIDSNOWFLAKE 雪花算法UUIDuuid是生成32位长的字符串,一般作为ID ,不建议使用 字符串作为主键SNOWFLAKE 雪花算法 配置1. 首先指定数据库中的哪个字段为主键spring.shardingsphere.sharding.tables.shard.key-generator.column=id2. 指定主键的生成策略spring.shardingsphere.sharding.tables.shard.key-generato.

2021-09-02 10:42:48 2560 1

原创 【mk】Sharding-jdbc 简介 - 整合Springboot 分库分表、读写分离

官网 :https://shardingsphere.apache.org/index_zh.htmlSharding-jdbc 可以理解为 增强版的 jdbc 。配置可以统一使用注册中心 zookeeper 配置。 或者通过项目中 jar 包方式引入整体架构图与 Mycat 区别公司DBA 运维能力不强,推荐使用Sharding-jdbc 。运维组能力强 可以使用 mycat 。 Mycat 不支持同一库内的水平切分、Sharding-jdbc 支持 Sh...

2021-08-25 17:58:54 103

原创 ES 【4】DSL 搜索 : term精确搜索与match分词、match_phrase最低精度、boost权重、布尔查询boolQuery、filter过滤器、sort排序

DSL 搜索 : term精确搜索与match分词、match_phrase最低精度查询boost 为词汇查询加权重、布尔查询boolQuery : 多重组合查询 (使用 must、should、must_not)filter过滤器 , sort 排序

2021-08-01 18:48:48 2666

原创 ES 【2】mapping 增删改查;字段类型:text,keyword;内置分词器

mapping 增删改查;字段类型 TYPE:text , keyword ES内置分词器standard:默认分词,单词会被拆分,大小会转换为小写。simple:按照非字母分词。大写转为小写。whitespace:按照空格分词。忽略大小写。 stop:去除无意义单词,比如 the / a / an / is …keyword:不做分词。把整个文本作为一个单独的关键词.........

2021-07-30 11:58:58 1294

原创 更新库存数量 - 乐观锁

数据库乐观锁 - 更新库存在电商项目中,订单支付后,需要扣库存数量,为了防止超卖现象一般会在具体的方法中使用分布式锁,如redisson ,同时在 sql语句中可以使用乐观锁。使用乐观锁:判断库存数量(stock)大于扣减数量(pendingCounts),大于才会更新sql.stock >= #{pendingCounts}<update id="decreaseItemSpecS...

2021-02-20 10:10:01 1409 1

原创 SpringBoot mybatis 的 Mapper.xml - sql语句

SpringBoot Mybatis表结构:Item.java@Datapublic class Item implements Serializable{ private int id; private String name; private int userid;User.javapublic class User implements Serial...

2021-01-27 11:44:22 1546 2

原创 mybatis generator 逆向生成 tk.mybaits 及 Example使用案例

sddsdsd执行 main 方法import org.mybatis.generator.api.MyBatisGenerator;import org.mybatis.generator.config.Configuration;import org.mybatis.generator.config.xml.ConfigurationParser;import org.mybatis.generator.internal.DefaultShellCallback;import .

2021-01-27 11:41:35 447

原创 MybatisPlus 基本运用

MybatisPlus 通用方法insert()方法 中,没有设置该字段的值,在insert语句中就不会插入该字段值MybatisPlus 字段上的常用注解

2021-01-27 11:29:12 1672

原创 JSON 入参使用

@JsonFormat(pattern = "yyyyMMdd HH:mm:ss", timezone = "GMT+8")private Date createTime;@JsonFormat(pattern = "yyyyMMdd HH:mm:ss", timezone = "GMT+8")private Date createTime;@JsonProperty("title")private String Title;

2021-01-19 09:28:46 1501

原创 Netty【3】编解码技术 - Marshalling

netty编解码技术编解码技术,说白了就是java序列化技术,序列化目的就两个:第一进行网络传输, 第二对象持久化。虽然我们可以使用java进行对象序列化,netty去传输,但是java序列化的硬伤太多,比如java序列化没法跨语言、序列化后码流太大、序列化性能太低等等..主流的编解码框架:JBoss的Marshalling包 ( 适合 Java 与 Java 之间的传输) google的Protobuf...

2020-11-16 07:31:30 250

原创 JVM - 类加载机制 & 类加载流程

JVM 的 堆,栈,方法区堆:提供所有类实例和数组对象存储区域 jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身(即具体的实例) jvm只有堆区(heap)和方法区被所有线程共享 存储的全部是对象,每个对象都包含一个与之对应的class的信息 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。栈:每个线程包含一个...

2020-11-11 11:10:40 134 1

原创 Netty 【2】 TCP粘包拆包

Netty TCP粘包拆包熟悉tcp编程的可能都知道,无论是服务器端还是客户端,当我们读取或者发送数据的时候,都需要考虑TCP底层的粘包/拆包机制。 TCP是一个“流”协议,所谓流就是没有界限的遗传数据。大家可以想象下如果河里的水就好比数据,他们是连成一片的,没有分界线,TCP底层并不了解上层的业务数据具体的含义,它会根据TCP缓冲区的实际情况进行包的划分,也就是说,在业务上,我们一个完整的包可能会被TCP分成多...

2020-10-17 22:34:34 537

原创 JVM 内存模型 、对象分配流程、 垃圾收集器

Jvm内存模型、对象创建流程、垃圾收集器serial 单线程收集器, 简单高效, 收集过程会有 STW, 用于新生代。 使用复制算法serial 的老年代版本:serial old 单线程收集器, 简单高效, 收集过程会有 STW, 用于老生代。 使用标记-整理算法ParNew 多线程版本, 多核, 收集过程会有 STW,但是停顿时间减少,吞吐量更大业务代码时间 / (业务代码时间+垃圾收集时间) = 吞吐率 99s / 99s + 1s(垃圾收集时...

2020-09-11 10:40:01 794

原创 MySQL训练营 <4> Mysql 性能优化

【咕泡学院】MySQL训练营 <3> Mysql性能优化

2020-09-01 16:40:42 687

MariaDB-10.4.8.stable-CentOS7.x.rar

MariaDB-10.4.8.stable-CentOS7.x

2021-03-12

SAP BWBO 实战指南--像学习OFFICE一样学习BW

SAP BWBO 实战指南--像学习OFFICE一样学习BW,全篇。

2013-09-10

空空如也

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

TA关注的人

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