聊一聊 JAR 文件和 MANIFEST.MF

在 JAVA 语言这个圈子里面摸爬滚打,除了对于语言层面和框架层面的学习之外,有一些东西它一直存在,但是确没有对它们有足够的重视,因为都觉得它是理所当然,比如 JAR 是个什么?

提到 JAR,最先可能想到的就是依赖,比如 fastjson.jar ,它可以作为依赖在项目中来引用,但是不能通过 java -jar 来执行,这种就是非可执行的 JAR。另外一种,比如我们项目打包之后生成的 JAR (当然也可能是 war),我们可以通过 java -jar 来运行程序,我们把它称之为可执行的 JAR。

阅读更多

Linux 下安装 Mysql 数据库

更新,Centos 7 离线安装 Mysql 5.7

近期的一个项目,需要使用 MySQL 5.7,但是甲方所提供的机器是不能访问外网环境的,所以只能通过离线安装的方式来搞,这里大概记录一下,备忘。

选择 Linux - Generic -> Compressed TAR Archive:(mysql-5.7.18-linux-glibc2.12-x86_64.tar.gz),版本按需下载即可;下面是具体的安装过程。

阅读更多

Linux 下安装 Zookeeper

安装 Zookeeper

目前 Curator 有 2.x.x 和 3.x.x 两个系列的版本,支持不同版本的 Zookeeper。其中 Curator 2.x.x 兼容 Zookeeper的 3.4.x 和 3.5.x。而 Curator 3.x.x 只兼容 Zookeeper 3.5.x。

Curator 2.x.x - compatible with both ZooKeeper 3.4.x and ZooKeeper 3.5.x
Curator 3.x.x - compatible only with ZooKeeper 3.5.x and includes support for new

阅读更多

并发编程-关于 CAS 的几个问题

CAS 相关基础知识

CAS的全称是Compare And Swap ,即比较交换。CAS 中一般会设计到3个参数:

  • 内存值 V
  • 旧的预期值A
  • 要修改的新值B

当且仅当预期值 A 和内存值 V 相同时,将内存值V修改为 B,否则什么都不做。

这里关于 CPU 指令对于 CAS 的支持不深入研究,有兴趣的可以自行了解。

阅读更多

linux shell 编程小记

if 条件 OPTION

OPTION 解释
[-a file] 如果file存在则为真 ,也可以表示为 and: 条件与
if [ -z “condition1” -a -z “condition2” ]
[-b file] 如果file存在且是一个特殊文件则为真
[-c file] 如果file存在且是一个特殊文件则为真
[-d file] 如果 file 文件存在且是一个目录则为真,d前的!是逻辑非 
#表示目录不存在,则执行后面的 then 操作 
if [ ! -d lcd_path/par_date ]
[-e file] 如果 file文件存在则为真
[-f file] 如果 file 存在且是一个普通文件则为真
[-g file] 如果 file 存在且已经设置了SGID则为真(SUID 是 Set User ID, SGID 是 Set Group ID的意思)
[-h file] 如果 file 存在且是一个符号连接则为真
[-k file] 如果 file 存在且已经设置粘制位则为真
[-p file] 如果file存在且是一个名字管道(F如果O)则为真。管道是linux里面进程间通信的一种方式,
其他的还有像信号(signal)、信号量、消息队列、共享内存、套接字(socket)等
[-r file] 如果file存在且是可读的则为真
[-s file] 如果file存在且大小不为0则为真
[-t FD] 如果文件描述符FD打开且指向一个终端则为真
[-u file] 如果file存在且设置了SUID(set userID)则为真
[-w file 如果file存在且是可写的则为真
[-x file] 如果file存在且是可执行的则为真
[-O file] 如果file存在且属有效用户ID则为真
[-G file] 如果file存在且属有效用户组则为真
[-L file] 如果file存在且是一个符号连接则为真
[-N file] 如果file存在and has been mod如果ied since it was last read则为真
[-S file] 如果file存在且是一个套接字则为真
[-o optionname] 如果shell选项“optionname”开启则为真
[-z string] “string”的长度为零则为真
[-n string] or [string] “string”的长度为非零non-zero则为真
阅读更多

ZooKeeper 客户端之 Curator

ZooKeeper 是一个分布式的、开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现。它是集群的管理者,监视着集群中各个节点的状态,根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

Curator 是 Netflix 公司开源的一套 Zookeeper 客户端框架,解决了很多 Zookeeper 客户端非常底层的细节开发工作,包括连接重连、反复注册 Watcher 和 NodeExistsException 异常等等。

阅读更多

SpringCloud-版本及组件概述

本系列基于Spring Cloud **Finchley SR2 & SOFABoot 3.0.0

Spring Cloud 为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、leader选举、分布式session、集群状态)。分布式系统的协调导致了样板模式, 使用 Spring Cloud 开发人员可以快速地支持实现这些模式的服务和应用程序。它们可以在任何分布式环境中很好地工作,包括开发人员自己的笔记本电脑,裸机数据中心,以及Cloud Foundry等托管平台。

阅读更多