容器(docker)中运行java需关注的几个小问题

简介

  • container: 资源隔离、平台无关, 限制cpu、mem等资源
  • Java: 平台无关、Write once, run anywhere、WORA
      java不知道自己运行在container里,以为它看到的资源都能用。结果:java工作在资源充足的
    

阅读全文

如何优雅的使用和理解线程池

前言

平时接触过多线程开发的童鞋应该都或多或少了解过线程池,之前发布的《阿里巴巴 Java 手册》里也有一条:

可见线程池的重要性。

简单来说使用线程池有以下几个目的:

  • 线程是稀缺资源,不能频繁的创建。
  • 解耦作用;线程的创建于执行完全分开,方便维护。
  • 应当将其放入一个池子中,可以给其他任务进行复用。

阅读全文

《Python3.6官方文档》– 第12章 虚拟环境和包

原文链接   译者:Carvendy

12. 虚拟环境和包

12.1 介绍

  Python应用程序总会使用一些包和模块,它们离不开标准库。应用程序需要指定标准库的版本,因为应用程序可能需要避免一个已经修复的bug,或者是应用程序重写了具体版本标准库的接口的实现。

  这意味着也许不可能需要给每一个应用程序安装它所需要的的版本。如果应用A需要1.0的部分模块,而应用B需要版本2.0的,这样是会产生冲突的,并且只安装1.0或者2.0版本将会使得另外一个应用无法正常运行。

  解决这个问题的方法就创建虚拟环境,它是一个自包含目录树,里面安装有Python各个版本,一个数字一个包版本地区分开来。

  不同的应用程序可以使用不同的环境变量。为了解决前面的冲突,应用程序A可以有自己的虚拟环境并使用版本1.0,同时应用程序B可以使用虚拟环境的版本2.0。如果应用程序B需要升级到版本3.0,也一样不会对应用程序的环境影响。

阅读全文

《Python3.6官方文档》– 第13章 接下来

原文连接

13 章 接下来

   读到个别的指南,也许你已经迫不及待想使用python了——你渴望使用Python来解决现实发生的问题。你应该从何学习得更多呢?

  指南是Python文档的一部分。其他的文档如下: 阅读全文

HashMap? ConcurrentHashMap? 相信看完这篇没人能难住你!

前言

Map 这样的 Key Value 在软件开发中是非常经典的结构,常用于在内存中存放数据。

本篇主要想讨论 ConcurrentHashMap 这样一个并发容器,在正式开始之前我觉得有必要谈谈 HashMap,没有它就不会有后面的 ConcurrentHashMap。

阅读全文

Raft论文读书笔记

Raft是当前分布式领域最重要的一致性算法之一,今天我们就来好好研究研究这个算法的[论文][1], 还有对应[网站][2], [动画][3], 不想看英文的也有中文的[翻译][4],所以我这边就不翻译了,主要还是记录一下论文重点和自己的心得。

阅读全文

《Python3.6官方文档》– 第二章 使用python解释器

2.1. 调用解释器

Python解释器一般安装在 /usr/local/bin/python3.6 目录下,将 /usr/local/bin 目录加入到Unix Shell脚本的命令搜索目录下,这样便可以通过输入以下shell命令已启动它[1]

python3.7

既然解释器的存放目录是安装时可选的,那么其他位置也是可以的;请与python的安装用户或系统管理员确认。(/usr/local/python是常用可选目录)

在Windows系统上,python一般安装到 C:\Python36 目录下,你同样可以再安装时选择其他目录。将次目录添加到Path环境变量,你可以通过在DOS命令窗体输入以下命令:

阅读全文

你真的了解延时队列吗(一)

 

1 使用场景

  • 关闭空闲连接。服务器中,有很多客户端的连接,空闲一段时间之后需要关闭之。
  • 清理过期数据业务上。比如缓存中的对象,超过了空闲时间,需要从缓存中移出。
  • 任务超时处理。在网络协议滑动窗口请求应答式交互时,处理超时未响应的请求。
  • 下单之后如果三十分钟之内没有付款就自动取消订单。
  • 订餐通知:下单成功后60s之后给用户发送短信通知。
  • 当订单一直处于未支付状态时,如何及时的关闭订单,并退还库存?
  • 如何定期检查处于退款状态的订单是否已经退款成功?
  • 新创建店铺,N天内没有上传商品,系统如何知道该信息,并发送激活短信?
  • 定时任务调度:使用DelayQueue保存当天将会执行的任务和执行时间,一旦从DelayQueue中获取到任务就开始执行。

阅读全文

《Python3.6官方文档》– 第十章

操作系统接口

os 模块提供一系列与操作系统进行交互的函数。

import os
os.getcwd()      # 返回当前工作目录
os.chdir('/server/accesslogs')   #  修改当前工作目录
os.system('mkdir today')   # 在系统shell中运行mkdir命令

确保使用 import os 而不是 from os import * .它将导致os.open()覆盖隐式内建函数open(),它们是完全不同的.

阅读全文

《以太坊官方文档》Ethereum Clients—Choosing a client

翻译:Ethereum ClientsChoosing a client

在这个项目的早期,就已经有多种跨多种不同操作系统的客户端实现。客户端实现的多样性是整个以太系统的巨大胜利。这就让我们验证了(在黄页中指定的)协议是清晰的。这也为新的革新敞开了大门。这让我们保持诚实。但是,这样也会让用户非常困扰,因为这会导致没有一个通用的以太安装包可以提供给用户。

截止2016年9月,优秀的实现有以下几种:

阅读全文

《以太坊官方文档》什么是以太坊(What is Ethereum?)

什么是以太坊

以太坊是一个开放的区块链平台,他允许任何人构建和使用运行在区块链技术上的去中心化应用。与比特币相似,没有人可以控制或者拥有以太坊 – 以太坊是一项由世界各地人一起构建的开源项目。但是与比特币协议不同,以太坊设计得适应性强和灵活。在以太坊平台创建新应用很容易,使用以太坊Homestead release(以太坊第二版本),所有人可以安全地使用这些应用。

阅读全文

《Python官方文档》5.数据结构

数据结构

本章会更细节的讲一些你已经学过的东西,同时也会加一些新的内容。

阅读全文

Netty(二) 从线程模型的角度看 Netty 为什么是高性能的?

前言

在之前的 SpringBoot 整合长连接心跳机制 一文中认识了 Netty。

但其实只是能用,为什么要用 Netty?它有哪些优势?这些其实都不清楚。

本文就来从历史源头说道说道。

阅读全文

初谈架构

工作了很多年,架构也做了五六年。今天突然在思考什么是架构,为什么要做架构,架构怎么来做,架构到底是设计的还是演进的?以下就这些思考做一下总结,其中不当之处欢迎不吝赐教。

1.什么是架构?

个人认为架构是服务于商业目标的,商业目标规范了一定的业务需求,性能需求,安全需求,扩展性需求及其他的非功能性需求。在设计架构的过程中,需要根据对应的需求去决定使用什么样的技术,使用什么样的技术需要根据团队现有的技能水平及当前技术发展的阶段去进行取舍。架构就是根据明确的商业目标进行合理的规划,对不同的方案进行抉择,解决问题的过程。

阅读全文

Guava 源码分析(Cache 原理【二阶段】)

前言

在上文「Guava 源码分析(Cache 原理)」中分析了 Guava Cache 的相关原理。

文末提到了回收机制、移除时间通知等内容,许多朋友也挺感兴趣,这次就这两个内容再来分析分析。

在开始之前先补习下 Java 自带的两个特性,Guava 中都有具体的应用。

阅读全文

return top