Notepad++下载安装NppFtp插件 1.下载NppFTP https://sourceforge.net/projects/nppftp/files/latest/download 2.解压压缩包 你解压后会得到两个目录bin和doc,那个doc不用管,然后你需要将bin文件夹命名为NppFTP文件夹,注意一定不...
深入RocketMQ原理 第1章 RocketMQ概述一、MQ概述1 、MQ简介MQ,Message Queue,是一种提供消息队列服务的中间件,也称为消息中间件,是一套提供了消息生产、存储、消费全过程API的软件系统。消息即数据。一般消息的体量不会很大。B站视频: 【尚硅谷】RocketMQ教程丨深度掌握MQ消息中间件2 、MQ用途从网上可以查看到很多的关于MQ用途的叙述,但总结起来其实就以下三点。限流削峰MQ可以将系统的超量请求暂存其中,以便系统后期可以慢慢进行处理,从而避免了请求的丢失或系统被压垮。
Redis高级2 个人博客欢迎访问个人博客: https://www.crystalblog.xyz/备用地址: https://wang-qz.gitee.io/crystal-blog/1. 简介Redis前面的基础部分此处不做记录 , 本篇记录狂神说讲解的Redis配置及高级应用的知识.Redis官网Redis中文网https://redis.com.cn/http://www.redis.cn/https://www.redis.net.cn/2. 特殊数据类型2.1 geospatial 地理
Redis高级1 个人博客欢迎访问个人博客: https://www.crystalblog.xyz/备用地址: https://wang-qz.gitee.io/crystal-blog/简介Redis前面的基础部分此处不做记录 , 本篇记录周阳老师讲解的Redis配置及高级应用的知识.尚硅谷-周阳思维导图链接: https://pan.baidu.com/s/1jY8bh8D0MN_4WN1hqwIQeQ提取码: ezog课件,别感谢我!B站视频: 尚硅谷超经典Redis教程,redis实战,阳哥版从
Redis学习笔记2 个人博客欢迎访问个人博客: https://www.crystalblog.xyz/备用地址: https://wang-qz.gitee.io/crystal-blog/1. Redis入门1.1 Redis简介B站视频: https://www.bilibili.com/video/BV1CJ411m7Gc?spm_id_from=333.1007.top_right_bar_window_custom_collection.content.click1.1.1 Redis引入2007年1
面试题-消息中间件专题 个人博客欢迎访问个人博客: https://www.crystalblog.xyz/备用地址: https://wang-qz.gitee.io/crystal-blog/1. MQ的应用场景有哪些呢?(1) 使用MQ异步发送优惠券(2) 使用MQ异步发送短信(3) 使用MQ异步扣库存总之, 将执行比较耗时的代码操作交给MQ异步实现接口.为什么使用MQ(1) 异步处理(多线程和MQ)(2) 实现解耦(3) 流量削峰 (MQ实现抗高并发)你们项目中有使用过MQ吗? 谈谈你对MQ的理解.
Redis学习笔记1 个人博客欢迎访问个人博客: https://www.crystalblog.xyz/备用地址: https://wang-qz.gitee.io/crystal-blog/1. Redis简介B站视频 : https://www.bilibili.com/video/BV1Cb411j7RA?spm_id_from=333.999.0.01.1 NoSQLNoSQL, 泛指非关系型数据库, NoSQL即Not-only SQL, 它可以作为关系型数据库的良好补充, 随着互联网web2.0网
分布式全局ID策略 个人博客欢迎访问个人博客: https://www.crystalblog.xyz/备用地址: https://wang-qz.gitee.io/crystal-blog/1. Zookeeper如何实现分布式锁?2. 说说你如何用redis实现分布式锁?3. 集群高并发情况下如何保证生成分布式全局ID的唯一性?3.1 为什么需要分布式全局唯一ID以及分布式ID的业务需求在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识. 例如:美团点评的金融, 支付, 餐饮, 酒店.猫眼电影等
MySql与Redis延迟双删策略 个人博客欢迎访问个人博客: https://www.crystalblog.xyz/备用地址: https://wang-qz.gitee.io/crystal-blog/1. MySql与Redis如何实现数据同步问题?见第4点先更新db再删除缓存 or 先删除缓存再更新db的详解.2. 什么是缓存延迟双删策略?见第4点先删除缓存再更新db中的延迟双删方案3. 为什么不建议使用延迟双删?见第4点先删除缓存再更新db中的方案选择4. 先更新db再删除缓存 or 先删除缓存再更新db?先
MySql相关面试题 个人博客欢迎访问个人博客: https://www.crystalblog.xyz/备用地址: https://wang-qz.gitee.io/crystal-blog/1. MySQL底层采用什么数据结构2. 为什么MySQL的Innodb存储引擎必须要有主键3. 一条SQL语句查询慢, 如何优化?4. explain工具使用5. Sql语句查询如何避免回表查询6. 索引为何需要遵循最佳左侧法则?7. like不走索引如何优化?8. 千万级数据, 如何查询优化?9. 如何分表分库?
Map线程安全的面试题 个人博客欢迎访问个人博客: https://www.crystalblog.xyz/备用地址: https://wang-qz.gitee.io/crystal-blog/1. Hashtable与HashMap的区别(1), HashMap实现不同步, 线程不安全. HashMap中的key-value都是存储在Entry中的. Hashtable线程安全. 使用synchronized . jdk7 底层数据结构: 数组 + 链表. jdk8 底层数据结构: 数组 + 链
微服务项目发布及调用等面试题 个人博客欢迎访问个人博客: https://www.crystalblog.xyz/备用地址: https://wang-qz.gitee.io/crystal-blog/1. 为什么不选择dubbo? 却选择SpringCloud?dubbo属于RPC框架, 底层是netty封装;SpringCloud不属于RPC框架, 属于微服务全家桶框架, 提供了分布式微服务整套解决方案.服务治理: nacos, eureka, zookeeper, consule分布式配置中心 nacos,
JDK8 新特性 个人博客个人博客: https://www.crystalblog.xyz/备用地址: https://wang-qz.gitee.io/crystal-blog/1. 简介JDK8是官方发布的一个大版本, 提供了很多新特性功能给开发者使用, 包含语言、编译器、库、工具和JVM等方面的十多个新特性。 本文将介绍编码过程中常用的一些新特性. JDK8帮助文档Lambda表达式函数式接口方法引用和构造器调用Stream API接口中的默认方法和静态方法新的日期时间APIOptiona
创建Gradle项目 1. 安装配置Gradle1.1 下载gradle在官网下载gradle包1.2 IDEA安装gradle插件直接将gradle-5.2.1-bin.zip包拖到IDEA里面, 然后重启IDEA, 就可以看到IDEA已经安装好了gradle插件.1.3 IDEA配置gradle构建1.4 配置环境变量配置GRADLE_HOME, 值为本地gradle插件位置.配置path, 添加;%GRADLE_HOME%\bin2. 创建父工程创建gradle父工程 ssm-parent-d
内部资料交换系统设计 1. 设计背景银行内部门之间资料传递基本采取手工登记, 人工传递的方式, 交接记录手工登记内容记载不全面, 不清晰, 纸质登记簿保存及查找困难, 一旦传递的内部资料丢失, 难以查找和追溯.2. 业务介绍为使内部资料传递信息可追溯, 可查询, 提升管理效率, 借鉴物流配送模式, 使用移动端设备扫描信封二维码, 实现电子化登记交换信封信息, 用户可查询信封整个传递周期的状态,改变目前普遍采取的手工登记, 人工核对的方式, 提升内部交换效率, 通过数据分析, 掌握了解全行内部传递资料的种类, 传递的数量,
审批流程设计 审批流程设计1. 介绍在银行相关业务场景中, 为了保护客户账户信息或资金的安全, 业务的开展往往需要经过严格的审批流程, 只有经过高级经理或行长审批完成后才允许业务交互核心生效. 而不同级别的部门又存在不同场景的业务, 审批流程又不尽相同, 这时候就需要一套完整的审批流程系统来进行统一调度和管理. 在我的工作经验中, 很多银行项目都会采用工作流workflow技术进行流程设计, 这是一个可行的流程设计框架. 但我今天要写的方案不是采用框架实现, 而是只用db设计来控制审批流程的走向, 为了适应不同场景的
Tomcat多实例部署方案 1. 介绍 在工作中, 所有应用原本是使用IBM Websphere容器进行部署的, 然而IBM全家桶毕竟是收费的, 而且技术支持依赖人家. 所以有了改成tomcat容器部署的方案. 但在改造过程中, 项目组将改造的五六个应用分别构建成war包, 每个应用war包使用一个tomcat容器, 分配各自不同的http端口, 这样的方式也是没什么问题的. 但就在2021年, 日志实现框架log4j2被爆出重量级的漏洞, 最终解决方案是升级官方发布的jar包版本. 那如果tomcat也出现这样的问题,
Shell脚本导入导出数据 1. 介绍在工作中 , 很多场景都会涉及到db数据的导入导出, 为了不影响正常业务, 一般会选择在夜间交易访问量小的时候定时任务跑批进行数据的导入导出. 我们公司, 由于分为了不同区域的开发中心, 应用系统也比较多, 所以业务相互关联的各系统间的数据依赖, 我们是通过数据中台做数据中转的, 比如: A系统要做客户信息的操作但自己没有这部分信息, 客户信息主要是B系统在维护, 这时候A系统就需要用到B系统的数据.方案就是B系统将客户信息数据资源发布到数据中台, 因为A系统向数据中台订阅了B系统的客户信
微服务-seata分布式事务 1. 分布式事务问题在单机单库的时候, 有本地事务可以保证数据的一致性; 但在分布式架构中, 原来的单体应用被拆分成多个微服务应用且都有各自独立的数据源, 一个业务场景的完成可能需要不同微服务模块和不同的库来完成. 此时每个微服务模块内部的数据一致性由本地事务来保证, 但是全局的数据一致性问题没有办法协调保证.比如: 用户购买商品的业务逻辑, 需要由3个微服务提供支持.仓储服务: 对给定的商品扣除仓储数量.订单服务: 根据采购需求创建订单.账户服务: 从用户账户中扣除余额.架构图:一句
微服务-Sentinel流控降级 1. Sentinel简介1.1 Sentinel是什么?随着分布式系统变得越来越流行,服务之间的可靠性变得比以往任何时候都更加重要。Sentinel, 是一个强大的流控组件,以“流”为切入点,涵盖流控、并发限制、熔断、自适应系统保护等多个领域,保障微服务的可靠性, 简单理解就是流量哨兵, 类似SpringCloud里的熔断器Hystrix, 且比Hystrix更加强大.轻量级的流量控制、熔断降级的Java库→Sentinel的GitHub开源→Sentinel官方介绍→Sentinel官