随笔分类 -  读书笔记

摘要:RabbitMQ简介 生产者 首先与rabbitmq服务器建立一个连接,然后在这个连接的基础上创建一个信道(Channel), 之后建立一个交换器(Exchange),和一个队列(Queue),并通过路由键进行绑定,然后发送一条信息,然后关闭连接 public class RabbitProduce 阅读全文
posted @ 2021-01-27 18:19 余***龙 阅读(131) 评论(0) 推荐(0)
摘要:mybatis主要工作 将包含 if等标签的复杂数据库操作语句解析为纯粹的 SQL语句。 将数据库操作节点和映射接口中的抽象方法进行绑定,在抽象方法被调用时执行数据库操作。 将输入参数对象转化为数据库操作语句中的参数。 将数据库操作语句的返回结果转化为对象。 在初始化阶段,MyBatis 主要进行了 阅读全文
posted @ 2021-01-26 18:22 余***龙 阅读(81) 评论(0) 推荐(0)
摘要:秒杀的主要问题是热点数据的大并发读/写操作 尽管我们可以通过分布式缓存来提升系统的QPS,但是缓存系统的单点容量还是存在上限的,一旦超过临界水位,分布式缓存容易被瞬间击穿。 而热点数据的大并发写操作,势必会下潜至数据库,那么这就会引起大量的线程相互竞争InnoDB的行锁,并发越大时,等待的线程就越多 阅读全文
posted @ 2021-01-26 10:18 余***龙 阅读(574) 评论(0) 推荐(0)
摘要:JMH是Java Micro Benchmark Harness的简写,是专门用于代码微基准测试的工具集 用JMH进行微基准测试 引入依赖 ## 简单测试ArrayList和LinkedList @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(Tim 阅读全文
posted @ 2021-01-25 14:30 余***龙 阅读(229) 评论(0) 推荐(0)
摘要:并发级别: 阻塞、无饥饿、无障碍、无锁、无等待 阻塞: 一个线程是阻塞的,那么在其他线程释放资源之前,当前线程无法继续执行 当我们使用synchronized关键字或者重入锁时,我们得到的就是阻塞的线程 无饥饿: 对于非公平锁来说,系统允许高优先级的线程插队。这样有可能导致低优先级线程产生饥饿。 但 阅读全文
posted @ 2021-01-19 15:00 余***龙 阅读(167) 评论(0) 推荐(0)
摘要:第一章 单一职责原则 单一职责原则:要求一个接口或类只有一个原因引起变化,也就是一个接口或类只有一个职责,它就负责一件事情 完美的设计: 一个类实现了两个接口,把两个职责融合在一个类中。 不好的设计: 好的设计: 接口一定要做到单一职责,类的设计尽量做到只有一个原因引起变化 第二章 里氏替换原则 如 阅读全文
posted @ 2021-01-13 13:01 余***龙 阅读(151) 评论(0) 推荐(0)
摘要:外网DNS应该用于全局负载均衡进行流量调度,将用户费配到离他最近的服务器上以提升体验 为了提升吞吐量,一般会在DNS和nginx之间引入接入层,如LVS,F5做四层负载均衡 负载轮询算法 TCP心跳检查 HTTP心跳检查 Consul 动态注册upstream到Nginx上 限流算法 令牌桶算法 u 阅读全文
posted @ 2021-01-12 20:32 余***龙 阅读(84) 评论(0) 推荐(0)
摘要:service是分布式集群架构的核心 每个服务进程都有一个独立的EndPoint(IP+PORT)访问点,k8s能够让我们通过虚拟ip+端口连接到指定的service上 每个服务进程包装到相应的POD中,使其成为POd中运行的一个容器 Master Node Pod 阅读全文
posted @ 2020-12-24 20:51 余***龙 阅读(105) 评论(0) 推荐(0)
摘要:mysqld_safe mysqld_safe是一个启动脚本,它会间接的调用mysqld,而且还顺便启动了另外一个监控进程,这个监控进程在服务器进程挂了的时候,可以帮助重启 它。另外,使用mysqld_safe启动服务器程序时,它会将服务器程序的出错信息和其他诊断信息重定向到某个文件中,产生出错日志 阅读全文
posted @ 2020-12-17 14:48 余***龙 阅读(966) 评论(0) 推荐(0)
摘要:系统默认表 mysql远程连接方法: mysql -u root -p 123456 -P 3306 -h 192.168.20.6 用户权限:分为root和其他用户,root用户要避免web连接 query cache:生产中建议关闭,因为只缓存静态数据,如果数据经常读写作用不大 SHOW VAR 阅读全文
posted @ 2020-12-14 08:50 余***龙 阅读(85) 评论(0) 推荐(0)
摘要:开始分析beans源码 XmlBeanFactory继承自DefaultListableBeanFactory, 而DefaultListableBeanFactory是整个bean加载的核心部分, 是Spring注册及加载bean的默认实现, 而对于XmlBeanFactory与DefaultLi 阅读全文
posted @ 2020-12-09 17:50 余***龙 阅读(78) 评论(0) 推荐(0)
摘要:第一章 springboot的依赖和自动配置 spring-boot-starter-web引入了下面的包 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot- 阅读全文
posted @ 2020-12-07 08:11 余***龙 阅读(169) 评论(0) 推荐(0)
摘要:两段提交协议 三段提交协议 阅读全文
posted @ 2020-12-03 19:50 余***龙 阅读(73) 评论(0) 推荐(0)
摘要:第一章 初探java虚拟机 系统虚拟机: Visual Box Vmware 程序虚拟机: JVM 类加载子系统: 负责从文件系统或者网络加载Class信息,加载的类信息放在了方法区,方法区还会存一些运行时的常量信息,包括字符串常量和数字常量 java堆: 虚拟机启动时建立,是java程序最主要的工 阅读全文
posted @ 2020-12-03 19:23 余***龙 阅读(159) 评论(0) 推荐(0)
摘要:第六章 CompletionService的使用 接口CompletionService的功能是以异步的方式一边生产新的任务,一边处理已完成任务的结果,这样可以将执行任务与处理任务分离开来进行处理。使用submit执行任务,使用take取得已完成的任务,并按照完成这些任务的时间顺序处理它们的结果。 阅读全文
posted @ 2020-12-01 18:31 余***龙 阅读(91) 评论(0) 推荐(0)
摘要:zookeeper的基本概念和基础 使⽤ZooKeeper来设计应⽤时,最好将应⽤数据和协同数据独⽴开。⽐如,⽹络邮箱服务的⽤户对⾃⼰邮箱中的内容感兴趣,但是并不关⼼由哪台服务器来处理特定邮箱的请求。在这个例⼦中,邮箱内容就是应⽤数据,⽽从邮箱到某⼀台邮箱服务器之间的映射关系就是协同数据(或称元数据 阅读全文
posted @ 2020-12-01 10:16 余***龙 阅读(134) 评论(0) 推荐(0)
摘要:Semaphore的使用 单词Semaphore[' seməf 😦r)]的中文含义是信号、信号系统。此类的主要作用就是限制线程并发的数量,如果不限制线程并发的数量,则CPU的资源很快就被耗尽,每个线程执行的任务是相当缓慢,因为CPU要把时间片分配给不同的线程对象,而且上下文切换也要耗时,最终造成 阅读全文
posted @ 2020-11-29 16:31 余***龙 阅读(101) 评论(0) 推荐(0)
摘要:docker架构图 P101 阅读全文
posted @ 2020-11-20 08:49 余***龙 阅读(77) 评论(0) 推荐(0)