kafka(三)—Kafka的Java代码示例和配置说明

2018-08-04
阅读 17 分钟
9.7k
KafkaProducer(org.apache.kafka.clients.producer.KafkaProducer)是一个用于向kafka集群发送数据的客户端。producer是线程安全的,多个线程可以共享同一个 producer实例,而且这通常比在多个线程中每个线程创建一个实例速度要快些。参考KafkaProducer官方文档

kafka(二)—Kafka 的安装和使用(Quickstart)

2018-08-04
阅读 5 分钟
2.7k
Kafka的配置在Kafka的home目录下,vim config/server.properties命令,最主要的是设置ZooKeeper连接的地址和接口:zookeeper.connect=localhost:2181

kafka(一)—基本概念

2018-08-04
阅读 7 分钟
3.6k
Kafka是用scala语言编写,最初由Linkedin公司开发,后贡献给了Apache基金会并成为顶级开源项目。是一个分布式、支持分区的(partition)、多副本的(replication),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、st...

ThreadLocal

2018-07-21
阅读 8 分钟
3.1k
This class provides thread-local variables. These variables differ from their normal counterparts in that each thread that accesses one (via its get or set method) has its own, independently initialized copy of the variable. <tt>ThreadLocal</tt> instances are typically private static ...

Java中的四种引用类型:强引用、软引用、弱引用和虚引用

2018-06-13
阅读 10 分钟
13.3k
在Java中是由JVM负责内存的分配和回收,这是它的优点(简化编程者的工作,不需要像C语言那样去手动操作内存),但同时也是它的缺点(不够灵活,垃圾回收对于编程者来说是不可控的)。

并发编程—Volatile关键字

2018-06-10
阅读 4 分钟
2.1k
锁提供了两种主要特性:互斥(mutual exclusion) 和可见性(visibility)。互斥即一次只允许一个线程持有某个特定的锁,因此可以保证一次就只有一个线程在访问共享数据。可见性要复杂一些,它必须确保释放锁之前对共享数据做出的更改对于随后获得该锁的另一个线程是可见的。

并发编程—CAS(Compare And Swap)

2018-06-10
阅读 3 分钟
14.9k
锁是用来做并发最简单的方式,其代价也是最高的,Java在JDK1.5之前都是靠synchronized关键字来加锁。但是加锁机制会有如下几个问题:

并发编程—并发编程中的基础概念

2018-06-10
阅读 10 分钟
3.1k
存储器的顶层是CPU的寄存器。它们用与CPU相同的材料和工艺制成,其存取速度和CPU的运行速度一样快。寄存器是什么?CPU工作时需要从内存中取出指令并执行,但是通过访问内存得到指令和数据的时间要比执行花费的时间长得多,所以CPU都有一些用来保存关键变量和临时结果的寄存器。另外还有程序计数器、堆栈指针寄存器和程序...

Spring中@Async注解执行异步任务

2018-06-05
阅读 10 分钟
13.4k
在业务处理中,有些业务使用异步的方式更为合理。比如在某个业务逻辑中,把一些数据存入到redis缓存中,缓存只是一个辅助的功能,成功或者失败对主业务并不会产生根本影响,这个过程可以通过异步的方法去进行。

Executor框架(三)ScheduledExecutorService-和-BlockingQueue

2018-06-05
阅读 7 分钟
13k
ScheduledExecutorService是一个线程池,用来在指定延时之后执行或者以固定的频率周期性的执行提交的任务。它包含了4个方法。

Executor框架(二)Executors、ThreadPoolExecutor以及线程池执行任务的行为方式

2018-05-20
阅读 7 分钟
4.4k
ThreadPoolExecutor是Executor框架最重要的一个类,它即是真正意义上的线程池。该类的源码有两千多行,但大部分是注释说明,而且还有一些private/protected的方法,真正会用到的方法也并不太多。

Executor框架(一)Callable、Future、Executor和ExecutorService

2018-05-20
阅读 11 分钟
10.2k
Executor框架是指JDK 1.5中引入的一系列并发库中与Executor相关的功能类,包括Executor、Executors、ExecutorService、Future、Callable等。

iBatis和MyBatis在使用ResultMap对应关系时的区别

2018-05-17
阅读 2 分钟
5k
在使用iBatis和MyBatis的查询时,查询出来的数据通常会由一个ResultMap来接收。如果在sql语句中 SELECT 出来的字段和ResultMap中的column没有一一对应,是否会有影响呢?而且ResultMap通常会用到多个查询的sql中,这就是必须要考虑的一个问题。

网络(一)网络的分层

2018-05-07
阅读 3 分钟
9.1k
OSI参考模型(Open Systems Interconnection Reference Model,七层):模型过于理想化,未能在因特网上进行广泛推广。

Hadoop(三)Hadoop的伪分布式操作

2018-05-05
阅读 6 分钟
4.3k
本文已同步至个人博客liaosi's blog-Hadoop(三)Hadoop的伪分布式操作本文示例使用的VMWare虚拟机,Linux系统版本是CentOS 7_64位,Hadoop的版本是Hadoop 2.8.2,JDK版本是1.8,使用的账号是创建的hadoop账号(参考Hadoop(一)Hadoop的介绍和安装前准备)。安装Hadoop之前要保证系统已经安装了Java JDK,并配置好了Jav...

Hadoop(二)Hadoop的HelloWorld(单机模式下的安装和使用)

2018-05-05
阅读 6 分钟
3.7k
本文已同步至个人博客liaosi's blog-Hadoop(二)Hadoop的HelloWorld(单机模式下的安装和使用)本文示例使用的VMWare虚拟机,Linux系统版本是CentOS 7_64位,Hadoop的版本是Hadoop 2.8.2,JDK版本是1.8,使用的账号是创建的hadoop账号(参考Hadoop(一)Hadoop的介绍和安装前准备)。安装Hadoop之前要保证系统已经安装...

NIO — 缓冲区(Buffer)

2018-05-05
阅读 6 分钟
2.5k
Java NIO系统的两个基本概念:通道(Channel)和缓冲区(Buffer)。通道表示打开到 IO 设备的连接。若需要使用 NIO 系统,需要获取用于连接 IO 设备的通道以及用于容纳数据的缓冲区。然后操作缓冲区,对数据进行处理。可以类比铁路和火车,铁路就类似通道,火车就类似缓冲区。

SpringBoot(五)SpringBoot的单元测试

2018-05-04
阅读 14 分钟
41.9k
在开发工作中,通常写好代码后我们都会先自测一遍再交给测试部门,自测的方法有多种,也有多种测试工具,比如Postman、Jmeter等,这篇文章主要讲对于SpringBoot项目如何使用SpringBoot的单元测试,使用的SpringBoot版本是1.5.7。

MyBatis—insert语句返回主键和selectKey标签

2018-05-02
阅读 3 分钟
17k
往数据库中插入一条记录后,有时候我们需要这条记录的主键,用于后续的操作。如果在插入后再去查一次数据库,显然不够优雅和效率,MyBatis中已经有了insert后返回主键的功能,下面就主要讲几种不同情况的具体做法。

Hadoop(一)Hadoop的介绍和安装前准备

2018-04-30
阅读 2 分钟
3k
一.什么是Hadoop? Hadoop是Apache旗下的一套开源软件平台 Hadoop提供的功能:利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理 Hadoop的核心组件有: HDFS(分布式文件系统) Yarn(运算资源调度系统) MapReduce(分布式运算编程框架) 广义上来说,Hadoop通常是指一个更广泛的概念——HADOOP生态圈...

Linux服务器的SSH连接使用

2018-04-29
阅读 7 分钟
18.7k
简单说,SSH(Secure Shell)是一种网络协议,用于计算机之间的加密登录。如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。最早的时候,互联网通信都是明文通信(比如Telnet、FTP都是明文的方式),一旦被截获,内容就暴露无疑。1995年...

ZooKeeper(四)ZooKeeper的简单使用

2018-04-27
阅读 5 分钟
7.8k
2.创建一个新的 znode ,使用 create /zk myData 。这个命令创建了一个新的 znode 节点“ zk ”以及与它关联的字符串:

ZooKeeper(三)ZooKeeper的安装、配置和启动

2018-04-27
阅读 7 分钟
38.7k
解压到指定目录下D:\Software\zookeeper-3.4.8\,进入ZooKeeper的配置文件目录(D:\Software\zookeeper-3.4.8\conf),复制zoo_sample.cfg文件并重命名为zoo.cfg。主要修改一下ZooKeeper数据和日志储存位置,改成当前windows系统中的某个目录,具体配置文件如下:

ZooKeeper(二)ZooKeeper能做什么?

2018-04-27
阅读 4 分钟
7.1k
主要是作为分布式命名服务,通过调用zk的create node api,能够很容易创建一个全局唯一的path,这个path就可以作为一个名称。这些paht具有层级结构,非常便于理解和管理。

ZooKeeper(一)基础

2018-04-27
阅读 8 分钟
5k
由于一台服务器的处理能力是有限的,在大用户量和高并发的情况下,通常需要很多台服务器同时工作对外提供服务。这么多机器同时工作,怎么来管理这些服务器呢?比如某台服务器宕机了,就要确保请求不再发送到这台服务器;某个程序的配置修改了,多台服务器上的配置要作相应修改;或者多个服务必须按照特定的顺序执行;如...

使用Spring AOP和自定义注解进行参数检查

2018-04-18
阅读 6 分钟
12.1k
使用SpringMVC作为Controller层进行Web开发时,经常会需要对Controller中的方法进行参数检查。本来SpringMVC自带@Valid和@Validated两个注解可用来检查参数,但只能检查参数是bean的情况,对于参数是String、Long等Java自带类型的就不适用了(但是还可以用@NotNull、@NotBlank、@NotEmpty等),而且有时候这两个注解又突...

Spring Boot(四)Spring Boot 中的定时任务

2018-03-27
阅读 3 分钟
6.7k
一.SpringBoot中开启定时任务 在spirngboot中使用定时任务非常简单,只需要在启动类上增加一个@EnableScheduling注解即可。 {代码...} 二.定时任务的创建 对定时任务的类增加@Component注解,加入Spring的容器管理中 {代码...} 主要有三种定时的方式: 1.fixedRate该属性的含义是上一个调用开始后再次调用的延时(不用等...

Spring Boot(三)Spring Boot 和 MyBatis 整合

2018-03-27
阅读 6 分钟
23k
Spring Boot 整合 MyBatis有多种方式,本文使用的是starter的方式,还可以使用注解+bean配置的方式等。此外本文使用的是xml配置SQL而不是用注解。主要是 SQL 和业务代码应该隔离,方便和 DBA 校对 SQL,此外 XML 对较长的 SQL 比较清晰。

IDEA不编译src的java目录下的xml文件问题及解决

2018-03-27
阅读 2 分钟
24.5k
IDEA的maven项目中,默认源代码目录下(src/main/java目录)的xml等资源文件并不会在编译的时候一块打包进classes文件夹,而是直接舍弃掉。如果使用的是Eclipse,Eclipse的src目录下的xml等资源文件在编译的时候会自动打包进输出到classes文件夹。

Spring Boot(二)Spring Boot 的配置

2018-03-27
阅读 11 分钟
5.9k
Spring Boot 对于开发人员最大的好处在于可以对 Spring 应用进行自动配置。Spring Boot 会根据应用中声明的第三方依赖来自动配置 Spring 框架,而不需要进行显式的声明。比如当声明了对 HSQLDB 的依赖时,Spring Boot 会自动配置成使用 HSQLDB 进行数据库操作。Spring Boot 的自动配置功能是没有侵入性的,只是作为一种...