摘要:
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。 通过前面内容的介 阅读全文