01 2021 档案
摘要:介绍: APScheduler的全称是Advanced Python Scheduler。它是一个轻量级的 Python 定时任务调度框架。APScheduler 支持三种调度任务:固定时间间隔,固定时间点(日期),Linux 下的 Crontab 命令。同时,它还支持异步执行、后台执行调度任务。
阅读全文
摘要:前言 在实践中,自己会遇到2个容器之间互相访问通信的问题,这个时候就用到了docker run --link选项。自己也花了一段时间泡官网研究了--link的用法,把自己对--link的理解分享下。注意!docker官方已不推荐使用docker run --link来链接2个容器互相通信,随后的版本
阅读全文
摘要:随着业务的越发复杂,对软件系统的要求越来越高,这意味着我们需要随时掌控系统的运行情况。因此,对系统的实时监控以及可视化展示,就成了基础架构的必须能力。 这篇博客,介绍下开源的可视化套件grafana的安装及其功能特点。。。 官网地址:Grafana 官方文档:Grafana文档 环境:CentOS7
阅读全文
摘要:一、查看系统负荷 如果你的电脑很慢,你或许想查看一下,它的工作量是否太大了。 在Linux系统中,我们一般使用uptime命令查看(w命令和top命令也行)。(另外,它们在苹果公司的Mac电脑上也适用。) 你在终端窗口键入uptime,系统会返回一行信息。 这行信息的后半部分,显示"load ave
阅读全文
摘要:介绍 driver.js是一个网页端的用户操作分步引导操作,可以在整个页面上引导用户操作,用这种方式来引导用户在进入页面后的操作,以便于用户更快的熟悉系统功能! Github https://github.com/kamranahmedse/driver.js 特性 driver.js与所有主要浏览
阅读全文
摘要:1、new Thread的弊端 执行一个异步任务你还只是如下new Thread吗? new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub } }).start();
阅读全文
摘要:使用方法: 1.SynchronousQueue private static ExecutorService cachedThreadPool = new ThreadPoolExecutor(4, Runtime.getRuntime().availableProcessors() * 2, 0
阅读全文
摘要:在《阿里巴巴java开发手册》中指出了线程资源必须通过线程池提供,不允许在应用中自行显示的创建线程,这样一方面是线程的创建更加规范,可以合理控制开辟线程的数量;另一方面线程的细节管理交给线程池处理,优化了资源的开销。而线程池不允许使用Executors去创建,而要通过ThreadPoolExecut
阅读全文
摘要:简介 最近VScode发布了远程编程与调试的插件Remote Development,使用这个插件可以在很多情况下代替vim直接远程修改与调试服务器上的代码,同时具备代码高亮与补全功能,就和在本地使用VScode一样。终于不用在服务器端翻来覆去的配置vim插件了。 配置的过程很简单,本文介绍如何通过
阅读全文
摘要:官网:http://zlib.net/pigz/ 简单的说,Pigz就是支持并行压缩的gzip。Pigz默认用当前逻辑cpu个数来并发压缩,无法检测个数的话,则默认并发8个线程,也可以使用-p指定线程数。需要注意的是其CPU使用比较高。 安装:yum install pigz 使用介绍: Usage
阅读全文
摘要:对象存储服务可以用来存储各类文件,mall项目中的图片存储采用的是OSS,今天我们来讲下如何自己搭建一个对象存储服务来存储图片。 MinIO简介 MinIO 是一款基于Go语言的高性能对象存储服务,在Github上已有19K+Star。它采用了Apache License v2.0开源协议,非常适合
阅读全文
摘要:在实际开发过程中,增删改查操作都要涉及到请求参数的传递,今天这节就集中讲下在mybatis中传递参数的7中方法 单个参数的传递很简单没有什么好将的,这里主要说下多个参数的传递 1.第一种方式 匿名参数 顺序传递参数 controller @ApiOperation(value = "多个参数查询_匿
阅读全文
摘要:在上一章中,我们完善了我们的日志系统,用direct交换器替换了fanout交换器,使得我们可以有选择性地接收消息。尽管如此,仍然还有限制:不能基于多个标准进行路由。在我们的日志系统中,我们可能不仅希望根据日志等级订阅日志,还希望根据日志来源订阅日志。这个概念来自于unix工具syslog,它不仅可
阅读全文
摘要:在上一章中,我们构建了一个简单的日志系统,我们可以把消息广播给很多的消费者。在本章中我们将增加一个特性:我们可以订阅这些信息中的一些信息。例如,我们希望只将error级别的错误存储到硬盘中,同时可以将所有级别(error、info、warning等)的日志都打印在控制台上。 1、绑定(Binding
阅读全文
摘要:在上一章中,我们创建了一个工作队列,工作队列模式的设想是每一条消息只会被转发给一个消费者。本章将会讲解完全不一样的场景: 我们会把一个消息转发给多个消费者,这种模式称之为发布-订阅模式。 为了阐述这个模式,我们将会搭建一个简单的日志系统,它包含两种程序:一种发送日志消息,另一种接收并打印日志消息。在
阅读全文
摘要:在上一章的指南中,我们写了一个命名队列:生产者往该命名队列发送消息、消费从从该命名队列中消费消息。在本章中,我们将创建一个工作队列,用于在多个工作者之间分配耗时的任务。工作队列(即任务队列)的主要思想是避免立即执行那些需要等他们执行完成的资源密集型任务。相反,我们将任务安排在稍后完成。我们将任务封装
阅读全文
摘要:为什么要使用MQ消息中间件?它解决了什么问题?关于为什么要使用消息中间件?消息中间件是如何做到同步变异步、流量削锋、应用解耦的?网上已经有很多说明,我这里就不再说明了,读者可以参考(https://www.jianshu.com/p/2820561158c4)。我在接下来的RabbitMq系列博客里
阅读全文