- 企业级负载均衡LVS集群———KeepAlived高可用性集群、LVS(IPVS)+KeepAlived+Httpd、LVS(IPVS)+KeepAlived+Vsftpd
草莓啾啾啾
企业Linux
文章目录一、KeepAlived1、KeepAlived的定义2、KeepAlived的工作原理3、Keepalived高可用故障切换转移原理4、Keepalived运行机制5、面试中Keepalived的工作原理的文字表述二、LVS+KeepAlived+Httpd三、LVS+KeepAlived+Vsftpd一、KeepAlived背景:我们之前都是一个调度器来调度多台web后端服务器,但是调
- docker内安装并激活conda
你好,此用户已存在
dockerdockerconda
dockerfile文件#installconda#下载并安装MinicondaRUNwgethttps://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh-Ominiconda.sh\&&bashminiconda.sh-b-p/opt/conda\&&rmminiconda.sh#创建并激活Conda环境RUN/opt
- nginx 客户端返回499的错误码
飞翔码农
openrestynginxnginx运维
我们服务器客户端一直有返回错误码499的日志,以前觉得比例不高,就没有仔细查过,最近有领导问这个问题,为什么耗时只有0.0几秒,为啥还499了?最近几天就把这个问题跟踪定位了一下,这里做个记录网络架构和背景我们服务架构和错误码是上面这样的,上游服务日志没有记录,无法确定kong到上游服务的连接和请求细节。kong上的日志rsp_cost:0.041rsp_length:0rsp_status:49
- 关于单片机的 json解析
休眠师
AIOT单片机网络
因为项目使用到了网络,与服务进行http通讯,所以选择了使用json方式。单片机通过串口与wifi模块,获取网络上的数据包,根据字符串处理拿到传输的json字符。在单片机上处理json的方式简单发现了3种,开始用了frozen,在使用过程发现总在调用free()函数的时候卡死;百度了一通,发现要把head的大小设置大一点。从512到8196,发现都不行,进而想是不是rt-thread嵌太深,把栈撑
- Docker安装与使用 | conda环境配置 | 附常用命令
全日制学生混
dockerconda容器
这里写自定义目录标题Docker安装Docker使用打包conda环境制作镜像运行镜像容器监视常用一些可能出现的问题Docker安装#创建一个文件夹用于中转文件mkdir-p~/3dparty/dockercd~/3dparty/docker#进去选择docker一键安装即可wgethttp://fishros.com/install-Ofishros.sh&&shfishros.sh#把当前用户
- 2018吉林二级建造师考试成绩管理办法4
优路教育苏老师
今天,吉林省人事考试网正式发布了2018年吉林二级建造师考试报名通知,通知文件中明确规定了2018年吉林二级建造师http://www.niceloo.com/erjian/考试成绩管理办法,跟着优路教育一起提前了解一下吧。资格证书(一)二级建造师考试合格标准由省人力资源和社会保障厅会同省住房和城乡建设厅研究决定,考生成绩达到省内合格标准的,取得省内合格证书。当年未取得合格证书的,达到试卷满分60
- Nginx错误:客户端打算发送太大的正文
alden_ygq
nginxnginx服务器前端
问题nginx错误日志:clientintendedtosendtoolargebody:3729822bytes,解决方案默认Nginx配置限制客户端请求体为1Mb。当出现以上报错时,说明客户端请求的body超过了nginx默认的请求body体限制,需要对nginx可接受的请求体大小限制进行调整,增加client_max_body_size参数以允许用户发布大型文档。http{...client
- docker内安装miniconda
门前大橋下丶
docker容器
下载minicondahttps://repo.anaconda.com/miniconda/进入容器进行安装#运行安装脚本以安装Miniconda/bin/bashMiniconda3-py38_22.11.1-1-Linux-aarch64.sh-b-p/opt/conda#将Conda添加到PATHexportPATH=/opt/conda/bin:$PATHcondainitbashexe
- PHP对接语音验证码接口DEMO示例
李小慧互亿无线
为了最大限度的提升验证码短信的到达率,可以在对接验证码短信外另外对接语音验证码,在短信因某种原因失败未送达客户手机语音验证码是不错的备选方案。有效的减少客户流失率。//接口类型:互亿无线语音验证码接口。//账户注册:请通过该地址开通账户http://user.ihuyi.com/?h9Dkn//注意事项://(1)调试期间,请仔细阅读接口文档;//(2)请使用APIID及APIKEY来调用接口,可
- 密码访问单页自定义跳转页面源码
CSDN专家-微编程
HTML项目javascript开发语言ecmascript
源码介绍密码访问单页自定义跳转页面源码,密码访问单页自定义跳转页面,修改了的密码访问单页,添加了js自定义密码跳转页面。需要正确输入密码才能跳转目标网址。源码由HTML+CSS+JS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行效果,也可以上传到服务器里面,重定向这个界面源码截图源码下载密码访问单页自定义跳转页面源码
- Spring MVC 的基本组件与使用
康康峰
SpringMVC源码解析springmvcjava
2.2SpringMVC对控制器的支持2.2.3处理器执行(常见的三种Handler)1.HttpRequestHandler这是一种比较简单的Handler,HttpRequestHandler接口只有一个handleRequest方法,传入HttpServletRequest和HttpServletResponse两个参数,没有返回值。这种Handler只为处理简单的HTTP请求,其中不涉及复
- 转载:ASP.NET MVC+Layui数据分页的实现和说明
djk8888
asp.netlayui后端
原文地址:http://blog.csdn.net/qq_42077395/article/details/104667506带查询条件:http://blog.csdn.net/weixin_42128648/article/details/129611274
- web.xml里面的配置加载顺序
生产队队长
SpringAllweb.xml
https://blog.csdn.net/qq_22075041/article/details/78692780这篇文章写的很详细
- 【TCGA】批量下载WSIs(GDC Transfer Tool-UI)
LansinBlog
TCGApython
从TCGA中批量下载WSIs1.下载TCGA原生工具TCGA官网链接:https://portal.gdc.cancer.gov/由于目前TCGA改版了,如果不太适应新版本界面的,可以点击红色部分,回到第一版。下滑找到“DataTransferTool”并点击。进入"DataTransferTool"子页面后,下滑找到“GDCTransferToolpage”并点击。进入“GDCTransferT
- 论文浅尝 - AAAI2020 | 迈向建立多语言义元知识库:用于 BabelNet Synsets 义元预测...
开放知识图谱
机器学习人工智能知识图谱自然语言处理深度学习
论文笔记整理:潘锐,天津大学硕士。来源:AAAI2020链接:https://arxiv.org/pdf/1912.01795.pdf摘要义原被定义为人类语言的最小语义单位。义原知识库(KBs)是一种包含义原标注词汇的知识库,它已成功地应用于许多自然语言处理任务中。然而,现有的义原知识库建立在少数几种语言上,阻碍了它们的广泛应用。为此论文提出在多语种百科全书词典BabelNet的基础上建立一个统一
- Curator框架 以及基本API如何操作
JAVA代码搬运工
ZooKeeperzookeeper
为了更好的实现java操作zookeeper服务器,后来出现Curator框架,非常的强大,目前已经是Apache的顶级项目,里面提供了更多丰富的操作,例如session超时重连、主从选举、分布式计数器、分布式锁等等适用于各种复杂的zookeeper场景的API封装。maven依赖:org.apache.curatorcurator-framework2.4.2相关资料地址:http://cura
- 网站被屏蔽的解决方法
白总Server
htmljavapython数据结构数据库
1.检查网络连接:首先确认您的网络连接是否正常。尝试访问其他网站,如果其他网站可以正常打开,那么问题可能是特定网站被屏蔽。2.清除浏览器缓存和Cookie:浏览器的缓存和Cookie可能导致网站无法正常加载。尝试清除浏览器的缓存和Cookie,然后重新访问该网站。3.使用代理服务器或VPN:代理服务器或虚拟私人网络(VPN)可以帮助您绕过网站屏蔽。通过连接到代理服务器或VPN,您可以将您的网络流量
- 官方发文CentOS 将于6月30全面停服,最全选型攻略
逆天-逍遥哥哥
linuxcentoslinux运维
官方发文CentOS将于6月30全面停服,最全选型攻略6月30日,CentOS将停止更新和维护,这对于正在使用CentOS的国内企业来说,是一次严峻的考验。意味着用户将无法获得官方升级和补丁,直接导致业务运行面临安全挑战与管理风险。同时也势必造成服务器操作系统的迁移浪潮,国产操作系统也迎来了新的发展机遇。Centos的前世今生Linux凭借优秀的设计,不凡的性能,加上IBM、INTEL、CA、CO
- AI手写文字识别+签字+合同打印
茂密的软件制作
语音识别中文分词全文检索javapython
可识别各种不规则手写字体,并对字迹潦草、模糊等情况进行专项优化,手写中文识别提供各类文字识别的在线服务接口,可直接调用API或使用HTTPSDK对图片中的文字进行多场景、高精度的手写文字识别服务,支持中、英、日、韩、法等20+语言类型,识别准确率可达90%以上;支持涂改痕迹识别与候选字输出,可适用于手写作文、签名等多种场景,使用AI扩散模型推理识图
- 解决uniapp视频层级太高的问题
云123321
uniappuni-app
刷新可拖动//配置公共方法exportdefault{data(){return{videoUrl:'https://***',weixin_moveable_x:320,weixin_moveable_y:450};},computed:{videoHTML(){return``}},methods:{wx_pro_refresh(){var_this=this;},}};
- minio 大视频观看,下载
zhou周大哥
音视频java前端
在线观看/***下载视频文件fileName文件路径名称文件路径BacketName/video/1111.mp4需要截取桶名后面的路径video/1111.mp4video前面不要带/**@paramfileName*@paramrequest*@paramresponse*/publicvoidplay(StringfileName,HttpServletRequestrequest,Http
- Xcodeproj(ruby库)
liboxiang
官网链接:http://www.rubydoc.info/gems/xcodeproj用于创建和修改Xcode项目
- 大模型训练优化方法
少喝冰美式
人工智能大语言模型ai大模型大模型应用LLM大模型训练计算机技术
写在前面在训练模型尤其是大模型的时候,如何加快训练速度以及优化显存利用率是一个很关键的问题。本文主要参考HF上的一篇文章:https://huggingface.co/docs/transformers/perf_train_gpu_one,以及笔者在实际训练中的一些经验,给出一些比较实用的方法。先看一个总览的表:方法加快训练速度优化显存利用率BatchsizechoiceYesYesGradie
- Linux基础软件-lvm
dessler
Linux进阶#Linux基础软件linux运维服务器
作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。Linux进阶部分又分了很多小的部分,我们刚讲完了Linux日常运维。讲的那些东西都算是系统自带的,但是Linux作为一个服务器操作系统,肯定是要安装运行软件来满足我们的业务需要,本章基础软件部分,将从下面几个部分来讲解:Linux基础软件-软件安装Linux基础软件-yum(
- 免费Excel工作表同类数据合并工具
火星技术
excel
下载地址:https://pan.quark.cn/s/81b1aeb45e4c在Excel表格中,手动将多行同类数据合并为一行存在诸多困难和复杂的操作,容易出现错漏且难以保证数据合并的完全正确性,需要人工反复复核。作者因深受其苦,开发了一个具有特定功能的小工具。**重要亮点**-**手动合并数据的难题**:确定可合并的同类数据时人工对比易出错;待合并行可能分属多个分组且分布分散,操作繁琐;合并时
- npm run build部署到云服务器中的Nginx(图文配置)
码农研究僧
配置npm服务器nginx
目录前言1.配置流程2.实战流程3.其余配置前言对于Nginx的基本知识推荐阅读:Nginx将https重定向为http进行访问的配置(附Demo)详细分析Nginx配置参数(附Demo)Nginx配置静态网页访问(图文界面)Nginx从入门到精通(全)一开始访问不到,以为是Nginx的配置哪里有问题,最后发现云服务器有个必不可少的点要注意,此贴主要为了记录总结1.配置流程基本的知识点可以参照前言
- Npm Yarn Pnpm 设置国内镜像
想望着太阳
npmyarnnodenpm前端yarnnode.js
npm查看当前镜像npmconfiggetregistry设置淘宝镜像npmconfigsetregistryhttps://registry.npmmirror.com切回原镜像npmconfigsetregistryhttps://registry.npmjs.orgyarn查看当前镜像yarnconfiggetregistry设置为淘宝镜像yarnconfigsetregistryhttps
- 午课写字 - 2018年11月全集
钮海津
钮海津,午课写字午课写字-2018年11月全集https://book.yunzhan365.com/lews/przp/index.html
- 嵌入式Linux(7)——五种常见的嵌入式操作系统
xxxxx_
姓名:谢恩龙学号:19020100029学院:电子工程学院转自:https://blog.csdn.net/weixin_42296625/article/details/82981741【嵌牛导读】嵌入式Linux系统时间设置【嵌牛鼻子】嵌入式Linux【嵌牛提问】常用嵌入式linux系统有哪些?【嵌牛正文】TOP1:μClinuxμClinux是一种优秀的嵌入式Linux版本,其全称为micr
- pnpm 设置国内源
华山令狐虫
前端javascriptpnpm
pnpmconfigsetregistryhttps://registry.npmmirror.com/
- 多线程编程之存钱与取钱
周凡杨
javathread多线程存钱取钱
生活费问题是这样的:学生每月都需要生活费,家长一次预存一段时间的生活费,家长和学生使用统一的一个帐号,在学生每次取帐号中一部分钱,直到帐号中没钱时 通知家长存钱,而家长看到帐户还有钱则不存钱,直到帐户没钱时才存钱。
问题分析:首先问题中有三个实体,学生、家长、银行账户,所以设计程序时就要设计三个类。其中银行账户只有一个,学生和家长操作的是同一个银行账户,学生的行为是
- java中数组与List相互转换的方法
征客丶
JavaScriptjavajsonp
1.List转换成为数组。(这里的List是实体是ArrayList)
调用ArrayList的toArray方法。
toArray
public T[] toArray(T[] a)返回一个按照正确的顺序包含此列表中所有元素的数组;返回数组的运行时类型就是指定数组的运行时类型。如果列表能放入指定的数组,则返回放入此列表元素的数组。否则,将根据指定数组的运行时类型和此列表的大小分
- Shell 流程控制
daizj
流程控制if elsewhilecaseshell
Shell 流程控制
和Java、PHP等语言不一样,sh的流程控制不可为空,如(以下为PHP流程控制写法):
<?php
if(isset($_GET["q"])){
search(q);}else{// 不做任何事情}
在sh/bash里可不能这么写,如果else分支没有语句执行,就不要写这个else,就像这样 if else if
if 语句语
- Linux服务器新手操作之二
周凡杨
Linux 简单 操作
1.利用关键字搜寻Man Pages man -k keyword 其中-k 是选项,keyword是要搜寻的关键字 如果现在想使用whoami命令,但是只记住了前3个字符who,就可以使用 man -k who来搜寻关键字who的man命令 [haself@HA5-DZ26 ~]$ man -k
- socket聊天室之服务器搭建
朱辉辉33
socket
因为我们做的是聊天室,所以会有多个客户端,每个客户端我们用一个线程去实现,通过搭建一个服务器来实现从每个客户端来读取信息和发送信息。
我们先写客户端的线程。
public class ChatSocket extends Thread{
Socket socket;
public ChatSocket(Socket socket){
this.sock
- 利用finereport建设保险公司决策分析系统的思路和方法
老A不折腾
finereport金融保险分析系统报表系统项目开发
决策分析系统呈现的是数据页面,也就是俗称的报表,报表与报表间、数据与数据间都按照一定的逻辑设定,是业务人员查看、分析数据的平台,更是辅助领导们运营决策的平台。底层数据决定上层分析,所以建设决策分析系统一般包括数据层处理(数据仓库建设)。
项目背景介绍
通常,保险公司信息化程度很高,基本上都有业务处理系统(像集团业务处理系统、老业务处理系统、个人代理人系统等)、数据服务系统(通过
- 始终要页面在ifream的最顶层
林鹤霄
index.jsp中有ifream,但是session消失后要让login.jsp始终显示到ifream的最顶层。。。始终没搞定,后来反复琢磨之后,得到了解决办法,在这儿给大家分享下。。
index.jsp--->主要是加了颜色的那一句
<html>
<iframe name="top" ></iframe>
<ifram
- MySQL binlog恢复数据
aigo
mysql
1,先确保my.ini已经配置了binlog:
# binlog
log_bin = D:/mysql-5.6.21-winx64/log/binlog/mysql-bin.log
log_bin_index = D:/mysql-5.6.21-winx64/log/binlog/mysql-bin.index
log_error = D:/mysql-5.6.21-win
- OCX打成CBA包并实现自动安装与自动升级
alxw4616
ocxcab
近来手上有个项目,需要使用ocx控件
(ocx是什么?
http://baike.baidu.com/view/393671.htm)
在生产过程中我遇到了如下问题.
1. 如何让 ocx 自动安装?
a) 如何签名?
b) 如何打包?
c) 如何安装到指定目录?
2.
- Hashmap队列和PriorityQueue队列的应用
百合不是茶
Hashmap队列PriorityQueue队列
HashMap队列已经是学过了的,但是最近在用的时候不是很熟悉,刚刚重新看以一次,
HashMap是K,v键 ,值
put()添加元素
//下面试HashMap去掉重复的
package com.hashMapandPriorityQueue;
import java.util.H
- JDK1.5 returnvalue实例
bijian1013
javathreadjava多线程returnvalue
Callable接口:
返回结果并且可能抛出异常的任务。实现者定义了一个不带任何参数的叫做 call 的方法。
Callable 接口类似于 Runnable,两者都是为那些其实例可能被另一个线程执行的类设计的。但是 Runnable 不会返回结果,并且无法抛出经过检查的异常。
ExecutorService接口方
- angularjs指令中动态编译的方法(适用于有异步请求的情况) 内嵌指令无效
bijian1013
JavaScriptAngularJS
在directive的link中有一个$http请求,当请求完成后根据返回的值动态做element.append('......');这个操作,能显示没问题,可问题是我动态组的HTML里面有ng-click,发现显示出来的内容根本不执行ng-click绑定的方法!
 
- 【Java范型二】Java范型详解之extend限定范型参数的类型
bit1129
extend
在第一篇中,定义范型类时,使用如下的方式:
public class Generics<M, S, N> {
//M,S,N是范型参数
}
这种方式定义的范型类有两个基本的问题:
1. 范型参数定义的实例字段,如private M m = null;由于M的类型在运行时才能确定,那么我们在类的方法中,无法使用m,这跟定义pri
- 【HBase十三】HBase知识点总结
bit1129
hbase
1. 数据从MemStore flush到磁盘的触发条件有哪些?
a.显式调用flush,比如flush 'mytable'
b.MemStore中的数据容量超过flush的指定容量,hbase.hregion.memstore.flush.size,默认值是64M 2. Region的构成是怎么样?
1个Region由若干个Store组成
- 服务器被DDOS攻击防御的SHELL脚本
ronin47
mkdir /root/bin
vi /root/bin/dropip.sh
#!/bin/bash/bin/netstat -na|grep ESTABLISHED|awk ‘{print $5}’|awk -F:‘{print $1}’|sort|uniq -c|sort -rn|head -10|grep -v -E ’192.168|127.0′|awk ‘{if($2!=null&a
- java程序员生存手册-craps 游戏-一个简单的游戏
bylijinnan
java
import java.util.Random;
public class CrapsGame {
/**
*
*一个简单的赌*博游戏,游戏规则如下:
*玩家掷两个骰子,点数为1到6,如果第一次点数和为7或11,则玩家胜,
*如果点数和为2、3或12,则玩家输,
*如果和为其它点数,则记录第一次的点数和,然后继续掷骰,直至点数和等于第一次掷出的点
- TOMCAT启动提示NB: JAVA_HOME should point to a JDK not a JRE解决
开窍的石头
JAVA_HOME
当tomcat是解压的时候,用eclipse启动正常,点击startup.bat的时候启动报错;
报错如下:
The JAVA_HOME environment variable is not defined correctly
This environment variable is needed to run this program
NB: JAVA_HOME shou
- [操作系统内核]操作系统与互联网
comsci
操作系统
我首先申明:我这里所说的问题并不是针对哪个厂商的,仅仅是描述我对操作系统技术的一些看法
操作系统是一种与硬件层关系非常密切的系统软件,按理说,这种系统软件应该是由设计CPU和硬件板卡的厂商开发的,和软件公司没有直接的关系,也就是说,操作系统应该由做硬件的厂商来设计和开发
- 富文本框ckeditor_4.4.7 文本框的简单使用 支持IE11
cuityang
富文本框
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>知识库内容编辑</tit
- Property null not found
darrenzhu
datagridFlexAdvancedpropery null
When you got error message like "Property null not found ***", try to fix it by the following way:
1)if you are using AdvancedDatagrid, make sure you only update the data in the data prov
- MySQl数据库字符串替换函数使用
dcj3sjt126com
mysql函数替换
需求:需要将数据表中一个字段的值里面的所有的 . 替换成 _
原来的数据是 site.title site.keywords ....
替换后要为 site_title site_keywords
使用的SQL语句如下:
updat
- mac上终端起动MySQL的方法
dcj3sjt126com
mysqlmac
首先去官网下载: http://www.mysql.com/downloads/
我下载了5.6.11的dmg然后安装,安装完成之后..如果要用终端去玩SQL.那么一开始要输入很长的:/usr/local/mysql/bin/mysql
这不方便啊,好想像windows下的cmd里面一样输入mysql -uroot -p1这样...上网查了下..可以实现滴.
打开终端,输入:
1
- Gson使用一(Gson)
eksliang
jsongson
转载请出自出处:http://eksliang.iteye.com/blog/2175401 一.概述
从结构上看Json,所有的数据(data)最终都可以分解成三种类型:
第一种类型是标量(scalar),也就是一个单独的字符串(string)或数字(numbers),比如"ickes"这个字符串。
第二种类型是序列(sequence),又叫做数组(array)
- android点滴4
gundumw100
android
Android 47个小知识
http://www.open-open.com/lib/view/open1422676091314.html
Android实用代码七段(一)
http://www.cnblogs.com/over140/archive/2012/09/26/2611999.html
http://www.cnblogs.com/over140/arch
- JavaWeb之JSP基本语法
ihuning
javaweb
目录
JSP模版元素
JSP表达式
JSP脚本片断
EL表达式
JSP注释
特殊字符序列的转义处理
如何查找JSP页面中的错误
JSP模版元素
JSP页面中的静态HTML内容称之为JSP模版元素,在静态的HTML内容之中可以嵌套JSP
- App Extension编程指南(iOS8/OS X v10.10)中文版
啸笑天
ext
当iOS 8.0和OS X v10.10发布后,一个全新的概念出现在我们眼前,那就是应用扩展。顾名思义,应用扩展允许开发者扩展应用的自定义功能和内容,能够让用户在使用其他app时使用该项功能。你可以开发一个应用扩展来执行某些特定的任务,用户使用该扩展后就可以在多个上下文环境中执行该任务。比如说,你提供了一个能让用户把内容分
- SQLServer实现无限级树结构
macroli
oraclesqlSQL Server
表结构如下:
数据库id path titlesort 排序 1 0 首页 0 2 0,1 新闻 1 3 0,2 JAVA 2 4 0,3 JSP 3 5 0,2,3 业界动态 2 6 0,2,3 国内新闻 1
创建一个存储过程来实现,如果要在页面上使用可以设置一个返回变量将至传过去
create procedure test
as
begin
decla
- Css居中div,Css居中img,Css居中文本,Css垂直居中div
qiaolevip
众观千象学习永无止境每天进步一点点css
/**********Css居中Div**********/
div.center {
width: 100px;
margin: 0 auto;
}
/**********Css居中img**********/
img.center {
display: block;
margin-left: auto;
margin-right: auto;
}
- Oracle 常用操作(实用)
吃猫的鱼
oracle
SQL>select text from all_source where owner=user and name=upper('&plsql_name');
SQL>select * from user_ind_columns where index_name=upper('&index_name'); 将表记录恢复到指定时间段以前
- iOS中使用RSA对数据进行加密解密
witcheryne
iosrsaiPhoneobjective c
RSA算法是一种非对称加密算法,常被用于加密数据传输.如果配合上数字摘要算法, 也可以用于文件签名.
本文将讨论如何在iOS中使用RSA传输加密数据. 本文环境
mac os
openssl-1.0.1j, openssl需要使用1.x版本, 推荐使用[homebrew](http://brew.sh/)安装.
Java 8
RSA基本原理
RS