Java 调用 Azure HTTPS API 证书问题

作者:Rui 发布时间:May 16, 2016 分类:JAVA,Azure,CLOUD 浏览:546

Java 访问 Azure HTTPS的API时,会经常报:PKIX:unable to find valid certification path to requested target 这样的错误,这是因为Java有自己的KeyStore,并不会使用系统的证书, Java在自己的KeyStore中找不到对应的信任证书,就会报出此错误。所以如果需要使用Java访问Azure的HTTPS的API,就需要将Azure 网站的证书添加到JDK的KeyStore中。

以下是手动导入的方式:

  1. Azure 使用Wosign的证书, 从http://www.wosign.com/Root/index.htm# 站点下载WoSign 根证书(Certification Authority of WoSign),将.crt 文件后缀改为 .cer

  2. 执行以下命令导入

    keytool -keystore "C:\Program Files\Java\jdk1.8.0_71\jre\lib\security\cacerts" -importcert -alias WoSign -file WS_CA1_NEW.cer
    

    接下来 会提示输入密码,默认密码为 changeit,输入之后,选择‘是’将其安装到JDK 可信证书库中。

  3. 如果看到以下结果,则导入成功。
    Image.png

也可以借助以下代码,将证书自动带入JDK的KeyStore,请参开此文档:http://arui.me/index.php/archives/69/

Azure 高级版 Redis 如何持久化

作者:Rui 发布时间:May 11, 2016 分类:Azure,Redis,BIGDATA,CLOUD 浏览:545

Redis 持久化

为了保证redis cache数据安全,同时在服务器故障时,能够在重启后进行数据恢复。redis 提供了两种持久化方案 RDB和AOF。

RDB

RDB持久化,快照是默认的持久化方式。这种方式是就是将内存中数据以快照的方式写入到二进制文件中,默认的文件名为dump.rdb。可以通过配置设置自动做快照持久化的方式。我们可以配置redis在n秒内如果超过m个key被修改就自动做快照

RDB持久化过程:

  1. Redis启用子线程fork主线程进行持久化,不影响父线程的I/O
  2. 父进程继续处理client请求,子进程负责将内存内容写入到临时文件。由于os的写时复制机制(copy on write)父子进程会共享相同的物理页面,当父进程处理写请求时os会为父进程要修改的页面创建副本,而不是写共享的页面。所以子进程的地址空间内的数据是fork时刻整个数据库的一个快照。
  3. 当子进程将快照写入临时文件完毕后,用临时文件替换原来的快照文件,然后子进程退出(fork一个进程入内在也被复制了,即内存会是原来的两倍)。

AOF

Append-only file,aof 比快照方式有更好的持久化,是由于在使用aof持久化方式时,redis会将每一个收到的写命令都通过write函数追加到文件中(默认是appendonly.aof)。当redis重启时会通过重新执行文件中保存的写命令来在内存中重建整个数据库的内容。当然由于os会在内核中缓存write做的修改,所以可能不是立即写到磁盘上。这样aof方式的持久化也还是有可能会丢失部分修改。不过我们可以通过配置文件告诉redis我们想要通过fsync函数强制os写入到磁盘的时机

AOF持久化过程:

  1. Redis启用子线程fork主线程进行持久化,不影响父线程的I/O
  2. 子进程根据内存中的数据库快照,往临时文件中写入重建数据库状态的命令
  3. 父进程继续处理client请求,除了把写命令写入到原来的aof文件中。同时把收到的写命令缓存起来。这样就能保证如果子进程重写失败的话并不会出问题。
  4. 当子进程把快照内容写入已命令方式写到临时文件中后,子进程发信号通知父进程。然后父进程把缓存的写命令也写入到临时文件。
  5. 现在父进程可以使用临时文件替换老的aof文件,并重命名,后面收到的写命令也开始往新的aof文件中追加。

阅读剩余部分...

Redis 知识整理

作者:Rui 发布时间:May 6, 2016 分类:Redis,BIGDATA 浏览:345

以前工作中,有使用过Redis缓存,但并没有系统的好好整理下,最近的工作中,又需要大量用到Redis,所以也借此机会好好整理下,并深入了解下Redis的使用。

目录