自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 关于代码审查的一些思考

在审查代码时,我们通常的评审维度主要包括如下几个方面:1、代码功能是否完善2、代码结构是否合理,是否符合规范的编码方式,例如国内的话是否符合阿里java开发手册中的代码规范3、代码是否充分复用,是否具备良好的扩展性4、代码的命名是否规范,方法命名、变量命名是否体现了其对应的功能含义5、在性能上是否能够继续优化,如果是O(n^2)的复杂度是否能优化成O(n)的复杂度6、在内存占用上是否还能进一步压缩7、在时间和空间二者之间的利弊权衡8、复杂代码逻辑是否有对应的注释,注释是否清楚

2024-04-07 09:27:04 985

原创 通过Jmeter准备压测数据-mysql示例

总共30万条数据。

2024-03-27 16:24:18 496

原创 通过Harbor构建docker私服仓库

通过harbor安装docker镜像仓库

2024-02-06 10:28:59 1367

原创 wsl 安装minikube

window wsl 安装minikube及使用

2024-02-06 10:11:50 1084

原创 高项&PMP证书在IT领域的作用

高项和PMP证书介绍及备考建议

2024-02-05 09:37:33 459 1

原创 docker 构建个人博客网站

如何通过docker快速构建个人博客网站

2024-02-04 16:46:32 769

原创 docker 安装minio

docker 安装minio对象存储

2024-02-04 16:31:59 660

原创 docker 安装mysql

docker 快速安装mysql

2024-02-04 16:27:46 711

原创 docker maven插件使用介绍

docker maven插件使用介绍,在idea中使用docker的插件

2024-02-04 16:21:06 828

原创 docker 清理

docker镜像、容器清理

2024-02-04 16:13:03 341

原创 docker 开放tcp连接供idea等其他外部工具开放使用

docker 开放tcp连接供idea等其他外部工具开放使用

2024-02-04 16:09:39 937

原创 docker挂载数据卷

docker 挂载数据卷

2024-02-04 16:02:57 695

原创 dockerfile 介绍

docker file及关键词介绍

2024-02-04 15:58:08 960

原创 docker 网络模型

docker 网络模型

2024-02-04 15:40:18 592

原创 docker常见操作

bin/sh: 说明你的 shell 类型为 bash,bash shell 是最常用的一种 shell, 是大多数 Linux 发行版默。此外还有 C shell 等其它 shell。description:镜像描述-尽量下载官方镜像。docker ps -a 查看所有包括退出的。docker inspect <容器id>退出容器docker exit。centos:需要启动的镜像。name:相关镜像的名称。--name 容器名称。

2024-02-04 15:36:45 549

原创 centos 7.7 离线安装docker

centos 离线安装docker,及安装过程中的注意事项

2024-02-04 15:32:56 737

原创 docker 离线安装镜像

docker 离线上传和加载镜像

2024-02-04 15:23:45 1082

原创 docker 重新制作镜像的方式

docker 制作镜像的两种方法

2024-02-04 15:19:14 653

原创 个人搭建的博客地址

后续会出个教程介绍如何快速搭建个人博客网站。

2022-09-21 14:24:20 169 1

原创 项目引入分布式调度中心xxl-job步骤

项目引入分布式调度中心步骤1、部署管理后台【1】刷mysql脚本【2】配置配置文件:secret key + mysql 地址 + 端口号【3】部署启动2、执行器引入【1】引入core 依赖【2】配置链接后台信息:后台address + secret key + 链接端口号【3】编写job类```java/**** 〈功能详细描述〉文档同步es xxl定时任务** @author huangliang* @see [相关类/方法](可选)* @since [产品/模块版本]

2022-05-01 00:15:00 608

原创 Nginx基础和原理介绍

一、nginx基本概念1、nginx简介nginx是一个反向代理服务器,特点是占用内存少,并发能力强,在同类的网页服务器中表现较好。nginx专门为性能优化而开发,性能是其最重要的考量,有报告表能支持高达50000并发连接数。2、nginx功能【1】反向代理正向代理:由客户端向代理指定它要访问哪个原始的服务器,然后又代理将请求转发给对应的服务器。向vpn就是正向代理,客户端访问不了外网。反向代理:客户端指访问代理服务器,它并不知道它访问的原始服务器是谁,有代理服务器根据配置规则转发给相应的原

2022-01-06 15:44:51 10137

原创 java核心面试题

1、在 java 中守护线程和本地线程区别?java 中的线程分为两种:守护线程(Daemon)和用户线程(User)。任何线程都可以设置为守护线程和用户线程,通过方法Thread.setDaemon(boolon);true 则把该线程设置为守护线程,反之则为用户线程。Thread.setDaemon()必须在 Thread.start()之前调用,否则运行时会抛出异常。两者的区别:唯一的区别是判断虚拟机(JVM)何时离开,Daemon 是为其他线程提供服务,如果全部的 User Thread 已

2021-11-15 17:29:58 190

原创 redis核心面试题

【1】什么是 Redis?Redis 是完全开源免费的,遵守 BSD 协议,是一个高性能的 key-value 数据库。Redis 与其他 key - value 缓存产品有以下三个特点:(1) Redis 支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。(2) Redis 不仅仅支持简单的 key-value 类型的数据,同时还提供 list,set,zset,hash 等数据结构的存储。(3) Redis 支持数据的备份,即 master-slave 模式的数据

2021-11-04 18:03:10 185

原创 zookeeper核心面试问题及解答

【1】ZooKeeper 是什么?ZooKeeper 是一个开放源码的分布式协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。分布式应用程序可以基于 Zookeeper 实现诸如数据发布/订阅、负载均衡(rpc负载均衡,算法在客户端实现,从zk拉列表)、命名服务(通过创建顺序节点的方式实现顺序序列)、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。Zookeeper 保证了如

2021-11-04 11:06:21 139

原创 idea阅读器插件开发实现

一、创建插件工程可以通过gradle创建,也可以直接创建,本文展示直接创建的方式二、设计插件的功能和页面通过GUI创建一个一个JForm来构型一开始是做简单功能设计,支持打开文本文件,在文本文件中搜索,之所以设计了翻页的功能是因为当文本很大时,textPane渲染很慢三、开发功能给按钮添加点击事件监听,实现功能;按钮右键选择create listner – > 选择 mouse listner --> 选择对应的鼠标事件然后逐个实现相应的功能四、编写插件的扩展点并测试运

2021-10-27 20:23:32 1468

原创 开发的一款IDEA电子阅读器功能介绍

开发的一款IDEA电子阅读器功能介绍一、背景介绍心血来潮想开发一款idea看电子书的插件,能够支持收藏当前阅读位置,根据目录查看,能够按关键字搜索。将电子书阅读器隐藏在idea插件里如下图所示同时支持悬浮和调整窗口的大小和位置二、功能介绍1、选择电子书点击翻页2、在文档中搜索3、收藏当前阅读位置4、打开收藏夹支持删除某个书签,清除所有书签,跳转到书签的位置继续进行阅读5、支持自动生成中文目录,并跳转到指定目录阅读三、实现原理和源码参考另一篇...

2021-10-27 20:13:04 2631

原创 redis 分布式中间件设计分析

redis 分布式中间件设计分析一、客户端bean实例化的时候1、读取配置文件,从配置文件中获取哨兵,分片等信息2、访问哨兵,根据分片masterName 从哨兵中获取主机和丛机ip及端口号数据3、依赖jedis组件,重新封装Jedis 和 JedisPool 类,使之能够根据读写策略,读的时候随机选择主机或者丛机进行读,写的时候选择主机进行写4、重新封装ShardedJedis,使其能够根据key进行分片,且采用一致性hash算法进行分片计算5、添加zk对应的配置文件节点监听,当节点数据发生变

2021-09-06 22:09:20 102

原创 redis分布式客户端中间件

Redis分布式一、环境搭建搭建两组shard,每组一主一从,一个哨兵【1】主机redis配置#redis.conf# Redis configuration file example.# ./redis-server /path/to/redis.conf################################## INCLUDES ####################################这在你有标准配置模板但是每个redis服务器又需要个性设置的时候很有用。#

2021-09-06 19:25:25 202

原创 工厂模式演化

工厂模式将具体的产品的构造过程放在了工厂类中实现例如一个电脑零件生产的工厂,可以生产主板和内存,具体生产那个类型通过工厂类中的逻辑判断控制;简单工厂将产品的构造过程从对象中拿了出来,随着工厂规模的增大,产品种类越来越多,例如后面又要生产显示器,显卡等等,导致工厂中判断生产产品的方法越来越复杂,即判断生产主板还是生产内存的逻辑都在工厂类中。因此衍生出了工厂方法模式工厂方法模式为每个产品创建一个工厂,因此就不需要将所有产品的创建方法都写在一个工厂类中,具体需要生产哪类产品时只需要拿到对应产品的工厂去创建

2021-03-24 22:47:26 86

原创 消息队列常见问题

问题1、为什么使用消息队列?异步、削峰、解耦、数据分发削峰:防止系统被高流量打垮,同时又不想通过扩容来支持,峰值只是某个时间点,通过扩容来支持大流量浪费机器资源,可以采用消息队列来削峰。解耦:同步改异步,解耦合,例如支付完成返券的操作不能影响支付完成的后续操作,采用异步的方式。2、消息队列的优缺点非实时消费、可能存在消息丢失,消息重复消费的情况,同时由于中间经过了代理转存,链路变长了3、如何保证消息队列的高可用?一个是要保证broker代理的高可用,另一个是要保证broker的管理者的高可用

2021-03-16 23:29:14 238

原创 RocketMQ-安装使用

1. MQ介绍1.1 为什么要用MQ消息队列是一种“先进先出”的数据结构其应用场景主要包含以下3个方面应用解耦系统的耦合性越高,容错性就越低。以电商应用为例,用户创建订单后,如果耦合调用库存系统、物流系统、支付系统,任何一个子系统出了故障或者因为升级等原因暂时不可用,都会造成下单操作异常,影响用户使用体验。使用消息队列解耦合,系统的耦合性就会提高了。比如物流系统发生故障,需要几分钟才能来修复,在这段时间内,物流系统要处理的数据被缓存到消息队列中,用户的下单操作正常完成。当物流系统回复后,

2021-03-16 23:26:26 262

原创 RocketMQ-项目集成

1. 案例介绍1.1 业务分析模拟电商网站购物场景中的【下单】和【支付】业务1)下单用户请求订单系统下单订单系统通过RPC调用订单服务下单订单服务调用优惠券服务,扣减优惠券订单服务调用调用库存服务,校验并扣减库存订单服务调用用户服务,扣减用户余额订单服务完成确认订单2)支付用户请求支付系统支付系统调用第三方支付平台API进行发起支付流程用户通过第三方支付平台支付成功后,第三方支付平台回调通知支付系统支付系统调用订单服务修改订单状态支付系统调用积分服务添加积分支付系

2021-03-16 23:07:46 768

原创 记录一次不同接口之间并发导致的生产问题

一、问题描述:用户在购物的一个订单中使用了3000多比红包;红包是平时通过签到分享获得的,每笔几分到几毛钱。我们系统整个订单流程大概是,用户加车的时候会计算可以用多少钱的红包,并将计算结果保存在一个订单奖励明细表中,记录的状态为待处理;提交订单的时候我们会扣账户下对应的红包,并将订单奖励明细表中的状态改为已发放,提交订单的数据库操作包括扣减用户账户下的红包、更新明显表的状态为已发放,记录审计记录,记录用券资源通知记录等表,这些表的操作都是在一个事务中进行的,并且我们会判断数据库实际的更新条数和预计要跟新的

2021-02-02 23:15:10 233 2

原创 缓存穿透-布隆过滤器

布隆过滤器布隆过滤器由一个很长的bit数组和一系列哈希函数组成的概率型数据结构,布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的算法要好的多。布隆过滤器如何解决redis中的缓存穿透,首先也是对所有可能查询的参数以hash形式存储,当用户想要查询的时候,使用布隆过滤器发现不在集合中,就直接丢弃,不再对持久层查询。缺点是有一定的误识别率和删除困难。一、问题产生背景数据库中查询不到的数据一直穿库。 cache_key = "id:1"; cache_value

2020-12-30 22:45:44 374

原创 如何学习一个新的系统

如何学习一个新的系统学习系统主要分为三个部分一、业务学习可以从如下几点寻找答案系统所在行业的情况是怎样?系统的目标用户是谁?比如是给公司高层做决策用?给运营或客服用?还是互联网用户用?平均有多少人在使用?高峰期多有少人在用?系统有什么业务价值?有哪些指标可以衡量系统业务价值?系统有哪些功能模块?系统有哪些领域概念?梳理下系统的领域模型。系统的关键业务流程有哪些?关键业务流程是怎样?系统的非功能性需求有哪些?如性能、质量、扩展性、安全性等。系统未来的发展规划是怎样?二、技术学习技术学

2020-12-22 11:14:34 1134

原创 多活服务指令编排

多活服务指令编排大体的请求流转路径DNS–>防火墙–>负载均衡VIP–>应用服务器–>数据库/缓存服务器DNS–>负载均衡VIP–>应用服务器–>数据库/缓存服务器一、防火墙防火墙作为外部流量的入口,当作全链路切换时,即使是共享型系统,也需要配置防火墙的部分流量切换步骤。先暂停:暂停的机房暂停流量的引入再切换:将用户请求切换到新的机房指令类型和功能说明类别作用暂停暂停流量引入切换将用户请求切换到新机房二、IDNS

2020-12-07 21:47:52 336

原创 数据迁移-商品数据迁移实践

数据迁移扩展-商品数据迁移实践一、背景描述:双11前对原商品数据重新做了分库分表和数据迁移,称双11空闲做下复盘。​ 原来我们商品主数据在2个公共库,每个库有100张商品主数据表,大概有3亿左右的商品数据,根据商品编码进行分库分表路由, 随着商品种类不断增加原库表数量不能满足,因此需要扩充以支持20亿商品数据的量。方案是将商品数据迁移到8个查询库去,每个查询库500张商品表,因此需要将原来的商品数据进行迁移和打散。二、整个过程数据迁移过程:1、前置准备申请表扩容的磁盘空间,每个库预计需要100G

2020-11-12 22:03:22 205

原创 缓存热点问题解决方案

缓存热点问题解决方案问题描述:同一时间访问同一个缓存key的请求数量过高,导致某台特定的redis服务器压力过大,而其他的redis服务器没有分担到压力。举例说明:店铺活动查询的时候缓存key为店铺编码,value为店铺能够参加的活动编码信息,某个时候店铺搞活动瞬时redis访问命令数飙升,热点key 所在的redis服务器压力瞬间飙升。解决方案:1、热点数据推送到jvm内存,内存有则直接访问内存,内存不存在再去访问缓存2、加随机数,将一份redis缓存数据通过key后面加随机数的方式生成多份分别

2020-11-11 22:22:35 625

原创 全局唯一序号生成方案

全局唯一序列号设计方案系统唯一ID是我们在设计一个系统的时候常常会遇见的问题,也常常为这个问题而纠结。生成ID的方法有很多,适应不同的场景、需求以及性能要求。所以有些比较复杂的系统会有多个ID生成的策略。一、全局唯一ID具备下面几个特性1、全局唯一性:不能出现重复的ID2、趋势递增:按照一定规则有序递增3、单调递增:保证下一个ID一定大于上一个ID4、信息安全:特定场景下连续递增ID的安全性单调递增与信息安全两个特性是互斥的,无法同时满足分布式系统架构中,除了需要满足ID生成自身的需求外,还

2020-11-11 22:15:04 2194 2

原创 后续待更新文章

后续待更新:1、券号、活动编码、券规则编码的生成策略2、热点缓存问题解决方案3、高并发接口多级缓存设计方案4、商品主数据扩容和数据库切换方案

2020-11-09 23:07:27 76

jmeter 往mysql数据库注入压测数据示例

jmeter 往mysql数据库注入压测数据示例

2024-03-27

sentry 9版本docker关联镜像打的包

sentry 9版本docker关联镜像打的包

2022-08-16

idea 电子书小说阅读插件源代码

idea 电子书小说阅读插件源代码

2021-10-28

moyu-1.0.zip

自己开发的一款IDEA电子书小说阅读插件

2021-10-27

redis分布式中间源码+使用demo.rar

redis分布式中间件源码+使用demo; 支持如下功能 (1)支持自动分片和路由 支持根据key自动路由到对应的分片 (2)支持动态更新分片灵活进行扩容和缩容 支持灵活的扩缩容后自动更新分片和连接路由信息 (3)支持监听主从切换 支持主机宕机,主从切换后自动更新主机,然后在主机进行写 (4)支持主机写,从机读(可以配置只从主机读) 支持主机进行写策略,丛机读策略 (5)支持宕机检测自动下线 支持自动检测到连接断开后自动下线 (6)采用一致性hash算法进行分片,扩缩容时只会影响小部分数据 扩缩容shard后支持只影响原shard的部分数据,影响小 使用例子:https://blog.csdn.net/khuangliang/article/details/120142649

2021-09-06

orm-dal.zip

自研ORM框架--仅供个人研究学习使用;该框架通过整合spring,freemarker模板引擎实现了类似mybatis一样的功能,但相比mybatis使用更简单,同时能够灵活的支持多个数据源之间的切换,和跨库事务。

2020-09-15

空空如也

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

TA关注的人

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