自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 Java 实现基于Redis的分布式可重入锁

Java 实现基于Redis的分布式可重入锁之前在 Java实现基于的Redis的分布式锁 这篇文章中,已经实现了加锁的逻辑,但是有个缺点,就是不可重入,任何重入锁的尝试都会导致死锁的发生,想了一下,这个问题可以解决。  Thinking 如何实现可重入? 首先锁信息(指redis中lockKey关联的value值) 必须得设计的能负

2016-09-28 21:48:52 5726 1

原创 Java实现基于Redis的分布式锁

Java实现基于Redis的分布式锁 单JVM内同步好办, 直接用JDK提供的锁就可以了,但是跨进程同步靠这个肯定是不可能的,这种情况下肯定要借助第三方,我这里实现用Redis,当然还有很多其他的实现方式。其实基于Redis实现的原理还算比较简单的,在看代码之前建议大家先去这里看看原理,我就不翻译了,免得变味了,看懂了之后看代码应该就容易理解了。 时间统一问题:各个客户端加

2016-09-27 15:23:39 844

原创 Linux下用expect实现ssh自动登录并执行脚本

Linux下用expect实现ssh自动登录并执行脚本 expect不是系统自带的,需要安装:        yum install expect装完后才可执行以下脚本。  ssh密码认证的登陆脚本:Shell代码 #!/bin/bash    # 匹配提示符  CMD_PROMPT="\](\$|#)"  

2016-09-27 15:19:18 11856 1

原创 Linux SSH公钥认证配置

Linux SSH公钥认证配置 ssh支持两种认证方式:密码认证和公钥认证。若没有配置公钥认证,则每次ssh连接时都需要输入密码,不仅麻烦而且还不安全,因此推荐配置公钥认证,只需在配置时输入一次密码,之后ssh连接就无需输入密码了。 公钥认证配置只需在ssh客户端机子上配就可以: 1.在客户端机子上生成公钥id_rsa.pub和私钥id_rsa(默认存在当前用户主目录的.s

2016-09-27 15:16:42 5166

原创 WebSocket 协议

WebSocket 协议WebSocket protocol 是HTML5一种新的协议。它实现了浏览器与服务器全双工通信(full-duplex)。在这之前都是客户端主动请求服务端,一请求一应答,很多时候实现消息更新都是采用ajax轮询,有延迟,有了WebSocket双方都可以主动发给对端,实现真正的推送。  一、WebSocket Protocol Format(协议格式

2016-09-27 15:11:54 9522 1

WebSocket 协议

WebSocket 协议WebSocket protocol 是HTML5一种新的协议。它实现了浏览器与服务器全双工通信(full-duplex)。在这之前都是客户端主动请求服务端,一请求一应答,很多时候实现消息更新都是采用ajax轮询,有延迟,有了WebSocket双方都可以主动发给对端,实现真正的推送。  一、WebSocket Protocol Format(协议格式) ...

2016-09-30 16:46:34 179

Java 实现基于Redis的分布式可重入锁

Java 实现基于Redis的分布式可重入锁之前在 Java实现基于的Redis的分布式锁 这篇文章中,已经实现了加锁的逻辑,但是有个缺点,就是不可重入,任何重入锁的尝试都会导致死锁的发生,想了一下,这个问题可以解决。  Thinking 如何实现可重入? 首先锁信息(指redis中lockKey关联的value值) 必须得设计的能负载更多信息,之前non-ree...

2016-09-30 16:44:04 495

原创 Java实现基于Redis的分布式锁

Java实现基于Redis的分布式锁 单JVM内同步好办, 直接用JDK提供的锁就可以了,但是跨进程同步靠这个肯定是不可能的,这种情况下肯定要借助第三方,我这里实现用Redis,当然还有很多其他的实现方式。其实基于Redis实现的原理还算比较简单的,在看代码之前建议大家先去这里看看原理,我就不翻译了,免得变味了,看懂了之后看代码应该就容易理解了。 时间统一问题:各个客户端加

2016-09-27 19:56:55 2081

原创 Java NIO时间服务

Java NIO时间服务 这篇文章内容是另一篇文章《Java 实现基于Redis的分布式锁》的分支.  时间服务包括客户端和服务端, 服务端监听请求 ,若是时间请求,则返回当前服务器的时间, 各个客户端(分布式锁) 都从给服务器获取时间,已达到全局时间一致。 共三个类 TimeServer、 TimeClient和TimeClientExceptio

2016-09-27 15:40:16 592

原创 Socket Options

Socket Options以下出现中文的地方并不是对英文的翻译 1. SO_TIMEOUT    单位是毫秒,表示等待客戶端连接的最长时间。    Set a timeout on blocking Socket operations:         ServerSocket.accept();         SocketInputSt

2016-09-27 15:21:55 504

原创 Http协议格式

Http协议格式 一、请求报文         包括请求行、请求头和请求数据,具体格式如下:   请求方法:         GET: 请求指定的页面信息,并返回实体主体。        HEAD: 只请求页面的首部。        POST: 请求服务器接受所指定的文档作为对所标识的URI的新的从属实体。   

2016-09-27 15:20:47 333

原创 Java 获取当前JVM进程ID

Java 获取当前JVM进程ID public static final int jvmPid() { try { RuntimeMXBean runtime = ManagementFactory.getRuntimeMXBean(); Field jvm = runtime.getClass().getDeclaredField("jvm"); jvm.set

2016-09-27 15:14:25 4505

原创 Netty+WebSocket实现简单群聊

Netty+WebSocket实现简单群聊这两天看了下WebSocket的RFC文档,对WebSocket协议有了基本的认识,顺便写了篇博客做点笔记  WebSocket 协议。 例子说明:每个网页一个websocket连接,点发送消息后,消息会发送给除了自己之外的其它在线的websocket客户端,简单实现群聊 服务端采用Netty实现,Netty

2016-09-27 15:12:53 6160 2

Java 获取当前JVM进程ID

Java 获取当前JVM进程ID public static final int jvmPid() { try { RuntimeMXBean runtime = ManagementFactory.getRuntimeMXBean(); Field jvm = runtime.getClass().getDeclaredField("jvm"); jvm....

2016-09-12 21:30:13 705

Java NIO时间服务

Java NIO时间服务 这篇文章内容是另一篇文章《Java 实现基于Redis的分布式锁》的分支.  时间服务包括客户端和服务端, 服务端监听请求 ,若是时间请求,则返回当前服务器的时间, 各个客户端(分布式锁) 都从给服务器获取时间,已达到全局时间一致。 共三个类 TimeServer、 TimeClient和TimeClientException,下面是源码: ...

2016-09-10 12:57:59 98

Linux SSH公钥认证配置

Linux SSH公钥认证配置 ssh支持两种认证方式:密码认证和公钥认证。若没有配置公钥认证,则每次ssh连接时都需要输入密码,不仅麻烦而且还不安全,因此推荐配置公钥认证,只需在配置时输入一次密码,之后ssh连接就无需输入密码了。 公钥认证配置只需在ssh客户端机子上配就可以: 1.在客户端机子上生成公钥id_rsa.pub和私钥id_rsa(默认存在当前用户主目录的....

2016-09-07 11:54:33 687

原创 Linux下用expect实现ssh自动登录并执行脚本

Linux下用expect实现ssh自动登录并执行脚本 expect不是系统自带的,需要安装:        yum install expect装完后才可执行以下脚本。  ssh密码认证的登陆脚本:#!/bin/bash# 匹配提示符CMD_PROMPT="\](\$|#)"# 要执行的脚本script="/root/test.sh"...

2016-09-07 11:36:45 1749

原创 Java 原始数据类型

Java 原始数据类型Java共7种原始类型 类型占用字节默认值取值范围boolean4falsefalse,truebyte10-2^7 ~ 2^7-1short20-2^15 ~ 2^15-1int40-2^31 ~ 2^31-1long80-2^63 ~ 2^6...

2016-09-07 10:58:02 809

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除