08 2019 档案
摘要:CPU性能优化手段 缓存 为了提高程序运行的性能,现代CPU在很多方面对程序进行了优化。 例如:CPU高速缓存。尽可能地避免处理器访问主内存的时间开销,处理器大多会利用缓存(cache)以提高性能。 多级缓存 L1 Cache(一级缓存)是CPU第一层高速缓存,分为数据缓存和指令缓存。一般服务器CP
阅读全文
摘要:不正确的线程中止 Stop Stop:中止线程,并且清除监控器锁的信息,但是可能导致 线程安全问题,JDK不建议用。 Destroy: JDK未实现该方法。 理想状态:要么自增成功i=1, j=1,要么自增失败i=0, j=0 真正程序执行结果:i=1, j=0 没有保证同步代码块里面数据的一致性,
阅读全文
摘要:线程状态 6个状态定义:java.lang.Thread.State 1. New: 尚未启动的线程的线程状态。 2. Runnable: 可运行线程的线程状态,等待CPU调度。 3. Blocked: 线程阻塞等待监视器锁定的线程状态。处于synchronized同步代码块或方法中被阻塞。 4.
阅读全文
摘要:class文件内容 class文件包含JAVA程序执行的字节码;数据严格按照格式紧凑排列在class文件中的二进制流,中间无任何分隔符;文件开头有一个0xcafebabe(16进制)特殊的一个标志。 JVM运行时数据区 线程独占:每个线程都会有它独立的空间,随线程生命周期而创建和销毁 线程共享:所有
阅读全文
摘要:谷歌Guava缓存 Guava介绍 Guava是Google guava中的一个内存缓存模块,用于将数据缓存到JVM内存中。实际项目开发中经常将一些公共或者常用的数据缓存起来方便快速访问。 Guava Cache是单个应用运行时的本地缓存。它不把数据存放到文件或外部服务器。如果不符合需求,可以选择M
阅读全文
摘要:缓存 在程序中,缓存是一个高速数据存储层,其中存储了数据子集,且通常是短暂性存储,这样日后再次请求此数据时,速度要比访问数据的主存储位置快。通过缓存,可以高效地重用之前检索或计算的数据。 为什么要用缓存 场景 在Java应用中,对于访问频率高,更新少的数据,通常的方案是将这类数据加入缓存中,相对从数
阅读全文
摘要:1、命令方式 在创建好的Swarm集群中运行nginx服务,并使用 replicas参数指定启动的副本数。 或者 2、portainer方式 可以使用portainer的方式在web界面上创建服务并指定副本数,同时可以随时动态增减副本数。
阅读全文
摘要:Docker Swarm资源管理 Docker Swarm是Docker官方三剑客项目之一,提供Docker容器集群服务,是Docker官方对容器云生态进行支持的核心方案。 使用它,用户可以将多个Docker主机封装为单个大型的虚拟Docker主机,快速打造一套容器云平台。 注意:Docker1.1
阅读全文
摘要:概述 前面文章介绍使用docker compose组合应用并利用scale快速对容器进行扩容。 由于docker compose启动的服务都在同一台宿主机上,对于一个宿主机上运行多个容器应用时,容器的运行情况如:CPU使用率、内存使用率、网络状态、磁盘空间等一系列随时间变化的时序数据信息,都是需要去
阅读全文
摘要:Compose简介 Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。其代码目前在https://github.com/docker/compose 上开源。 Compose定位是定义和运行多个Docker容器的应用,其前身是开源项目Fig。 通过前面内容的介
阅读全文
摘要:Docker数据管理 在容器中管理数据主要有两种方式: 数据卷(Volumes) 挂载主机目录(Bind mounts) 数据卷 数据卷是一个可供一个或多个容器使用的特殊目录,它绕过UFS,可以提供很多有用的特性: 数据卷可以在容器之间共享和重用 对数据卷的修改会立马生效 对数据卷的更新,不会影响镜
阅读全文
摘要:Docker Hub 目前Docker官方维护了一个公共仓库Docker Hub,其中已经包括了数量超过15000个镜像。大部分需求都可以通过在Docker Hub中直接下载镜像来使用。 注册登录 可以在https://hub.docker.com 免费注册一个Docker账号。在命令行执行dock
阅读全文
摘要:定制镜像 准备一个没有第三方依赖的java web项目,可能参考示例maven结构项目: session web.war 把该war上传到安装有docker软件的服务器上宿主目录下。在同级目录创建Dockerfile 按照前面文章所学的Dockerfile定制镜像知识来编写Dockerfile文件内
阅读全文
摘要:使用Dockerfile定制镜像 镜像的定制实际上就是定制每一层所添加的配置、文件。我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,这个脚本就是Dockerfile。 Dockerfile是一个文本文件,其内包含了一条条的指令,每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如
阅读全文
摘要:Docker镜像操作 Docker运行容器前需要本地存在对应的镜像,如果本地不存在该镜像,Docker会从镜像仓库下载该镜像。 获取镜像 从Docker镜像仓库获取镜像的命令是docker pull。其命令格式为: 具体的选项可以通过docker pull help命令看到,这里我们说一下镜像名称的
阅读全文
摘要:Docker容器 Docker是什么 Docker最初是dotCloud公司创建人Solomon Hykes在法国期间发起的一个公司内部项目,它是基于dotCloud公司多年云服务技术的一次革新,并于2013年3月以Apache2.0授权协议开源,主要项目代码在Github上进行维护。Docker项
阅读全文