zhangxingr' blog

世间文字八万个,唯有情字最杀人


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 公益

  • 搜索

ShutdownHook Java优雅地停止服务

发表于 2018-06-30 | 分类于 Kafka | 热度: ℃
字数统计: 605 | 阅读时长 ≈ 3

ShutdownHook是啥东西?


在Java程序中可以通过添加关闭钩子,实现在程序退出时关闭资源、平滑退出的功能。 使用Runtime.addShutdownHook(Thread hook)方法,可以注册一个JVM关闭的钩子,这个钩子可以在以下几种场景被调用: 1. 程序正常退出 2. 使用System.exit() 3. 终端使用Ctrl+C触发的中断 4. 系统关闭 5. 使用Kill pid命令干掉进程

shutdownHook是一种特殊的结构,它允许开发人员插入JVM关闭时执行的一段代码。这种情况在我们需要做特殊清理操作的情况下很有用

怎么使用?


看下Runtime中的方法

阅读全文 »

hexo+github+next搭建个人博客

发表于 2018-06-28 | 分类于 Share | 热度: ℃
字数统计: 227 | 阅读时长 ≈ 1

前言

本来一直想写一篇关于hexo+github搭建blog的入门文章,自己记录一下也可以给别人瞅瞅学习学习。但是呢,一来文笔确实不好,二来我自己都是到处找别人的文章来学习借鉴的,实在不敢掠美,所以我就推荐一下我入门的文章好啦(之前都收藏了哒)

阅读全文 »

Java通过HttpClient的请求封装

发表于 2018-06-26 | 分类于 Kafka | 热度: ℃
字数统计: 1,109 | 阅读时长 ≈ 6

背景

昨天在公司做项目的时候要在Java代码里面调用网管系统的Restful接口返回Json数据,然后简单的看了一下关于Java中发起Http或者Https请求的几种方式,总结一下。

方法

目前JAVA实现HTTP请求的方法用的最多的有两种:一种是通过HTTPClient这种第三方的开源框架去实现。HTTPClient对HTTP的封装性比较不错,通过它基本上能够满足我们大部分的需求,HttpClient3.1 是 org.apache.commons.httpclient下操作远程 url的工具包,虽然已不再更新,但实现工作中使用httpClient3.1的代码还是很多,HttpClient4.5是org.apache.http.client下操作远程 url的工具包,最新的;另一种则是通过HttpURLConnection去实现,HttpURLConnection是JAVA的标准类,是JAVA比较原生的一种实现方式。

我采用的是org.apache.http.client这个包来做Http请求。然后最开始分别实现了Get,Post,Put,Delete增删改查四种请求方式,后来觉得不妥改成了一个通用的方法。

阅读全文 »

kafka consumer api连接kafka server

发表于 2018-06-26 | 分类于 Kafka | 热度: ℃
字数统计: 1,441 | 阅读时长 ≈ 6

背景


最近在公司老大要做一个kafka consumer接收kafka server的message,其实很简单的一个功能,用kafka都有些大材小用了,一般的JMS都可以了。

之前没有用过kafka,所以去简单了解了一下。

kafka是什么东西?


Apache Kafka® is a distributed streaming platform

kafka是一个分布式的流媒体平台

kafka的主要功能


  1. 发布和订阅消息(流),在这方面,它类似于一个消息队列或企业消息系统,所以kafka被归于消息队列框架。
  2. 以容错的方式存储消息(流)。
  3. 可以在消息发布的时候进行处理。

kafka核心API


  • 生产者Producer API
  • 消费者Consumer API
  • 流处理Streams API
  • Connector API
阅读全文 »

关于Arrays.asList生成的list增删数据的问题

发表于 2017-02-28 | 分类于 Java | 热度: ℃
字数统计: 230 | 阅读时长 ≈ 1

异常

1
2
3
Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.AbstractList.add(AbstractList.java:148)
at com.design.test.Main.main(Main.java:15)

代码

1
2
3
4
5
6
public static void main(String[] args) {
String[] array = new String[]{"1", "2"};
List<String> list = Arrays.asList(array);
list.add(0, "0");
System.out.println(list);
}

原因

出现这个异常的原因是通过Arrays.asList转换数组生成的ArrayList和java.util.ArrayList不一样,它是定义在Arrays里面,和java.util.ArrayList都是继承并实现了AbstractList抽象类。

阅读全文 »
1…34
zhangxingrui

zhangxingrui

Java、通信、生活

35 日志
17 分类
37 标签
GitHub
Links
  • Title
© 2019 zhangxingrui
本站访客数:
|
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.4