自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

绿水本无忧

正在学习

  • 博客(26)
  • 收藏
  • 关注

原创 微信小程序以SpringBoot作为后端开发遇到的问题及解决思路总结

背景关键字:微信小程序、SpringBoot 项目、腾讯云服务器、SSL、HTTPS、Tomcat注:本文记录了一个菜鸟解决问题的思路,觉得啰嗦可以略过,解决方案在文末。技术不精,文章有错误烦请指正。最近想着做个小程序,后端使用 SpringBoot,直接跑在腾讯云服务器上。微信小程序要求配置指定的通信域名,意思是只能访问特定的服务器和接口。最关键的是这个域名需要使用 HTTPS 协议。配置 SSL 证书也不难,腾讯云上提供了免费的证书提供商,也提供了几种配置 SSL 证书的方法,比如使用 NGI

2021-10-13 22:29:31 1772

原创 注解和反射

注解概述注解(Annotation) 可以理解为对代码的特殊标记,这些标记可以在编译、类加载、运行时被读取,并进行相应的处理。通过注解,开发人员可以在不改变原有代码和逻辑的情况下在源代码中嵌入补充信息。内置注解@Override:覆盖,该方法将覆盖或者实现超类中的方法。@Deprecated:已过时的,该元素不鼓励程序员进行使用。@SuppressWarnings:抑制该元素编译时的警告信息。元注解负责注解其他注解@Target:指示当前注解类型适用的上下文元素类型,如字段、方法等。

2021-09-19 22:28:45 155

原创 源码学习——HashMap

文章目录继承关系内部节点类静态常量成员变量构造方法无参构造传入初始化容量大小和负载因子传入初始化容量大小添加扩容树化注意事项树化时机扩容时机继承关系UML 图示内部节点类与之前介绍的 LinkedList 使用的节点类有所不同,LinkedList 使用的节点类中荷载的只有数据,而这里需要一个 K-V 键值对。static class Node<K,V> implements Map.Entry<K,V> { final int hash; final K

2021-08-24 18:01:46 193

原创 源码学习——LinkedList

源码学习——ArrayList文章目录前言继承关系内部节点类成员变量构造方法添加添加到末尾插入到指定位置添加一个集合删除删除一个元素查看修改双端队列相关LinkedList 和 ArrayList 的区别前言将常用的步骤解释的较为详尽易懂,若有错误麻烦指正。个人认为甚至些许啰嗦,建议有基础的同学直接看源码,源码更为直接了当易懂,且不会产生语句上的歧义。继承关系UML 图示实现 List 接口,属于列表类实现 Deque 接口,属于一个双端队列实现 Cloneable 接口,可以重写 Ob

2021-08-23 19:17:37 189

原创 源码学习——ArrayList

文章目录前言继承关系成员变量构造方法添加添加到列表末尾添加到固定位置添加一个集合删除删除一个元素删除部分元素查看修改前言将常用的步骤解释的较为详尽易懂,若有错误麻烦指正。个人认为甚至些许啰嗦,建议有基础的同学直接看源码,源码更为直接了当易懂,且不会产生语句上的歧义。继承关系UML 图示实现 List 接口,属于列表类实现 RandomAccess 接口,具备快速随机访问的能力。(所有的 list 都可以支持随机访问,但是不一定支持快速随机访问,有的可以通过迭代器,如 linkedList,与

2021-08-23 17:16:22 214

原创 缓存相关问题及解决方案

缓存相关问题及解决方案缓存穿透问题: 指查询一个一定不存在的数据,缓存未命中,去查询数据库,但是数据库也没有该记录,返回为 null,不写入缓存里。之后每次查询这个不存在的数据都要穿透到数据库查询。高并发下数据库压力过大。解决方案:将该不存在的数据返回的 null 结果缓存,加上短暂的过期时间。布隆过滤器。缓存雪崩问题: 指设置缓存时大面积的数据采用相同的过期时间,导致这一面积的缓存在某一时刻集体失效,所有请求落在数据库上,数据库压力过大。解决方案: 在设置过期时间时,在一定的范围内使用

2021-08-20 11:10:54 175

原创 Redis 事务处理

本文参考于 Redis 中文文档相关命令MULTI:multiple,多个,这里用来开启事务,总是返回 OK,之后的命令不会立即执行,而是进入一个命令队列。EXEC:execute,执行,这里用来执行队列中的事务。DISCARD:丢弃,这里用来丢弃队列中的所有事务。WATCH:这里用来监视某些键, 如果有至少一个被监视的键在 EXEC 执行之前被修改了, 那么整个事务都会被取消。CAS(check and set)操作。实现准备三个键值对2021 年 21 岁 体重 140127.0.

2021-08-20 10:05:52 102

原创 延时队列实现数据的最终一致性

文章目录实现场景可能出现的问题CAP 定理BASE 定理解决方案——Seata解决方案——延时队列延时队列方案具体实现使用消息队列的相关问题实现场景在分布式微服务场景下,实现用户提交订单的最后一步 submitOrder() 方法,首先需要将 order 实体保存到订单服务对应的数据库下,然后需要去仓储服务下锁定(预留)库存,锁定库存后还可能调用其他服务做其他事,又或者在当前订单服务下做其他事。预留库存的原因是客户并不是立即支付的,往往会有预留一定的时间。下文的场景中,用户可以有 30 分钟的时间来支

2021-08-16 23:18:34 450

原创 缓存与分布式锁——Redisson

Redisson简介整合redisson 官方文档Maven 依赖<!-- https://mvnrepository.com/artifact/org.redisson/redisson --><dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.12.0<

2021-08-04 19:36:36 151

原创 缓存与分布式锁——场景实现

文章目录版本 1.0 本地锁原生场景缓存缓存击穿版本 2.0 分布式锁基本原理SETNX分布式锁-阶段 1分布式锁-阶段 2分布式锁-阶段 3分布式锁-阶段 4版本 1.0 本地锁原生场景进入一个网站首页,首页向后端发送请求,后端向数据库请求几百个数据的商品分类信息。向数据库查询分类信息// 向数据库查询分类信息String getCatalogJsonFromDB(){ String res = null; /* get res from db */ ret

2021-08-03 21:34:43 142

原创 性能与压力测试

文章目录性能与压力测试性能指标JMeter的安装和使用测试中间件的优化业务优化jvisualvm 的使用与分析模拟内存溢出JVM 优化性能与压力测试性能指标响应时间:Response Time,RT 指用户从客户端发起一个请求到接收从服务端返回的响应耗费的时间。每秒点击次数:Hits Per Second,HPS每秒处理交易数:Transaction Per Second,TPS每秒处理查询次数:Query Per Second,QPS最大响应时间:Max Response Time,MRT

2021-08-03 10:15:35 291

原创 Elasticsearch 实战(五、整合到 Java 项目)

ES 官方 Java REST Client 文档创建项目创建一个 springboot 项目 lvshui5u-search添加依赖 <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client</artifactId>

2021-07-30 20:47:12 259

原创 Elasticsearch 实战(四、分词与IK分词器)

官方分词器的使用使用分词器的格式如下POST _analyze{ "analyzer": "standard", "text": "i am a good-boy"}其中 analyzer 参数用来指定分词器,text 位置指定需要分词的语句。可登录 ES 官方文档-分词器 查看分词器种类,例中使用标准 standard 分词器。标准分词器将文本划分为单词边界上的术语,如 Unicode 文本分割算法所定义。它删除了大多数标点符号。分词结果:{ "tokens" : [

2021-07-30 17:39:07 467

转载 Elasticsearch 实战(三、进阶检索)

我写也是流水账直接看文档 ES 官方文档

2021-07-29 15:29:32 88

原创 Elasticsearch 实战(二、简单检索)

Elasticsearch_cat: 查询 es 相关的一些信息/_cat/nodes 查看 es 内节点信息/_cat/health 查看 es 的健康状况/_cat/master 查看主节点信息/_cat/indices 查看所有索引信息保存一条数据PUT 方式使用 put 方式发送数据时,需要指定 Index/Type/Id// 例中 Index 为 amdin, Type 为 advanced,指定 id 为1http://100.100.100.100:9200/

2021-07-28 20:13:41 300

原创 Elasticsearch 实战(一、基本概念与安装使用)

Elasticsearch作用: 快速存储、搜索和分析海量数据。基本概念Index 索引: 类似 MySQL 中的 Insert,指插入(索引)一条数据;也可以类似为 MySQL 中的 Database,一个数据库(索引)。Type: 类似于 MySQL 中的 table,可以理解成一张表(一个类型)。Document: 一条记录,以 json 格式存储。安装使用 Docker 安装命令中含有注释,请勿直接复制粘贴下载docker pull elasticsearch:7.4.2配

2021-07-28 16:34:59 136

原创 MySQL 一条查询语句的执行过程

一条 sql 查询语句的执行过程客户端(client)通过连接器(Connection Handing & net I/O)连接到 MySQL 服务器。如果服务器开启了查询缓存,则去检查缓存(Query Cache),如果缓存中有结果集,则直接返回结果集。MySQL 通过语法解析器(Parser)对 SQL 语句进行解析,它将使用 MySQL 语法规则对解析树进行验证和解析,例如验证是否使用错误的关键字、使用关键字的顺序是否正确,或者字符串上面的引号有没有闭合等。查询优化器(Optimi

2021-07-19 09:12:31 109

原创 设计模式之工厂方法模式

设计模式之工厂方法模式定义: Define an interface for creating an object,but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to subclasses. 定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法让一个类的实例化延迟到它的子类。优点:良好的封装性,代码结构清晰,降低模块间的耦合。扩展

2021-07-18 15:03:45 84

原创 设计模式之单例模式

设计模式之单例模式定义: Ensure a class has only one instance, and provide a global point of access to it. 确保一个类只有一个实例,而且自行实例化并向整个系统提供访问。优点:单例模式在内存中只有一个实例,减少了内存开支和系统的性能开销。特别是在一个对象需要频繁地被创建、销毁情况下。单例模式可以避免对资源的多重占用,比如一个写文件动作,由于只有一个实例存在,避免了对一个资源文件的同时写。单例模式在系统上设置全局的访问

2021-07-18 10:18:11 91

原创 Redis LRU 策略

Redis LRU 策略

2021-07-14 11:01:50 974

原创 Redis 持久化

Redis 持久化

2021-07-14 09:55:51 108

原创 Redis 基础

Redis 基础数据结构Redis 有五种基础数据结构。分别是string(字符串)、list(列表)、set(集合)、hash(哈希)和zset(有序集合)。Redis 所有的数据结构都是以唯一的 key 字符串作为名称,然后用这个唯一 key 值来设置/获取 value 值。不同类型的数据结构的差异就在于 value 结构的不同。string 字符串常见用途:缓存用户信息。将用户信息结构体序列化,缓存到 Redis string 中。127.0.0.1:6379> set name l

2021-07-13 10:36:03 78

原创 SpringCloud-OpenFeign远程调用

SpringCloud-OpenFeign远程调用本文简单记录利用SpringCloud的OpenFeign组件进行微服务之间的远程调用步骤,不涉及底层原理哦。进行远程调用之前需要搭建SpringCloud依赖和Nacos作为微服务的注册发现中心。两个微服务模块,这里使用mall-coupon(优惠券)和mall-member(会员)服务,目标是访问mall-member微服务的一个请求,该请求中调用mall-coupon微服务的一个方法。添加依赖。<dependency>

2021-06-15 16:36:46 117

原创 Java并发机制的底层实现原理

volatile的实现原理及应用volatile 可看做是轻量级的synchronized,它在多处理器开发中保证了发发发发发发付共享变量的***可见性***,所谓synchronized的实现原理及应用

2021-06-13 10:07:38 1155 1

原创 Java动态代理的两种方式

动态代理基于JDK的动态代理基于接口委托类和代理类实现的公共接口 Subject.javapackage com.lvshui5u.test.jdkproxy;/** * @author: lvshui5u * @date: 2021/5/28 10:22 * @describe: 基于jdk的动态代理 * * 1. 创建一个接口(被代理) * 2. 实现接口 * 3. 创建代理类,实现InvocationHandler接口 * 4. 代理类的调用,用Proxy类创建实例 */

2021-05-28 11:54:41 198

原创 关于 Git

Git常用命令环境配置设置用户名和email地址,每次Git提交都会使用该用户信息。git config --global user.name "lvshui5u"git config --global user.email "lvshui5u@qq.com"查看配置信息git config --listgit config user.namegit config user.email$ git config user.namelvshui5u$ git config u

2021-05-06 20:40:29 180

空空如也

空空如也

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

TA关注的人

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