摘要: 一、Excel的写操作 在Excel为我们提供了两种文件类型.XLS和.XLSX文件,这两种文件的读取方式都是一致的.xls文件使用的是HSSF对象,.xlsx使用的是XSSF对象,因为两种方式是一样的,所以我们来看一个HSSF读取的例子 1.导入maven <dependency> <groupI 阅读全文
posted @ 2020-02-08 18:43 想去天空的猫 阅读(634) 评论(0) 推荐(0) 编辑
摘要: 一、启动kafka 启动kafka之前一定要启动zookeeper,因为要使用kafka必须要使用zookeeper。 windows环境下启动,直接使用kafka自带的zookeeper: E:\kafka_2.12-2.4.0\bin\windows zookeeper-server-start 阅读全文
posted @ 2020-01-30 19:22 想去天空的猫 阅读(13317) 评论(1) 推荐(2) 编辑
摘要: 一、kafka的基础架构 kafka是一个分布式的基于发布/订阅模式的消息队列,主要应用于大数据实时处理领域。 kafka的具体架构如图: 学习kafka的架构前,我们需要了解图中的每个角色: (1)consumer group 消费者组:这是kafka消息队列特有的角色,它是一堆消费组组合成的。消 阅读全文
posted @ 2020-01-28 20:30 想去天空的猫 阅读(695) 评论(0) 推荐(0) 编辑
摘要: 一、Redis的事务 Redis的事务与mysql中的事务是不一样的,Redis的事务主要是用来处理线程安全性问题。它的定义为:Redis事务是一个单独的隔离操作,事务中所有的命令都会序列化,按顺序地执行。事务在执行过程中,不会被其他客户端命令打断。 Redis执行命令是一个队列,它会把一堆命令都放 阅读全文
posted @ 2020-01-26 13:23 想去天空的猫 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 在平时开发过程中写sql时,我们通常都不太关心sql的性能,只有能给查出来数据,sql的执行速度不是太慢就不会去管它了。但是开发时期的数据量往往都不是太大,很多性能问题只有在生产环境中才会发现,如:数据过多、sql关联了太多的表,使用了太多的join、或者建立了索引,但是索引失效的问题。所以要解决这 阅读全文
posted @ 2020-01-19 16:26 想去天空的猫 阅读(193) 评论(0) 推荐(0) 编辑
摘要: ELK6.X版本对log4j2日志系统功能进行了一次整合,它和filebeat的实现方式不同,filebeat是采取读日志文件的方式进行同步到elasticsearch,相当于是读文件同步。现在有了log4j2,我们可以通过socket的方式以log4j2的日志项目作为客户端,发送生成的日志信息到L 阅读全文
posted @ 2019-12-30 14:58 想去天空的猫 阅读(1185) 评论(0) 推荐(0) 编辑
摘要: 在学完netty基础部分后,你可能很难想到它的使用场景,本章就介绍一个netty的使用场景--websocket协议的应用。 WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSoc 阅读全文
posted @ 2019-12-24 16:30 想去天空的猫 阅读(8817) 评论(2) 推荐(0) 编辑
摘要: 现在大多数项目都是基于spring boot进行开发,所以我们以spring boot作为开发框架来使用netty。使用spring boot的一个好处就是能给将netty的业务拆分出来,并通过spring cloud整合到项目中。 我们以一个简单的客户端发送消息到服务的场景编写一个实例。 一、服务 阅读全文
posted @ 2019-12-03 20:18 想去天空的猫 阅读(9425) 评论(0) 推荐(0) 编辑
摘要: 一、同步阻塞IO:blocking IO(BIO) 1.过程分析: 当进程进行系统调用时,内核就会去准备数据,当数据准备好后就复制数据到内核缓冲器,复制完成后将数据拷贝到用户进程内存,整个过程都是阻塞的。 2.特点: 优点:能及时响应数据 缺点:因为整个过程都是阻塞的,所以高并发下性能非常差 二、同 阅读全文
posted @ 2019-11-17 20:14 想去天空的猫 阅读(454) 评论(0) 推荐(0) 编辑
摘要: 一、什么是阻塞、非阻塞、同步、异步 我们以A线程调用B线程的过程例子来讲解这四个概念 在一个程序里,A调用B了,此时如果是 同步: A必须等待B返回结果后,才能继续执行,但是在这期间A会一直监控B的返回状态。 异步: A无需等待B的返回结果,当B执行完成后,会通知A来调用。 阻塞: A一直等待B返回 阅读全文
posted @ 2019-11-16 12:00 想去天空的猫 阅读(282) 评论(0) 推荐(0) 编辑