2019年12月11日

docker学习(七)常见仓库介绍

摘要: 将介绍常见的一些仓库和镜像的功能,使用方法和生成它们的 Dockerfile 等。包括 Ubuntu、CentOS、MySQL、MongoDB、Redis、Nginx、Wordpress、Node.js 等。 1.Ubuntu https://www.runoob.com/docker/docker 阅读全文

posted @ 2019-12-11 19:31 木西-Muxy 阅读(491) 评论(0) 推荐(0)

docker学习(六) Docker命令查询

摘要: Docker命令查询 1.基本语法docker [OPTIONS] COMMAND [arg...]一般来说,Docker 命令可以用来管理 daemon,或者通过 CLI 命令管理镜像和容器。可以通过 man docker 来查看这些命令。 选项-D=true|false使用 debug 模式。默 阅读全文

posted @ 2019-12-11 17:14 木西-Muxy 阅读(630) 评论(0) 推荐(0)

docker学习(六)

摘要: 一、Dockerfile使用 Dockerfile 可以允许用户创建自定义的镜像。 1.基本结构Dockerfile 由一行行命令语句组成,并且支持以 # 开头的注释行。一般的,Dockerfile 分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令。例如# This docke 阅读全文

posted @ 2019-12-11 17:01 木西-Muxy 阅读(131) 评论(0) 推荐(0)

docker学习(五)

摘要: 一、实战案例介绍一些典型的应用场景和案例。 1.使用Supervisor来管理进程Docker 容器在启动的时候开启单个进程,比如,一个 ssh 或者 apache 的 daemon 服务。但我们经常需要在一个机器上开启多个服务,这可以有很多方法,最简单的就是把多个启动命令方到一个启动脚本里面,启动 阅读全文

posted @ 2019-12-11 16:26 木西-Muxy 阅读(264) 评论(0) 推荐(0)

docker学习(四)

摘要: 一、Docker数据管理 在容器中管理数据主要有两种方式:1.数据卷(Data volumes)2.数据卷容器(Data volume containers) 1.数据卷数据卷是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性:a.数据卷可以在容器之间共享和重用b.对数据 阅读全文

posted @ 2019-12-11 15:55 木西-Muxy 阅读(210) 评论(0) 推荐(0)

线程安全的可控制最大容量且带有过期时间的本地缓存(转)

摘要: 最近在公司优化一个接口的时候打算使用一个key-value结构的本地缓存。需要实现的功能非常简单:1、可以控制本地缓存的最大对象数量。2、线程安全,防止发生OOM。3、同时支持设置单个对象的过期时间。 面对这个需求,我的选择很多,有很多框架都做的非常好,但大多数框架对我来说都太重量级了,我希望一个简 阅读全文

posted @ 2019-12-11 14:45 木西-Muxy 阅读(479) 评论(0) 推荐(0)

google Guava包的reflection(反射)解析

摘要: 译者:万天慧(武祖) 由于类型擦除,你不能够在运行时传递泛型类对象——你可能想强制转换它们,并假装这些对象是有泛型的,但实际上它们没有。 举个例子: Guava提供了TypeToken, 它使用了基于反射的技巧甚至让你在运行时都能够巧妙的操作和查询泛型类型。想象一下TypeToken是创建,操作,查 阅读全文

posted @ 2019-12-11 14:11 木西-Muxy 阅读(1032) 评论(0) 推荐(0)

[Google Guava] 12-数学运算

摘要: 原文链接 译文链接 译者:沈义扬 范例 1 int logFloor = LongMath.log2(n, FLOOR); 2 int mustNotOverflow = IntMath.checkedMultiply(x, y); 3 long quotient = LongMath.divide 阅读全文

posted @ 2019-12-11 14:09 木西-Muxy 阅读(348) 评论(0) 推荐(0)

[Google Guava] 11-事件总线

摘要: 原文链接 译文连接 译者:沈义扬 传统上,Java的进程内事件分发都是通过发布者和订阅者之间的显式注册实现的。设计EventBus就是为了取代这种显示注册方式,使组件间有了更好的解耦。EventBus不是通用型的发布-订阅实现,不适用于进程间通信。 范例 01 // Class is typical 阅读全文

posted @ 2019-12-11 14:08 木西-Muxy 阅读(311) 评论(0) 推荐(1)

[Google Guava] 10-散列

摘要: 原文链接 译文链接 译者:沈义扬 概述 Java内建的散列码[hash code]概念被限制为32位,并且没有分离散列算法和它们所作用的数据,因此很难用备选算法进行替换。此外,使用Java内建方法实现的散列码通常是劣质的,部分是因为它们最终都依赖于JDK类中已有的劣质散列码。 Object.hash 阅读全文

posted @ 2019-12-11 14:02 木西-Muxy 阅读(346) 评论(0) 推荐(0)

[Google Guava] 9-I/O

摘要: 原文链接 译文链接 译者:沈义扬 字节流和字符流 Guava使用术语”流” 来表示可关闭的,并且在底层资源中有位置状态的I/O数据流。术语”字节流”指的是InputStream或OutputStream,”字符流”指的是Reader 或Writer(虽然他们的接口Readable 和Appendab 阅读全文

posted @ 2019-12-11 14:00 木西-Muxy 阅读(233) 评论(0) 推荐(0)

Google-Guava Concurrent包里的Service框架浅析

摘要: 原文地址 译文地址 译者:何一昕 校对:方腾飞 概述 Guava包里的Service接口用于封装一个服务对象的运行状态、包括start和stop等方法。例如web服务器,RPC服务器、计时器等可以实现这个接口。对此类服务的状态管理并不轻松、需要对服务的开启/关闭进行妥善管理、特别是在多线程环境下尤为 阅读全文

posted @ 2019-12-11 13:47 木西-Muxy 阅读(1440) 评论(0) 推荐(0)

[Google Guava] 8-区间

摘要: 原文链接 译文链接 译文:沈义扬 范例 1 List scores; 2 Iterable belowMedian =Iterables.filter(scores,Range.lessThan(median)); 3 ... 4 Range validGrades = Range.closed(1 阅读全文

posted @ 2019-12-11 13:44 木西-Muxy 阅读(330) 评论(0) 推荐(0)

[Google Guava] 7-原生类型

摘要: 原文链接 译文链接 译者:沈义扬,校对:丁一 概述 Java的原生类型就是指基本类型:byte、short、int、long、float、double、char和boolean。 在从Guava查找原生类型方法之前,可以先查查Arrays类,或者对应的基础类型包装类,如Integer。 原生类型不能 阅读全文

posted @ 2019-12-11 11:14 木西-Muxy 阅读(242) 评论(0) 推荐(0)

[Google Guava] 6-字符串处理:分割,连接,填充

摘要: 原文链接 译文链接 译者:沈义扬,校对:丁一 连接器[Joiner] 用分隔符把字符串序列连接起来也可能会遇上不必要的麻烦。如果字符串序列中含有null,那连接操作会更难。Fluent风格的Joiner让连接字符串更简单。 1 Joiner joiner = Joiner.on("; ").skip 阅读全文

posted @ 2019-12-11 11:12 木西-Muxy 阅读(298) 评论(0) 推荐(0)

google Guava包的ListenableFuture解析

摘要: 原文地址 译者:罗立树 校对:方腾飞 并发编程是一个难题,但是一个强大而简单的抽象可以显著的简化并发的编写。出于这样的考虑,Guava 定义了 ListenableFuture接口并继承了JDK concurrent包下的Future 接口。 我们强烈地建议你在代码中多使用ListenableFut 阅读全文

posted @ 2019-12-11 10:51 木西-Muxy 阅读(462) 评论(0) 推荐(0)

导航