摘要:
Ansible-playbook 快速入门到放弃 隔岸红尘忙似火,当轩青嶂冷如冰。 1-简介 playbook 相当于可以把模块命令都写入到配置文件里面,这样就可以直接执行配置文件了,类似脚本。 2-playbook 初体验 编写test.yml 文件,在serviceA 主机机器上的/opt/tj 阅读全文
摘要:
Ansible 快速入门到放弃 最是人间留不住,朱颜辞镜花辞树。 1-Ansible 简介 Ansible是一个配置管理和配置工具,它使用SSH 连接到服务器并运行配置好的任务,服务器上只需要开启ssh,所有工作都交给client 端的ansible 负责。 当我们有批量部署的需求时,我们可以自己写 阅读全文
摘要:
Redis 数据结构-双向链表 最是人间留不住,朱颜辞镜花辞树。 1、简介 Redis 之所以快主要得益于它的数据结构、操作内存数据库、单线程和多路 I/O 复用模型,进一步窥探下它常见的五种基本数据的底层数据结构。 Redis 常见数据类型对应的的底层数据结构。 String:简单动态字符串。 L 阅读全文
摘要:
Redis 数据结构-简单动态字符串 无边落木萧萧下,不尽长江滚滚来。 1、简介 Redis 之所以快主要得益于它的数据结构、操作内存数据库、单线程和多路 I/O 复用模型,进一步窥探下它常见的五种基本数据的底层数据结构。 Redis 常见数据类型对应的的底层数据结构。 String:简单动态字符串 阅读全文
摘要:
Java开发网络安全常见问题 等闲识得东风面,万紫千红总是春 1、敏感信息明文传输 用户敏感信息如手机号、银行卡号、验证码等涉及个人隐私的敏感信息不通过任何加密直接明文传输。 如下图中小红书APP 的手机短信验证码登录接口,此处没有对用户手机号和验证码等信息进行加密传输,可以很简单的截取并开展一些合 阅读全文
摘要:
订单自动确认或取消设计方案 前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。 简介 系统订单自动确认或取消的设计方案,最常见的一个业务比如N天后自动确认订单,达到动态修改订单状态的目的。大多数项目采用的都是如下两种方案。 方案1:使用传统的数据库如MySQL,通过轮询来判断数据库表中订单的状态。 阅读全文
摘要:
分布式ID生成方案 朱门酒肉臭,路有冻死骨。 简介 对于单体项目,主键 ID 常用主键自动的方式进行设置。但是在分布式系统中,分库分表之后就不行了,如果还采用简单数据库主键ID自增的方式,就会出现同一ID在不同数据库的情况。常见分布式ID生成方案:UUID、号段模式、Redis 实现、雪花算法(Sn 阅读全文
摘要:
10瓶毒药其中只有一瓶有毒至少需要几只老鼠可以找到有毒的那瓶 身似浮云,心如飞絮,气若游丝。 用二分查找和二进制位运算的思想都可以把死亡的老鼠降到最低。 其中,二进制位运算就是每一只老鼠代表一个二进位0或1,0就代表老鼠存活,1代表老鼠死亡;根据数学运算 23 = 8、24 = 16,那么至少需要四 阅读全文
摘要:
Nacos 动态配置原理 可怜夜半虚前席,不问苍生问鬼神。 简介 动态配置管理是 Nacos 的三大功能之一,通过动态配置服务,我们可以在所有环境中以集中和动态的方式管理所有应用程序或服务的配置信息。 动态配置中心可以实现配置更新时无需重新部署应用程序和服务即可使相应的配置信息生效,这极大了增加了系 阅读全文
摘要:
MySQL8 Group By 新特性 此生此夜不长好,明月明年何处看。 一、简介 MySQL8 新特性之 Group By 不再隐式排序。MySQL8对于group by 字段不再隐式排序,如需要排序,必须显式加上 order by 子句。 二、MySQL5.7 Group By 数据准备 Sel 阅读全文
摘要:
MySQL8新增降序索引 桃花坞里桃花庵,桃花庵里桃花仙。桃花仙人种桃树,又摘桃花卖酒钱。 一、MySQL5.7 降序索引 MySQL在语法上很早就已经支持降序索引,但实际上创建的却仍然是升序索引,如下MySQL 5.7 所示,row2字段降序,但是从show create table看 row2 阅读全文
摘要:
MySQL 回表 五花马,千金裘,呼儿将出换美酒,与尔同销万古愁。 一、简述 回表,顾名思义就是回到表中,也就是先通过普通索引扫描出数据所在的行,再通过行主键ID 取出索引中未包含的数据。所以回表的产生也是需要一定条件的,如果一次索引查询就能获得所有的select 记录就不需要回表,如果select 阅读全文
摘要:
MySQL8自增主键变化 醉后不知天在水,满船清梦压星河。 一、简述 MySQL版本从5直接大跃进到8,相信MySQL8一定会有很多令人意想不到的改进,如果不想只会CRUD可以看看。 比如系统表引擎的变化-全部换成事务型的InnoDB。 MySQL5.7系统部引擎 MySQL8系统引擎 上图可以看到 阅读全文
摘要:
Spring Boot启动流程 君生我未生,君生我已老。君恨我生迟,我恨君生早。 一、简述 Spring Boot启动流程分析使用版本SpringBoot VERSION:版本 2.5.5-SNAPSHOT。 Spring Boot项目最简单的Application启动类。 可以看出Applicat 阅读全文
摘要:
Java线程通信 螣蛇乘雾,终为土灰。 多个线程协同工作完成某个任务时就会涉及到线程间通信问题。如何使各个线程之间同时执行,顺序执行、交叉执行等。 一、线程同时执行 创建两个线程a和b,两个线程内调用同一个打印 1-3 三个数字的方法。 1 package tjt; 2 3 import java. 阅读全文
摘要:
代码优化记录 神龟虽寿,犹有竟时。 一、数据库校验并抛异常优化 1 /** 2 * 校验:这辆车是否是他的(一个人可以有多辆车),不是直接抛异常 3 */ 4 public void edit(UserPayload payload) { 5 // 其他业务逻辑操作 6 // 校验方式一 7 che 阅读全文
摘要:
Redis小秘密 临渊羡鱼,不如退而织网。 一、Redis基本数据类型 想必很多人都能脱口而出String、List、Hash、Sorted Set和Set五种基本数据类型。 以及五大基本数据类型简要区别: redis存储的是:key、value格式的数据,其中key都是字符串,value有5种不同 阅读全文
摘要:
分布式事务解决方案 花开堪折直须折,莫待无花空折枝。 一、简述 分布式事务是指事务的操作位于不同的节点上,需要保证事务的ACID特性。在分布式架构下,每个节点只知晓自身操作的成功与失败,无法知悉其他节点的操作状态。当一个事务跨多个节点时,为了保持事务的原子性与一致性,从而引入一个协调者来统一管控所有 阅读全文
摘要:
Redis内存满了怎么办(新年快乐) 入我相思门,知我相思苦。 长相思兮长相忆,短相思兮无穷极。 一、配置文件 Redis长期使用或者不设置过期时间,导致内存爆满或不足,可以到Redis的配置文件redis.conf 文件中,配置参数 maxmemory 的大小。一般的项目maxmemory设置为3 阅读全文
摘要:
基于Redis&MySQL接口幂等性设计 欲把相思说似谁,浅情人不知。 1、幂等 幂等性即多次调用接口或方法不会改变业务状态,可以保证重复调用的结果和单次调用的结果一致。 2、幂等使用场景 前端重复提交 用户注册、创建商品、提交订单、转账、支付等操作,前端都会提交一些数据给后台服务,后台需要根据用户 阅读全文
摘要:
网关常见问题 侯门一入深似海,从此萧郎是路人 1、什么是网关 总而言之,网关就是统一入口、鉴权校验、动态路由和过滤封装。 2、为什么需要网关 微服务架构下,单体应用被切割成多个微服务,如果将所有的微服务直接对外暴露,会出现安全方面的各种问题,且内外耦合严重。 Gateway 网关架构可以细到为每一个 阅读全文
摘要:
Spring Boot常见问题 昔日龌龊不足夸,今朝放荡思无涯。 1、什么是 Spring Boot? Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案。 主要是简化了使用Spring 的难度,简省了繁重的配置,提供了各种启动器,使开发者能快速上手。 阅读全文
摘要:
Redis 常见问题 落叶他乡树,寒灯独夜人。 一、 什么是Redis? Redis 是一个使用 C 语言写成的,开源的高性能key-value非关系缓存数据库; Redis的数据都基于缓存的,所以很快,每秒可以处理超过 10万次读写操作; Redis也可以实现数据写入磁盘中,保证了数据的安全不丢失 阅读全文
摘要:
RabbitMQ 常见问题 昔我往矣,杨柳依依。今我来思,雨雪霏霏。 1、什么是RabbitMQ? RabbitMQ是一款开源的、Erlang编写的消息中间件;最大的特点就是消费并不需要确保提供方存在,实现了服务之间的高度解耦,可以用它来:解耦、异步、削峰。 2、MQ的优点 异步处理 - 相比于传统 阅读全文
摘要:
Kafka 常见问题 一年将尽夜,万里未归人。 1、Kafka 简介 Apache Kafka是一个分布式发布 - 订阅消息系统和一个强大的队列, 可以处理大量的数据, 并使您能够将消息从一个端点传递到另一个端点。 Kafka适合离线和在线消息消费,Kafka消息保留在磁盘上, 并在群集内复制以防止 阅读全文
摘要:
ElasticSearch 常见问题 丈夫有泪不轻弹,只因未到伤心处。 1、说说 es 的一些调优手段。 仅索引层面调优手段: 1.1、设计阶段调优 (1)根据业务增量需求,采取基于日期模板创建索引,通过 roll over API 滚动索引; (2)使用别名进行索引管理; (3)每天凌晨定时对索引 阅读全文