- 博客(81)
- 收藏
- 关注
原创 IDEA2021.2安装与配置(持续更新)
IDEA2021.2安装与配置一、下载二、安装三、配置配置全局生效首次启动激活字体,字体大小配色方案注解生效自动导包移包自动补全快捷键格式化代码代码忽略大小写git配置maven配置四、插件Vue.jsTranslationlombok一、下载下载地址:https://www.jetbrains.com/zh-cn/idea/download/other.html选择相应的版本下载,这里以 2021.2 版本为例。二、安装更改安装位置创建桌面快捷方式三、配置配置全局生效不要打开项目,直
2021-08-03 16:45:48 218602 147
原创 Java八股文面试全套真题-下
CAS的全称是: Compare And Swap(比较再交换),它体现的一种乐观锁的思想,在无锁情况下保证线程操作共享数据的原子性。在JUC( java.util.concurrent )包下实现的很多类都用到了CAS操作AbstractQueuedSynchronizer(AQS框架)AtomicXXX类例子:我们还是基于刚才学习过的JMM内存模型进行说明线程1与线程2都从主内存中获取变量int a = 100,同时放到各个线程的工作内存中。
2024-08-07 15:12:18 840
原创 Java八股文面试全套真题-上
分片集群主要解决的是,海量数据存储的问题,集群中有多个master,每个master保存不同数据,并且还可以给每个master设置多个slave节点,就可以继续增大集群的高并发能力。这个是不能的,比如,当线程1加锁成功后,master节点数据会异步复制到slave节点,此时当前持有Redis锁的master节点宕机,slave节点被提升为新的master节点,假如现在来了一个线程2,再次加锁,会在新的master节点上加锁成功,这个时候就会出现两个节点同时持有一把锁的问题。查找的过程也是一样的。
2024-05-29 09:15:00 2399 2
原创 设计模式之代理模式
二十三种设计模式中的一种,属于结构型模式。它的作用就是通过提供一个代理类,让我们在调用目标方法的时候,不再是直接对目标方法进行调用,而是通过代理类间接调用。让不属于目标方法核心逻辑的代码从目标方法中剥离出来——解耦。调用目标方法时先调用代理对象的方法,减少对目标方法的调用和打扰,同时让附加功能能够集中在一起也有利于统一维护。
2023-06-09 08:58:33 889
原创 设计模式之策略模式
借助spring的生命周期,使用ApplicationContextAware接口,把对用的策略,初始化到map里面。然后对外提供resolveMessage方法即可。以上代码,违背了面向对象编程的开闭原则以及单一原则。
2023-06-09 08:57:35 307
原创 面试篇之NoSQL
fork采用操作系统提供的写实复制(Copy On Write)机制,就是为了避免一次性拷贝大量内存数据给子进程造成的长时间阻塞问题,但fork子进程需要拷贝进程必要的数据结构,其中有一项就是拷贝内存页表(虚拟内存和物理内存的映射索引表),这个拷贝过程会消耗大量CPU资源,拷贝完成之前整个进程是会阻塞的,阻塞时间取决于整个实例的内存大小,实例 越大,内存页表越大,fork阻塞时间越久。设置该key 过期时间后,我们不去管它,当需要该key时,我们在检查其是否过期,如果过期,我们就删掉它,反之返回该key。
2023-01-09 09:01:10 961
原创 高性能分布式缓存Redis-第三篇章
布隆过滤器(英语:Bloom Filter)是 1970 年由Burton Howard Bloom提出的,是一种空间效率高的概率型数据结构。本质上其实就是一个很长的二进制向量和一系列随机映射函数。专门用来检测集合中是否存在特定的元素。
2023-01-09 09:00:49 490
原创 高性能分布式缓存Redis-第二篇章
高性能分布式缓存Redis-第二篇章1. 持久化原理1.1 持久化流程(落盘)1.2 RDB详解1.2.1 概念1.2.2 触发&原理1.2.3 实现1.2.4 RDB总结1.3 AOF详解1.3.1 概念1.3.2 AOF 持久化的实现1.3.2 开启1.3.4 命令追加1.3.5 文件写入和同步(触发)1.3.5 文件写入和同步(触发)1.3.6 AOF 数据恢复1.3.7 AOF "重写"1.3.8 AOF重写原理1.4 持久化优先级1.5 性能与实践2. 安全策略持久化原理(落盘、RDB
2023-01-09 09:00:34 1399
原创 高性能分布式缓存Redis-第一篇章
高性能分布式缓存Redis第一篇章1. 缓存发展史&缓存分类1.1 大型网站中缓存的使用1.2 常见缓存的分类1.3 分布式缓存选型方案对比2. Redis概述&安装配置2.1 概述2.3 安装&配置3. 数据类型选择&应用场景3.1、Redis的Key的设计规范string字符串类型hash类型(散列表)list列表类型set集合类型sortedset有序集合类型bitmap位图 类型geo地理位置类型概述环境要求redis GEO常用命令第一篇章缓存发展史&
2023-01-09 08:59:30 1010 4
原创 HashMap面试题
HashMap面试题介绍下 HashMap 的底层数据结构1.8 为什么要改成“数组+链表/红黑树”?那在什么时候用链表?什么时候用红黑树?为什么链表转红黑树的阈值是8?为什么转回链表节点是用的6而不是复用8?HashMap 的默认初始容量是多少?HashMap 的容量有什么限制吗?HashMap 的容量必须是 2 的 N 次方,这是为什么?负载因子为什么默认值是0.75。HashMap 的插入流程是怎么样的?图里刚开始有个计算 key 的 hash 值,是怎么设计的?为什么要将 hashCode 的高16
2022-12-28 09:00:00 772
原创 MySQL数据库调优
1.2、MySQL Server层 架构可以分为 Server层 和 Engine层两部分:Mysql作为服务器,一个客户端的Sql连接过来就需要分配一个线程进行处理,这个线程会专门负责监听请求并读取数据。这部分的线程和连接管理都是有一个连接器,专门负责跟客户端建立连接、权限认证、维持和管理连接。思考:答:连接器负责跟客户端建立连接、获取权限、维持和管理连接。连接命令一般是这么写的:在完成 经典TCP 握手后,连接器会基于用户名和密码来验证身份。验证不通过:"Access denied for us
2022-12-28 09:00:00 2564
原创 ElasticSearch集群部署
Cerebro是Elasticsearch插件 Elasticsearch Kopf 的演变,可以通过图形界面查看分片分配和执行常见的索引操作。因为ES的数据大量都是常驻内存的,一旦使用了虚拟内存就会导致查询速度下降,一般需要关闭swap,但是要保证有足够的内存。到官网下载, Kibana安装包, 与之对应7.10.2版本, 选择Linux 64位版本下载,并进行解压。如果出现启动失败的情况, 要检查集群各节点的日志, 确保服务正常运行状态。启动,注意不要使用root用户启动。安装方式同上,修改配置文件。
2022-11-03 09:00:00 2448 1
原创 微信支付申请
使用微信扫一扫,确认信息,并选择提现方式,这里我选择手动提现,从账号余额按需提现,提交后需要人脸核验。勾选 我已阅读《微信支付商户管理系统使用协议》,进入商户平台。密钥为32个字符,支持数字/大小写字母,操作方式同上。扫码登录,选择登录的商户号,就进入微信支付后台了。注意:以上所有API秘钥和证书需妥善保管防止泄露。授权后,在已关联商户号中就可以查到信息。可以预先下载,也可以通过编程的方式获取。密钥为32个字符,支持数字/大小写字母。这里我不需要填写, 直接为空。登录微信公众平台,同意授权。
2022-09-19 10:05:07 2247
原创 FastDFS集群搭建
对于文件的操作需要使用 StorageClient,StorageClient的构造函数需要 TrackerServer 和 StorageServer,所以,我们首先通过加载配置文件,获取到 TrackerClient,再通过 TrackerClient获取 TrackerServer 和 StorageServer,最后通过 StorageClient 实现对文件的管理。
2022-09-18 10:03:43 3796
原创 RocketMQ安装部署
nameserver是⼀个轻量级的注册中心,broker把自己的信息注册到nameserver上。JAXB,Java Architechture for Xml Binding,用于XML绑定的Java技术,是一个业界标准,是一 项可以根据XML Schema生成Java类的技术。刷盘策略指的是broker中消息的落盘方式,即消息发送到broker内存后消息持久化到磁盘的方式。执行启动命令,并且常驻内存,注意ip地址要配置成为服务的ip地址,保证地址以及端口能够访问。需要修改每台broker的配置文件。..
2022-08-29 09:00:00 9565 3
原创 微信公众号之微信认证
微信认证指注册和认证公众号同时进行,申请后公众号即为认证加“V”的公众帐号(若您后续帐号需要微信认证,也可选择微信认证方式来注册公众号),微信认证服务审核费300元/次/年。个体工商户无对公账户,可提供营业执照上法人的银行卡信息申请认证;企业必须要有对公账户,请先办理对公账户再申请公众号或认证;事业单位如无对公账户,可以使用结算中心或财政账户支付验证(如国库集中收付结算中心等),也可以使用证书上法人的对私银行卡号及姓名;...
2022-07-28 09:00:00 3756
原创 记录一次生产环境清理千万级redis数据
生产环境每天通过定时任务自动清理redis数据,由于使用的是其它项目的redis集群,其它项目把生产环境上的keys *命令禁用了,导致我们清理redis数据失败。解释:不同的字符需要用换行隔开简单直观,推荐使用。2.2、文件格式转码2.3、执行批量导入2.3.1、脚本生成模拟数据保存之后给脚本执行权限2.3.2、代码模拟数据2.3.3、执行导入通过 --pipe 来启动集群模式的,解决报错细致型通过key 的哈希值 区分槽点,通过节点拿到槽点,这里不做演示。三、批量删除
2022-07-11 09:00:00 1525
原创 JDK源码环境搭建
JDK源码环境搭建新建Java项目导入JDK源码替换JDK关联测试代码解决找不到sun.awt.UNIXToolkit和sun.font.FontConfigManager新建Java项目新建包com.java521.source:用于存放源码com.java521.test:用于存放测试代码导入JDK源码JDK源码就在JAVA_HOME/src.zip中,解压即可用。替换JDK关联移除Sourcepath中关联的src.zip将项目中的JDK源码关联到Sourcepath
2022-05-28 16:06:36 925 5
原创 Redis经典面试题
Redis经典面试题一、redis是单线程架构还是多线程架构二、单线程的redis为什么这么快三、Redis6.x 之后为何引入了多线程?四、Redis6.x多线程的实现机制?五、 Redis6.x默认是否开启了多线程?六、缓存穿透七、缓存雪崩八、缓存击穿一、redis是单线程架构还是多线程架构redis整体来说并非只有一个线程(多线程),只是redis在处理网络请求,k/v读写操作这个过程是用一个线程来处理的,它的其他功能:持久化、异步删除、集群同步都是采用额外的线程来完成的。二、单线程的redis
2022-05-28 15:45:55 10361
原创 微信公众号注册认证流程
微信公众号注册认证流程一、微信公众平台开发概述二、申请公众号2.1、基本信息2.2、选择类型2.3、信息登记2.4、公众号信息一、微信公众平台开发概述信公众平台是运营者通过公众号为微信用户提供资讯和服务的平台,而公众平台开放接口则是提供服务的基础,开发者在公众平台网站中创建公众号、获取接口权限后,可以通过阅读本接口文档来帮助开发。如遇问题,可前往 #公众号社区 发帖交流。为了识别用户,每个用户针对每个公众号会产生一个安全的OpenID,如果需要在多公众号、移动应用之间做用户共通,则需前往微信开放平台,
2022-05-28 15:40:02 4258
原创 平滑2N扩容方案实践
平滑2N扩容方案实践一、资源准备二、MariaDB服务安装三、MariaDB双主同步四、KeepAlived安装与高可用配置五、实现数据库的秒级平滑2N扩容5.1、新增数据库VIP5.2、应用服务增加动态数据源5.3、解除原双主同步5.4、安装MariaDB扩容服务器5.5、增加KeepAlived服务实现高可用5.6、清理数据并验证5.7、测试一、资源准备编号ip网关子网掩码系统1192.168.0.101192.168.0.2255.255.255.0CentOS7
2022-04-01 14:54:05 1873
原创 MongoDB5.0.5集群
MongoDB5.0.5部署一、Windows 平台安装 MongoDB1.1、下载MongoDB1.2、安装MongoDB1.3、添加环境变量1.4、服务启动/关闭命令二、Linux传统方式安装MongoDB2.1、5.0.5版本2.2、4.4.10版本三、Docker方式安装MongoDB一、Windows 平台安装 MongoDB1.1、下载MongoDB下载地址:https://www.mongodb.com/try/download/community1.2、安装MongoDB双击"mo
2022-01-30 08:30:00 2145
原创 MongoDB 5.0.5
MongoDB 一、MongoDB 简介二、MongoDB安装2.1、Windows 平台安装 MongoDB2.2、Linux平台安装MongoDB三、MongoDB 概念解析四、MongoDB命令插入文档MongoDB 更新文档update() 方法save() 方法一、MongoDB 简介MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功
2022-01-28 08:53:06 767
原创 ZooKeeper
ZooKeeper&Dubbo一、ZooKeepe1.1、Zookeeper概述1.2、zookeeper的发展历程1.3、什么是分布式1.3.1、集中式系1.3.2、分布式系统1.4、zookeeper的应用场景1.4.1、 注册中心1.4.2、配置中心1.4.3、分布式锁1.4.4、分布式队列1.4.5、负载均衡1.5、zookeeper基本操作1.5.1、zookeeper数据结构1.5.2、节点的分类3. Apache Dubbo概述二、Dubbo简介2.1、Dubbo架构一、ZooKee
2022-01-13 22:35:14 904
原创 Apache POI导入导出Excel
Apache POI原生导出工具类public class ExportExcelUtil { public static void createHeadTittle(XSSFWorkbook wb, XSSFSheet sheet, String headString, int col) { // 创建Excel工作表的行 XSSFRow row = sheet.createRow(0); // 创建Excel工作表指定行的单元格
2021-12-24 09:46:07 955
原创 SpringBoot
SpringBoot一、SpringBoot 概述1.1、Spring 缺点1.2、SpringBoot 功能二、SpringBoot 配置2.1、yaml基本语法2.2、yaml语法规则2.2.1、字面值表示方式2.2.2、数组表示方式2.2.3、yaml数据读取2.3、多环境开发2.3.1、maven配置方式2.3.2、springboot配置方式2.3.2.1、yml方式2.3.2.2、properties方式2.3.2.3、多环境开发独立配置文件2.3.3、Maven与SpringBoot多环境兼容
2021-12-02 14:28:13 460
原创 SpringCloud
SpringCloud系统架构演变1.1. 集中式架构1.2. 垂直拆分1.3. 分布式服务1.4. 面向服务架构(SOA)1.5.分布式架构1.6. 微服务架构2. 服务调用方式
2021-12-01 14:27:59 3903 1
原创 Redis集群
Redis单机安装、集群一、单机安装Redis1.1、安装gcc依赖1.2、下载redis1.3、编译、安装并指定安装目录1.4、启动服务1.5、启动客户端1.6、设置开机启动二、Redis主从集群2.1、集群结构2.2、准备实例和配置2.4、开启主从关系2.5.测试三、搭建哨兵集群3.1、集群结构3.2、添加配置3.3.启动3.4.测试一、单机安装Redis1.1、安装gcc依赖由于 redis 是用 C 语言开发,安装之前必先确认是否安装 gcc 环境(gcc -v),如果没有安装,执行以下命令进
2021-11-28 08:59:23 2897 2
原创 消息中间件RabbitMQ
消息中间件RabbitMQ1. 消息队列1.1. MQ 的相关概念1.1.1. 什么是 MQ1.1.2. 为什么要用 MQ1.1.3. MQ 的分类1.1.4. MQ 的选择1.2. RabbitMQ1.2.1. RabbitMQ 的概念1.2.2. 四大核心概念1.2.3. RabbitMQ 核心部分1.2.4. 各个名词介绍1.2.5. 安装1. 消息队列1.1. MQ 的相关概念1.1.1. 什么是 MQMQ(message queue),从字面意思上看,本质是个队列,FIFO 先入先出,只不
2021-11-25 16:04:11 5602 2
原创 VMware 16 Pro安装Windows 11
VMware 16 Pro安装Windows 11一、准备工作1.1、环境准备1.2、安装系统要求二、新建虚拟机三、安装Windows 11四、配置Windows 11一、准备工作1.1、环境准备VMware版本:目前最新版(16.1.2 build-17966106)系统版本:Windows 11官网载地址:https://www.microsoft.com/zh-cn/software-download/windows11(推荐迅雷下载)1.2、安装系统要求系统要求这些是在电脑上安
2021-11-19 15:37:16 3340 1
原创 MySQL数据库
MySQL数据库一、SQL 结构化查询语⾔1.1、SQL概述1.1.1、SQL发展1.1.2、SQL分类1.2、SQL基本语法1.3、DDL 数据定义语⾔1.3.1、DDL-数据库操作1.3.2、DDL-数据表操作1.4、MySQL数据类型1.4.1、数值类型1.4.2、字符串类型1.4.3、日期类型1.5、字段约束1.5.1、约束介绍1.5.2、非空约束1.5.3、唯⼀约束1.5.4、主键约束1.5.5、主键⾃动增⻓1.5.6、联合主键1.5.7、外键约束1.6、DML 数据操纵语⾔1.6.1、插⼊数据1
2021-11-12 14:19:01 1643
原创 Linux、Windows安装ActiveMQ
Linux、Windows安装ActiveMQ一、下载二、Linux安装三、Windows安装一、下载下载地址:https://activemq.apache.org/components/classic/download/选择相应的系统版本二、Linux安装下载tar包到本地再上传到服务器 或者 通过wget下载wget https://dlcdn.apache.org/activemq/5.16.3/apache-activemq-5.16.3-bin.tar.gz解压tar -zx
2021-11-05 23:29:50 4388 1
原创 RabbitMQ环境部署(Windows、单机、Docker、集群)
RaabitMQ环境部署(Windows、单机、集群)集群部署初始化环境配置 Erlang Cookie启动服务集群搭建查看集群状态集群部署实验环境:主机名操作系统IP地址用途CentOS8-1CentOS8192.168.0.3磁盘节CentOS8-2CentOS8192.168.0.4内存节点CentOS8-3CentOS8192.168.0.5内存节点初始化环境分别修改主机名为CentOS8-1、CentOS8-2、CentOS8-3
2021-11-03 14:05:17 2609
原创 Spring5
Spring5Spring概念Spring是一个JavaEE开源的轻量级别的框架,可以解决我们企业开发中遇到的难题,能够让编码变的更加简单,核心组件 IOC容器和Aop面向切面编程。IOC 控制反转:把整个对象创建的过程,统一交给我们SpringIOC容器来实现管理,底层使用反射+工厂模式实现。Aop面向切面编程:对我们功能(方法)前后实现增强,比如打印日志、事务原理、权限管理,底层是基于动态代理模式实现的。减少到我们的代码的冗余性问题。Spring优势方法的解耦,简化开发;Aop技
2021-10-25 09:06:47 1174
原创 Mybatis3
Mybatis3一、Mybatis简介1.1、原始jdbc操作的分析1.2、什么是Mybatis二、Mybatis的快速入门2.1、环境搭建一、Mybatis简介1.1、原始jdbc操作的分析原始jdbc开发存在的问题如下数据库连接创建、释放频繁造成系统资源浪费从而影响系统性能sql 语句在代码中硬编码,造成代码不易维护,实际应用 sql 变化的可能较大,sql 变动需要改变java代码。查询操作时,需要手动将结果集中的数据手动封装到实体中。插入操作时,需要手动将实体的数据设置到sql语句的占
2021-10-25 09:04:02 1135
原创 Nacos单机部署和集群搭建
Linux和Windows安装Nacos2.0.3一、Windows安装1.1、下载安装包1.2、解压1.3、端口配置1.4、启动1.5、访问二、Linux安装2.1、安装JDK2.2、下载2.3、解压2.4、端口配置2.5、启动2.6、访问三、Nacos的依赖一、Windows安装开发阶段采用单机安装即可。1.1、下载安装包在Nacos的GitHub页面,提供有下载链接,可以下载编译好的Nacos服务端或者源代码:GitHub主页:https://github.com/alibaba/nacos
2021-10-25 09:01:54 3353 2
原创 NPM环境安装
NPM环境安装一、nodejs安装1.1、安装nodejs1.2、打开CMD,检查是否正常1.3、自定义目录1.4、npm的本地仓库1.5、 配置镜像站1.6、显示所有配置信息1.7、查看npmrc1.8、检查一下镜像站行不行命令1.8、安装npm二、webpack安装步骤2.1、本地安装2.2、全局安装一、nodejs安装官网:https://nodejs.org/en/下载地址:https://nodejs.org/dist/v14.17.6/node-v14.17.6-x64.msi1.1、安
2021-10-12 21:19:21 5516
原创 Echarts Graph关系图优化显示
Echarts Graph关系图优化显示一、修改前效果二、演示代码三、解决方式四、修改后效果一、修改前效果节点很多(项目上的更多,而且还在持续增加),如果对节点进行操作,需要进行放大,但也会引来另一个问题,节点也随之放大默认效果放大后效果二、演示代码<!DOCTYPE html><html style="height: 100%"> <head> <meta charset="utf-8"> </head> <bo
2021-10-12 10:49:22 2321 4
原创 VMware 16 Pro安装MacOS Mojava 10.14
下载VM16Pro安装激活下载一个auto-unlocker文件https://github.com/paolo-projects/auto-unlocker/releases下载VMware安装好之后,将auto-unlocker放在VMware 安装路径下然后点击里面Unlocker里面的.exe文件,鼠标右键以管理员身份运行,出现窗口说明运行,直至消失(中间可能会下载一些必要文件,很慢)记得关闭VM已经启动的服务然后 新建虚拟机向导时 就会有Apple Mac OS X(M)..
2021-09-29 14:19:50 2396
原创 大数据技术之ClickHouse
wget https://repo.clickhouse.tech/tgz/stable/clickhouse-common-static-21.8.3.44.tgz wget https://repo.clickhouse.tech/tgz/stable/clickhouse-common-static-dbg-21.8.3.44.tgz wget https://repo.clickhouse.tech/tgz/stable/clickhouse-server-21.8.3.44.tgz wge
2021-09-06 09:10:33 1615
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人