日常笔记
文章平均质量分 74
NGC73
。。
展开
-
Https加密过程
Https加密过程原创 2022-09-01 17:48:07 · 1239 阅读 · 1 评论 -
数据库与redis缓存一致性问题
数据库与redis缓存一致性问题原创 2022-09-01 17:45:02 · 278 阅读 · 0 评论 -
代码分析sychronied和Mark Word的关系
锁状态升级过程为:无锁状态--> 偏向锁状态--->轻量级锁状态--->重量级锁状态原创 2022-08-03 10:48:22 · 321 阅读 · 0 评论 -
多线程模型下的生产者消费者模式
多线程模型下的生产者消费者模式原创 2022-06-01 16:13:09 · 215 阅读 · 0 评论 -
lambda表达式与流优化代码
lambda表达式与流优化代码1 代码应用示例java8以前对集合进行排序用得比较多的,比如需要按照某个集合的时间对集合进行排序Collections.sort(payList, new Comparator<ErpContractPay>() { @Override public int compare(ErpContractPay o1, ErpContractPay o2) { System.out.pr原创 2022-05-30 13:06:58 · 238 阅读 · 0 评论 -
建立高可用的数据库
数据库性能优化1、主从模式1.1、为什么要设置主从同步读写分离,减轻数据库负担。在开发工作中,有时候会遇见某个sql 语句需要锁表,导致暂时不能使用读的服务,这样就会影响现有业务,使用主从复制,让主库负责写,从库负责读,这样,即使主库出现了锁表的情景,通过读从库也可以保证业务的正常运作数据库实时备份。当系统中某个节点发生故障时,可以方便的故障切换(主从切换)。高可用随着系统中业务访问量的增大,如果是单机部署数据库,就会导致I/O访问频率过高。有了主从复制,增加多个数据存储节点,将负载分布在多个原创 2022-05-27 14:55:09 · 236 阅读 · 0 评论 -
JVisualVM初步使用
Jconsole: 为jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用。对垃圾回收算法有很详细的跟踪。JProfiler:商业软件,需要付费。功能强大。VisualVM:JDK自带,功能强大,与JProfiler类似。其能够监控线程,内存情况,查看方法的CPU时间和内存中的对 象,已被GC的对象,反向查看分配的堆栈等功能。原创 2022-05-26 21:33:02 · 4491 阅读 · 0 评论 -
一致性协议比较
常见的一致性协议 有二阶段提交(2PC)、三阶段提交(3PC)、Paxos、Raft等算法,在本文将介绍他们中的一部分。2PC2PC即Two-Phase Commit,二阶段提交。广泛应用在数据库领域,为了使得基于分布式架构的所有节点可以在进行事务处理时能够保持原子性和一致性。绝大部分关系型数据库,都是基于2PC完成分布式的事务处理。顾名思义,2PC分为两个阶段处理,阶段一:提交事务请求事务询问。协调者向所有参与者发送事务内容,询问是否可以执行提交操作,并开始等待各参与者进行响应;执行事务原创 2022-05-10 15:22:33 · 309 阅读 · 0 评论 -
并发编程---写入时复制COW
写入时复制(copy on write)作为使用频率很高的List和Set,JUC提供了相应的线程安全集合,就是Copy-On-Write。分别为CopyOnWriteArrayList和CopyOnWriteArraySet。1、应用场景Copy-On-Write并发容器用于读多写少的并发场景。比如Nacos的注册中心同步方式,用的是copyonwrite,就是复制一份副本,写入后直接替换。注册中心的实时性并没有那么高,所以使用cow来保证数据的一致性。Redis的COWRedis在原创 2022-04-16 13:32:39 · 936 阅读 · 0 评论 -
日常小习惯养成
1.日常小习惯—转换时间将前台传递过来的日期格式的字符串,自动转化为Date类型public class BaseController { protected final Logger logger = LoggerFactory.getLogger(this.getClass()); /** * 将前台传递过来的日期格式的字符串,自动转化为Date类型 */ @InitBinder public void initBinder(WebDataBind原创 2022-04-06 21:28:59 · 142 阅读 · 0 评论 -
@PostConstruct注解----解决非service层注入service的空指针问题
@PostConstruct注解----解决非service层注入service的空指针问题Java中该注解的说明:@PostConstruct该注解被用来修饰一个非静态的void()方法。被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器执行一次。PostConstruct在构造函数之后执行,init()方法之前执行。@PostConstruct注解 该注解的方法在整个Bean初始化中的执行顺序:Constructor(构造方法) -> @Auto原创 2022-03-30 16:02:49 · 1309 阅读 · 0 评论 -
定时任务注解@Scheduled
定时任务@Scheduling一、静态----基于注解(@Scheduled)实现定时任务@Component@Configuration //1.主要用于标记配置类,兼备Component的效果。@EnableScheduling // 2.开启定时任务public class SaticScheduleTask { //3.添加定时任务 @Scheduled(cron = "0/5 * * * * ?") //或直接指定时间间隔,例如:5秒 //@原创 2021-12-23 15:42:10 · 4733 阅读 · 1 评论 -
redis笔记(待修改)
0.序章Redis是一个内存数据库(或者说内存数据结构)服务器,可以存储5种不同键值对的数据。热点数据,共享session,为的是服务无状态0.1 什么时候使用Redis缓存0.1.1 什么数据可以放缓存不需要实时更新但是又极其消耗数据库的数据。比如网站上商品销售排行榜,这种数据一天统计一次就可以了,用户不会关注其是否是实时的。需要实时更新,但是更新频率不高的数据。比如一个用户的订单列表,他肯定希望能够实时看到自己下的订单,但是大部分用户不会频繁下单。在某个时刻访问量极大而且更新也原创 2021-12-23 15:40:15 · 743 阅读 · 0 评论 -
Netty学习
Netty深入浅出第一章 Netty——异步和事件驱动1、引入——NIO和IO哪家强1、1 传统阻塞IO连接方式及存在的问题[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-65z9zhuQ-1640245095470)(C:\Users\ASVS\AppData\Roaming\Typora\typora-user-images\image-20210730171911124.png)] 阻塞IO,只能同时处理一个连接,要管理多个并发客户端,需要为每个新的客户端原创 2021-12-23 15:37:47 · 442 阅读 · 0 评论 -
MQ学习深入浅出
0、MQ概述0.1 什么是消息队列(消息中间件)消息队列是 应用程序 和 应用程序之间 的通信方法。即消息队列, RabbitMQ是由erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开发中应用非常广泛。rabbitmq的基本结构Broker:消息队列服务进程,此进程包括两个部分:Exchange和Queue。Exchange:消息队列交换机,按一定的规则将消息路由转发到原创 2021-12-23 15:37:11 · 1555 阅读 · 0 评论 -
数据库刷题
第一章 sql刷题1.如何查找第2高的数据?1) limit字句的用法2) ifnull的用法题目:编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary) 。IdSalary110022003300例如上述 Employee 表,SQL查询应该返回 200 作为第二高的薪水。如果不存在第二高的薪水,那么查询应返回 null。SecondHighestSalary200答案:select ifNul原创 2021-12-23 15:35:43 · 167 阅读 · 0 评论 -
设计模式相关内容介绍
1、设计模式相关内容介绍1.1、 设计模式概述创建型模式--------买建筑材料用于描述------怎样创建对象,它的主要特点是----------将对象的创建与使用分离,这样可以降低系统的耦合度,使用者不需要关心对象的创建细节。单例、原型、工厂、抽象工厂、建造者模式结构型模式--------用建筑材料搭房用于描述如何将类和对象按照某种布局组成更大的结构,代理、适配器、桥接、装饰、外观、享元、组合行为型模式用于描述类和对象之间怎样相互协作共同完成单个对象无法单独完成的任务模原创 2021-12-23 15:34:39 · 421 阅读 · 0 评论 -
war包部署问题
war包部署问题使用war包部署使用外置Servlet容器,相比于jar包运行项目需要配置一些额外的信息。步骤:1 必须创建war项目,需要建好web项目的目录结构2 pom文件,package应该改为war,并且嵌入式Tomcat依赖scope指定provided3 编写SpringBootServletInitializer类子类,并重写configure方法@SpringBootApplicationpublic class FileuploadApplication extends Sp原创 2021-12-23 15:33:15 · 314 阅读 · 0 评论