
Java
文章平均质量分 59
Java
进击的官工
这个作者很懒,什么都没留下…
展开
-
10分钟学会消息队列Kafka
Kafka初识 Kafka创建配置Kafka创建发送消息的生产者创建消费消息的消费者 初识 Kafka Kafka是一个分布式流式处理平台。这到底是什么意思呢? 流平台具有三个关键功能: 1.消息队列:发布和订阅消息流,这个功能类似于消息队列,这也是Kafka也被归类为消息队列的原因。 2.容错的持久方式存储记录消息流:Kafka会把消息持久化到磁盘,有效避免了消息丢失的风险·。 3.流式处理平台: 在消息发布的时候进行处理,Kafka 提供了一个完整的流式处理类库。 Kafka主要有两大应用场景: 1.消原创 2021-04-14 20:37:23 · 269 阅读 · 0 评论 -
分表分库
数据库瓶颈 1、IO瓶颈 第一种:磁盘读IO瓶颈,热点数据太多,数据库缓存放不下,每次查询时会产生大量的IO,降低查询速度 -> 分库和垂直分表。 第二种:网络IO瓶颈,请求的数据太多,网络带宽不够 -> 分库。 2、CPU瓶颈 第一种:SQL问题,如SQL中包含join,group by,order by,非索引字段条件查询等,增加CPU运算的操作 -> SQL优化,建立合适的索引,在业务Service层进行业务计算。 第二种:单表数据量太大,查询时扫描的行太多,SQL效率低,CPU率先原创 2021-04-10 14:35:38 · 183 阅读 · 0 评论 -
优化sql
sql优化1.设计表2.索引3.合适的数据类型4.合适的索引列5.建议 1.设计表 1.表字段避免null值出现,null值很难查询优化且占用额外的索引空间,推荐默认数字0代替null。 2.尽量使用INT而非BIGINT,如果非负则加上UNSIGNED(这样数值容量会扩大一倍),当然能使用TINYINT、SMALLINT、MEDIUM_INT更好。 3.使用枚举或整数代替字符串类型。 4.尽量使用TIMESTAMP而非DATETIME。 5.单表不要有太多字段,建议在20以内。 6.用整型来存IP。 2.原创 2021-04-09 10:02:59 · 274 阅读 · 0 评论 -
《Java8实战》笔记上篇
Java8实战笔记上篇1 小结2.5 小结3.10 小结4.5 小结5.8 小结6.7 小结7.2.2 使用分支/合并框架的最佳做法7.4 小结8.5 小结9.4.1 解决问题的三条规则9.5 小结10.5 小结 1 小结 没有共享的可变数据,将方法和函数即代码传递给其他方法的能力)是我们平常所说的函数式编程范式的基石. 2.5 小结 以下是你应从本章中学到的关键概念。 行为参数化,就是一个方法接受多个不同的行为作为参数,并在内部使用它们,完成不 同行为的能力。 行为参数化可让代码更好地适应不断变化原创 2021-04-09 20:13:55 · 160 阅读 · 0 评论 -
jvm调优
jvm调优原创 2021-04-10 09:07:37 · 139 阅读 · 0 评论 -
Spring
Spring最根本的使命:简化Java开发。 为了降低Java开发的复杂性,Spring采取了以下4种关键策略: 1.基于POJO的轻量级和最小侵入性编程; 2.通过依赖注入和面向接口实现松耦合; 3.基于切面和惯例进行声明式编程; 4.通过切面和模板减少样板式代码。 Spring容器并不是只有一个。Spring自带了多个容器实现,可以归为两种不同的类型。bean工厂(由org.springframework. beans.factory.eanFactory接口定义)是最简单的容器,提供基本的DI支持。应原创 2021-04-09 18:21:47 · 163 阅读 · 0 评论 -
如何解决高并发,秒杀问题
如何解决高并发,秒杀问题 1.尽量将请求拦截在系统上游(越上游越好); 2.读多写少的常用多使用缓存(缓存抗读压力); 浏览器和APP:做限速 站点层:按照uid做限速,做页面缓存 服务层:按照业务做写请求队列控制流量,做数据缓存 数据层:读写分离 并且:结合业务做优化 ...原创 2021-04-09 20:15:48 · 104 阅读 · 0 评论 -
数据库索引
数据库索引是怎样提升性能的? 使用索引的全部意义就是通过缩小一张表中需要查询的记录/行的数目来加快搜索的速度。 什么是索引? 要记住的关键点是索引包含一个表中列的值,并且这些值存储在一个数据结构中。请记住记住这一点:索引是一种数据结构 。 索引是怎么提升性能的? 因为索引基本上是用来存储列值的数据结构,这使查找这些列值更加快速。如果索引使用最常用的数据结构-B-Tree-那么其中的数据是有序的,有序的列值可以极大的提升性能。 使用数据库索引会有什么代价? 使用数据库索引有什么缺点呢?其一,索引会占用空间 -原创 2021-04-09 20:18:41 · 91 阅读 · 0 评论 -
jvm系列
jvm系列类加载机制java类加载机制1.什么是类的加载2.类的生命周期3.类加载器4.类的加载5.双亲委派模型 java类加载机制 1.什么是类的加载 类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。 比喻:胃 2.类的生命周期 类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。 加载:查找并加载类的二进制数据 验证:确保被加载的类的正确性 准备:为类的静态变量分配内存,并将其初始原创 2021-04-10 09:09:04 · 331 阅读 · 0 评论 -
《Java8实战》笔记下篇
Java8实战笔记下篇11.6 小结12.4 小结13.4 小结14.6 小结15.4 小结16.1.5 默认方法 链接: [Java8实战] (链接:https://pan.baidu.com/s/1o2qqBbmjQ_qbXti6qcYv5g 提取码:java ). 11.6 小结 这一章中,你学到的内容如下。 执行比较耗时的操作时,尤其是那些依赖一个或多个远程服务的操作,使用异步任务可以改善程序的性能,加快程序的响应速度。 你应该尽可能地为客户提供异步API。使用CompletableFutu原创 2021-04-09 20:49:01 · 113 阅读 · 0 评论 -
关系型数据库与NoSQL数据库的对比
原创不易,欢迎点赞分享原创 2021-04-09 20:19:38 · 120 阅读 · 0 评论