Cordova Install

安装Cordova $ npm install -g cordova 创建工程 corova create <path> 添加支持平台 cordova platform add <platform name> 使用 cordova platform查看支持平台 运行 cordova run <platform name> 运行ios需要安装 npm install -g ios-deploy,启动异常可以使用xcode打开工程,查看具体原因。 …

线程协作CountDownLatch&CyclicBarrier

最近在开发计算量较大的模块中使用到的线程协作总结 需求 要求三个线程按下图所示的流程协同执行 实现 public class ThreadDemo { public static void main(String[] args) { final CountDownLatch countDownLatch = new CountDownLatch(2); final CyclicBarrier cyclicBarrier = new CyclicBarrier(2); Thread threadA = new Thread(new worker("A", countDownLatch, cyclicBarrier)); Thread threadB = new Thread(new worker("B", countDownLatch, cyclicBarrier)); threadB.start(); threadA.start(); try { countDownLatch.await(); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("All worke done"); } public static void threadSleep() { try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } } } class worker implements Runnable { private String workerNmae; private CountDownLatch countDownLatch; private CyclicBarrier cyclicBarrier; public worker(String workerNmae, CountDownLatch countDownLatch, CyclicBarrier cyclicBarrier) { this.workerNmae = workerNmae;...…

Docker(3)-项目部署

项目中使用Docker发布、部署 ##生成镜像 使用dockerfile生成包含war的镜像,此处使用的jetty作为容器 FROM jetty:9-jre7 MAINTAINER wei@yizhen.com COPY target/uther.war /var/lib/jetty/webapps/ROOT.war VOLUME /home/jetty/.dubbo EXPOSE 8080 EXPOSE 20885 由于项目中使用了dubbo,需要在用户根目录创建一个可写权限的文件夹;对外暴露需要使用的端口 使用maven打包项目 mvn clean compile war:war -Dmaven.test.skip=true -P dev 使用docker build生成镜像 sudo docker build -t imagename:tag dockerfilepath/ ##启动镜像 使用docker run启动容器 sudo docker run -d -p 80:8080 -p 20885:20885 -v /log:/log --net=host --name proejct_0210 imagename:tag 项目对外输出文件日志,使用了一个映射卷;net参数使dubbo向外暴露的接口使用和宿主机器同网段的地址 ##基础容器 ###mysql sudo docker run --name mysql -v /mysqldata:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=toor -d mysql:5.6 ###jenkins sudo docker run -it -p 8080:8080 -p 50000:50000 -v /jenkinsdata:/var/ jenkins_home jenkins ###registry sudo docker run -p 5000:5000 -v /docker_registry:/tmp/registry-dev registry sudo docker push 127.0.0.1:5000/imagename ###rancher sudo docker run -d --restart=always -p 8080:8080...…

Docker(2)-容器&仓库

Docker容器、仓库的相关操作 #容器 ##创建容器 docker create 创建出的容器处于停止状态,可以使用docker statrt启动,如果需要创建并启动容器使用 docker run ##进入容器 使用-d启动的容器会进入后台,使用如下命令可以连接后台的容器 docker attach ##删除容器 docker rm ##导入、导出容器 导出一个已创建的容器到一个文件 docker export CONTAINER docker import CONTAINER #仓库 ##创建私有仓库 使用官方的registry镜像搭建本地私有仓库 docker run -d -p 5000:5000 -v /temp/dockerregistry:/tmp/registry registry ##上传镜像到私有仓库 docker push localhost:5000/IMAGE …

Docker(1)-镜像

Docker镜像的相关操作 ##镜像获取 docker pull [DockerRepositorieAddress/]IMAGENAME[:TAG] DockerRepositorieAddress:用于指定镜像来源的仓库地址,默认镜像仓库为Docker Hub TAG:用于指定镜像版本,如不显示指定,默认会选择latest作为镜像的标签,获取最新版本的镜像 镜像下载时会以层的方式进行,层(Layer)其实是AUFS(Advanced Union File System,一种联合文件系统)中的重要概念,是实现增量保存与更新的基础。 ##镜像信息查看 查看本机已下载的镜像 docker images 此命令会显示一下信息: 来源的仓库地址 镜像的标签 镜像的ID(唯一) 创建时间 镜像大小 为镜像指定标签 docker tag [DockerRepositorieAddress/]IMAGENAME:TAG IMAGES:NEWTAG 使用docker images命令查看,新命名的标签和旧的标签指向的是同一个镜像ID,他们只是别名不同。 查看镜像详细信息 docker inspect IMAGEID 在指定IMAGEID时,通过使用该ID前几个字符即可 ##镜像搜索 docker search TERM ##删除镜像 docker rmi IMAGE[IMAGE...] 删除时也可是使用镜像ID来确定需要删除的镜像。如果镜像正在被使用使用rmi是无法删除的,可以使用docker rmi -f强制删除,但不建议这么做,需要先使用docker rm删除依赖的容器然后再删除镜像。 ##创建镜像 目前创建镜像的方式由三种: 基于现有镜像的容器创建 基于本地模板的导入 基于Dockerfile创建 下面介绍相对容易理解的前两种 基于现有镜像的容器创建 docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] 例如,对Ubuntu镜像进行操作后创建新的镜像 docker commit -m "提交信息" -a '作者信息' ORIGINIMAGEID NEWIMAGE 基于本地模板的导入 使用操作系统模板文件导入一个镜像文件 cat centos-xxx.xx.x.tar.gz | docker import - centos:tag ##保存和载入镜像 保存镜像 导出镜像为本地文件 docker save -o centos.tar centos:latest 载入镜像 使用本地文件生成镜像 docker load --input centos.tar 或 docker load < centos.tar ##上传镜像 docker push NAME[:TAG] ##其他...…

tomcat远程调试

配置使用tomcat远程调试功能,使用idea远程调试项目 ##tomcat配置 开启tomcat远程配置的方式有多种,下面介绍其中的一种。 检查环境变量CATALINA_BASE,指向tomcat根目录; 在bin目录中创建文件setenv.sh,windows环境命名为setenv.bat; 在上面的文件中添加如下命令: export CATALINA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n" windwos SET CATALINA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n" 此处指定的远程调试端口为8000。 ##IDE配置 这里使用的是idea,在Run/Debug Configurations中创建类型为remote的应用,输入部署tomcat主机的ip:port选择本地源码所属的模块,启动debug连接远程tomcat即可远程调试项目。 ##tomcat&jetty 最近在工作中遇到的一个部署问题,是由于URL编码造成的,开发环境使用maven插件使项目运行在jetty上,线上环境为tomcat,部署后发现前台传入的中文无法正常到达后台,查看tomcat配置文档,需要在server.xml中配置连接的编码格式,添加URIEncoding="UTF-8"配置。 …