Java
文章平均质量分 59
Java
进击的官工
这个作者很懒,什么都没留下…
展开
-
10分钟学会消息队列Kafka
Kafka初识 Kafka创建配置Kafka创建发送消息的生产者创建消费消息的消费者初识 KafkaKafka是一个分布式流式处理平台。这到底是什么意思呢?流平台具有三个关键功能:1.消息队列:发布和订阅消息流,这个功能类似于消息队列,这也是Kafka也被归类为消息队列的原因。2.容错的持久方式存储记录消息流:Kafka会把消息持久化到磁盘,有效避免了消息丢失的风险·。3.流式处理平台: 在消息发布的时候进行处理,Kafka 提供了一个完整的流式处理类库。Kafka主要有两大应用场景:1.消原创 2021-04-14 20:37:23 · 229 阅读 · 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 · 132 阅读 · 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 · 221 阅读 · 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 · 119 阅读 · 0 评论 -
jvm调优
jvm调优原创 2021-04-10 09:07:37 · 104 阅读 · 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 · 121 阅读 · 0 评论 -
如何解决高并发,秒杀问题
如何解决高并发,秒杀问题1.尽量将请求拦截在系统上游(越上游越好);2.读多写少的常用多使用缓存(缓存抗读压力);浏览器和APP:做限速站点层:按照uid做限速,做页面缓存服务层:按照业务做写请求队列控制流量,做数据缓存数据层:读写分离并且:结合业务做优化...原创 2021-04-09 20:15:48 · 70 阅读 · 0 评论 -
数据库索引
数据库索引是怎样提升性能的?使用索引的全部意义就是通过缩小一张表中需要查询的记录/行的数目来加快搜索的速度。什么是索引?要记住的关键点是索引包含一个表中列的值,并且这些值存储在一个数据结构中。请记住记住这一点:索引是一种数据结构 。索引是怎么提升性能的?因为索引基本上是用来存储列值的数据结构,这使查找这些列值更加快速。如果索引使用最常用的数据结构-B-Tree-那么其中的数据是有序的,有序的列值可以极大的提升性能。使用数据库索引会有什么代价?使用数据库索引有什么缺点呢?其一,索引会占用空间 -原创 2021-04-09 20:18:41 · 59 阅读 · 0 评论 -
jvm系列
jvm系列类加载机制java类加载机制1.什么是类的加载2.类的生命周期3.类加载器4.类的加载5.双亲委派模型java类加载机制1.什么是类的加载类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。 比喻:胃2.类的生命周期类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。加载:查找并加载类的二进制数据验证:确保被加载的类的正确性准备:为类的静态变量分配内存,并将其初始原创 2021-04-10 09:09:04 · 154 阅读 · 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 · 74 阅读 · 0 评论 -
关系型数据库与NoSQL数据库的对比
原创不易,欢迎点赞分享原创 2021-04-09 20:19:38 · 84 阅读 · 0 评论