自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(179)
  • 收藏
  • 关注

原创 Mac M1 解决安装grpcio不可用

Mac M1 解决安装grpcio不可用,运行报错

2024-05-06 20:50:28 328 1

原创 Pycharm debug 运行报错 (RuntimeError: cannot release un-acquired lock)

在环境变量中增加 GEVENT_SUPPORT=True。

2024-05-06 17:10:27 297

原创 后端业务防重的思考

后端防重解决方案

2023-07-20 17:13:25 265

原创 设计模式-策略模式

我们在进行软件开发时要想实现可维护、可扩展,就需要尽量复用代码,并且降低代码的耦合度,而设计模式就是一种可以提高代码可复用性、可维护性、可扩展性以及可读性的解决方案。大家熟知的23种设计模式,可以分为创建型模式、结构型模式和行为型模式三大类。其中,行为型模式可用于描述程序中多个类和多个对象如何协作完成复杂的任务,涉及不同对象间的职责分配、算法的抽象化。策略模式是一种应用广泛的行为型模式,本文将着眼于策略模式进行学习分享。

2023-06-01 16:44:28 674

原创 Idea 配置 maven 离线使用

首先,项目中的依赖已经下载到本地仓库,在没有网络或者没办法连通公司的maven仓库时,需要配置离线使用。在 maven 使用的 setting.xml 文件中,加入以下配置。默认在 maven安装目录下的 conf 文件夹下。将maven仓库下新拷贝过来的依赖文件夹下面的。将红框的配置,指向我们上面修改的配置文件和仓库。文件进行删除,否则还是会从远程仓库中找;先 cd 到本地仓库的文件夹下,进行删除。4.刷新 maven 项目 就可以使用了。1. 配置 setting.xml。

2023-04-24 17:04:25 3495 1

原创 Nacos快速使用指南

快速入手配置项和注意项

2023-02-21 16:49:32 461

原创 Jdbc连接Mysql失败(非正常原因)

jdbc连接mysql失败,本地客户端可以连接

2023-02-07 14:28:55 1512

原创 jdk1.8 ConcurrentHashMap computeIfAbsent 死循环

jdk1.8 ConcurrentHashMap computeIfAbsent 死循环根因:调用computeIfAbsent 方法时,嵌套调用computeIfAbsent时,如果key的hashCode相同,逻辑中会产生死循环。

2022-11-08 11:02:55 661

原创 线上JVM thread 3000+ 未OOM的思考

jvm 线程数很多却没有oom?分析一下原因

2022-08-24 20:56:57 335

原创 CompletableFuture 异步编程

介绍 CompletableFuture 基本用法

2022-07-15 20:40:56 85

原创 如何计算java对象大小

在使用本地缓存时,需要知道本地缓存对堆内存占用的影响

2022-06-13 10:58:50 3458

原创 ES安装-单机版

1.下载对应版本的elasticsearch安装包(本文使用7.6.2版本)下载中心 - Elastic 中文社区2.新建一个用户 ,es不能root用户启动#新建es 用户 并分配文件权限,切换到es用户useradd eschown -R es /optsu es3.解压cd /opttar -zxvf /opt/elasticsearch-7.6.2-linux-x86_64.tar.gz && mv elasticsearch-7.6.2 /op..

2022-05-24 22:38:43 435

转载 JackSon详解

Spring MVC 默认采用Jackson解析Json,尽管还有一些其它同样优秀的json解析工具,例如Fast Json、GSON,但是出于最小依赖的考虑,也许Json解析第一选择就应该是Jackson。

2022-04-07 20:03:01 5818 1

原创 Mac M1 安装 Java 环境

Mac M1 安装 Java 环境

2021-12-11 14:34:14 2036

原创 mysql-添加删除索引

mysql-添加删除索引1.添加PRIMARY KEY(主键索引)语法:ALTER TABLE `表名` ADD PRIMARY KEY ( `列名称` )mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column_name` )添加自增属性的主键索引:语法:alter table 表名 change 列名称 新的列名称 类型 primary key auto_increment;mysql>alter table st

2021-04-16 15:26:48 166

原创 mysql 的 insert 特殊用法

先说结论都是按照主键或者表唯一主键进行判断是否冲突/用法冲突不冲突on duplicate key update表主键id 递增+1,记录id不变,并更新正常插入insert ignore into表主键id 递增+1,记录id不变,忽略插入正常插入replace into删除原记录,插入新记录,新纪录的插入 = insert正常插入insert into报错正常插入1. insert  … on duplic

2021-03-25 17:16:29 318

原创 Mac 如何显示隐藏文件

如何让 Finder 显示隐藏文件和文件夹第一步:打开「终端」应用程序。第二步:输入如下命令:defaults write com.apple.finder AppleShowAllFiles -boolean true ; killall Finder第三步:回车即可现在你将会在 Finder 窗口中看到那些隐藏的文件和文件夹了。如果你想再次隐藏原本的隐藏文件和文件夹的话,将上述命令替换成defaults write com.apple.finder AppleShowA.

2021-03-10 14:09:18 165

原创 docker 安装 clickhouse

1. 拉取镜像docker pull yandex/clickhouse-server2. 运行镜像docker run -d --name clickhouse-server-yu -p18123:8123 -p19000:9000 --ulimit nofile=262144:262144 --volume=/data/docker/clickhouse:/var/lib/clickhouse yandex/clickhouse-server

2021-03-08 21:32:11 182

原创 docker 安装 mysql容器

1. 拉去 对应tag 的mysql 镜像docker pull mysql:5.7.332. 启动容器docker run --name mysql5.7-yu -p 13306:3306 -v /data/docker/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=111333 -d mysql:5.7.33-p 宿主机 13006映射 容器3306 端口-v从基础主机系统的目录挂载到/var/lib/mysql容器内部...

2021-03-06 15:14:28 117

原创 Mac 上好用的软件

1. 翻译软件 bob推荐 0.4.0版本https://github.com/ripperhe/Bob/releases2. 粘贴板软件paste3. 文件管理增强 easy new file可以右键后新建文件等操作,好用4. 服务器文本传输 transmit5. shell 工具shellcraft6. redis可视化 Another Redis Desktop Manager7.解压缩 eziphttps:...

2021-02-03 15:55:35 166

原创 Lombok常用注解

加入 maven 依赖<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId></dependency>1. @Getter/@Setter自动产生 getter/setter2. @ToString自动重写toString()方法,会印出所有...

2021-01-13 20:24:44 210

原创 简单看一看ThreadLocal 源码

简单看一看ThreadLocal 源码常用方法 ThreadLocal<String> threadLocal = new ThreadLocal<>(); threadLocal.set("aa"); threadLocal.get(); threadLocal.remove();ThreadLocal 数据结构Thread类有一个类型为ThreadLocal.ThreadLocalMap的实例变量threadLocals,也就是说每个线程有一个自己的Thread

2020-12-08 16:54:28 293

原创 通过ReentranLock看AQS实现

通过ReentranLock看AQS实现ReentranLock 类实现我们常用的锁就是 ReentranLock 了,使用简单支持重入,可以支持我们大多数的场景。Lock lock = new ReentrantLock();// 加锁lock.lock();// 解锁lock.unlock();ReentranLock 内部有两种实现 ,公平锁 和 非公平锁。看下类图 ,内部类 sync 有两种实现,就是我们的公平锁和非公平锁。sync集成了AQS,重写了部分方法。看下 Ree

2020-12-07 15:47:17 130

原创 分布式系统 CAP理论分析

分布式系统非常关注三个指标:(1)数据一致性;(2)系统可用性;(3)节点连通性与扩展性;这三个指标的关系如何,今天来聊一聊分布式理论的基础CAP。什么是数据一致性?数据“强一致性”,是希望系统只读到最新写入的数据,例如:通过单点串行化的方式,就能够达到这个效果。关于session一致性,DB主从一致性,DB双主一致性,DB与Cache一致性,数据冗余一致性,消息时序一致性,分布式事务一致性,库存扣减一致性,都存在类似的一致性问题。什么可用性?如果系统每...

2020-11-27 09:40:58 202

原创 参考 二阶段事务 (2PC)思想 实现的 多线程事务

前言先提出需求,不贴合业务的技术实现都是耍流氓。我这里有1个50w~100w 的大数据量 excel导入 。 当月导入上个月的数据。实时性要求不高。导入的是子单明细,业务要全导入或者出错全部不导入。旧代码实现是逐行读取,然后达到执行行数,for 批量插入数据库,执行时间在10分钟左右。优化后可达1分钟。我提议空间换时间,做一次优化,因为这个功能只有几个的业务人员在用。一般都是先导入数据后再使用,所以放心大胆的导入就可以。思路分析贴出来 简单的思路代码,有了思路其他就是照着葫芦画.

2020-11-25 16:27:40 282

转载 npm太慢,设置淘宝加速镜像

淘宝 npm 地址:http://npm.taobao.org/如何使用有很多方法来配置npm的registry地址,下面根据不同情境列出几种比较常用的方法。以淘宝npm镜像举例:1.临时使用npm --registry https://registry.npm.taobao.org install express2.持久使用npm config set registry https://registry.npm.taobao.org配置后可通过下面方式来验证是否成功np...

2020-11-24 09:33:10 1033

原创 docker 搭建 redis cluster 集群环境

docker 搭建 redis cluster 集群环境前言最近在学习 redis-cluster的知识,自己准备搭建一套简单的集群环境,因为 redis-cluster官方推荐的最低机器台数为3台。3个主节点,每个主节点,对应1个从节点,保证集群的高可用,容灾故障转移。为什么我们使用docker 来搭建 ?我个人主机上的 学习环境基本都是 docker 搭建的。因为占用小,安装简单,用完了随时停止环境,对当前主机无侵入,镜像命令都是统一的。我们的目标是 三主 三从 搭建一个简单的 redis-c

2020-11-05 14:26:30 236

原创 docker 安装 redis

1.拉取镜像docker pull redis2. 启动镜像docker run --name myredis6480 -d \-p 6480:6379 -v /usr/docker/data/rediss/redis6480:/data \-v /usr/docker/data/rediss/redis6480/redis.conf:/usr/local/redis.conf \redis:v1 \redis-server /usr/local/redis.conf \...

2020-10-13 20:46:19 102

原创 Redis 修改允许外网访问

1.开启服务器的端口6379访问权限2.修改redis.conf文件找到“bind 127.0.0.1”,修改如下# bind 127.0.0.1找到"protected-mode yes",修改如下protected-mode no找到"# requirepass foobared",修改新密码为:redis123456,修改如下requirepass redis1234564.重载redis配置文件src/redis-server redis.conf5.

2020-10-13 20:41:21 798

原创 Redis 的持久化 RDB和 AOF

Redis 的持久化 RDB和 AOF1. 简介Redis 是一个快速的 key-value 形式的 内存数据库。同时Redis支持RDB和AOF两种持久化机制,持久化功能有效地避免因进程退出造成的数据丢失问题,当下次重启时利用之前持久化的文件即可实现数据恢复。2. 持久化2.1 RDBRDB持久化是把当前进程数据生成快照保存到硬盘的过程,触发RDB持久化过程分为手动触发和自动触发。2.1.1 如何触发手动触发手动触发分为两个命令 save 和 bgsave 。save命令:阻

2020-10-13 17:25:59 306

原创 redis 几个重要的健康指标

存活情况所有指标中最重要的当然是检查redis是否还活着,可以通过命令PING的响应是否是PONG来判断。连接数连接的客户端数量,可通过命令src/redis-cli info Clients | grep connected_clients得到,这个值跟使用redis的服务的连接池配置关系比较大,所以在监控这个字段的值时需要注意。另外这个值也不能太大,建议不要超过5000,如果太大可能是redis处理太慢,那么需要排除问题找出原因。另外还有一个拒绝连接数(rejected_connection

2020-10-10 15:31:39 421

原创 单Redis实例实现分布式锁的正确方法

前言实现Redis分布式锁的最简单的方法就是在Redis中创建一个key,这个key有一个失效时间(TTL),以保证锁最终会被自动释放掉。当客户端释放资源(解锁)的时候,会删除掉这个key。从表面上看,似乎效果还不错,但是这里有一个问题:这个架构中存在一个严重的单点失败问题。如果Redis挂了怎么办?你可能会说,可以通过增加一个slave节点解决这个问题。但这通常是行不通的。这样做,我们不能实现资源的独享,因为Redis的主从同步通常是异步的。在这种场景(主从结构)中存在明显的竞态:客户端A

2020-10-10 14:44:18 210

原创 字节 和 位 的关系

数据结构模型现代计算机用二进制(位) 作为信息的基础单位, 1个字节等于8位, 例如“big”字符串是由3个字节组成, 但实际在计算机存储时将其用二进制表示, “big”分别对应的ASCII码分别是98、 105、 103, 对应的二进制分别是01100010、 01101001和01100111, 如图3-9所示。许多开发语言都提供了操作位的功能, 合理地使用位能够有效地提高内存使用率和开发效率。比如使用 redis 的 bitmaps 结构 最大可以存放 512MB = 1B*10.

2020-10-10 11:43:38 3437

原创 Springboot redis 入门示例

Springboot redis 入门示例1. 概述在快速入门 Spring Boot 整合 Redis 之前,我们先来做个简单的了解。在 Spring 的生态中,我们使用 Spring Data Redis 来实现对 Redis 的数据访问。市面上已经有 Redis、Redisson、Lettuce 等优秀的 Java Redis 工具库,为什么还要有 Spring Data Redis 呢?不要慌,我们先来看一张图:![](https://img-blog.csdnimg.cn/img_conve

2020-10-09 16:51:34 473

原创 阿里云Redis开发规范

阿里云Redis开发规范一、键值设计1. key名设计(1)【建议】: 可读性和可管理性以业务名(或数据库名)为前缀(防止key冲突),用冒号分隔,比如业务名:表名:idugc:video:1(2)【建议】:简洁性保证语义的前提下,控制key的长度,当key较多时,内存占用也不容忽视,例如:user:{uid}:friends:messages:{mid}简化为u:{uid}:fr:m:{mid}。(3)【强制】:不要包含特殊字符反例:包含空格、换行、单双引号以及其他

2020-10-08 16:37:21 95

原创 redis-benchmark 基准测试

redis-benchmark 基准测试大家好,我是爱吃鱼的程序员,一个渴望在互联网行业做到C位的程序员。可柔可刚,点赞则柔,白嫖则刚!看完记得给我来个三连哦!欢迎私信!1. 概述当我们希望提高性能的使用,往往想到的是异步、缓存这个两种手段。前者,例如说内存队列(例如说 JDK Queue、Disruptor 等)、分布式队列(例如说 RabbitMQ、RocketMQ、Kafka),更多适合写操作。后者,例如说内存缓存(例如说 JDK Map、EhCache 等)、分布式缓存(例如说 R

2020-09-28 15:25:02 995 1

原创 Spring Cloud Alibaba Sentinel 服务熔断和限流

前言:为什么需要流控降级我们的生产环境经常会出现一些不稳定的情况,如:大促时瞬间洪峰流量导致系统超出最大负载,load 飙高,系统崩溃导致用户无法下单 “黑马”热点商品击穿缓存,DB 被打垮,挤占正常流量 调用端被不稳定服务拖垮,线程池被占满,导致整个调用链路卡死这些不稳定的场景可能会导致严重后果。大家可能想问:如何做到均匀平滑的用户访问?如何预防流量过大或服务不稳定带来的影响?这时候我们就要请出微服务稳定性的法宝 —— 高可用流量防护,其中重要的手段就是流量控制和熔断降级,它们是保障微服务稳

2020-09-28 14:06:57 240

原创 Spring Cloud Alibaba Dubbo 分布式服务调用

Spring Cloud Alibaba 分布式服务调用1. 简介在《Spring Cloud Alibaba 服务注册与发现》篇中曾提到,Spring Cloud Alibaba Nacos Discovery 能无缝整合 Spring Cloud OpenFeign。换言之,Spring Cloud Alibaba 延续了 Spring Cloud 分布式服务调用的特性。除此之外,Spring Cloud Alibaba 引入了 Dubbo Spring Cloud,扩展了分布式服务调用能力,不

2020-09-27 10:37:18 470

原创 Spring Cloud Alibaba Nacos 服务注册与发现

Spring Cloud Alibaba 服务注册与发现1. 简介服务注册与发现是微服务架构体系中最关键的组件之一。如果尝试着用手动的方式来给每一个客户端来配置所有服务提供者的服务列表是一件非常困难的事,而且也不利于服务的动态扩缩容。Nacos Discovery 可以帮助您将服务自动注册到 Nacos 服务端并且能够动态感知和刷新某个服务实例的服务列表。除此之外,Nacos Discovery 也将服务实例自身的一些元数据信息-例如 host,port, 健康检查URL,主页等内容注册到 Naco

2020-09-26 23:51:25 675

原创 Spring Cloud Alibaba Nacos 分布式配置

Spring Cloud Alibaba 分布式配置1. 简介Nacos 提供用于存储配置和其他元数据的 key/value 存储,为分布式系统中的外部化配置提供服务器端和客户端支持。使用 Spring Cloud Alibaba Nacos Config,您可以在 Nacos Server 集中管理你 Spring Cloud 应用的外部属性配置。Spring Cloud Alibaba Nacos Config 是 Config Server 和 Client 的替代方案,客户端和服务器上的

2020-09-26 23:50:42 1045

空空如也

空空如也

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

TA关注的人

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