Openresty + Lua 实现灰度发布 Nginx 1. 创建Lua脚本vi /home/services/openresty/conf.d/toggle.lua 1234567891011121314151617181920212223-- 引入json解析local cjson = require "cjson"-- 获取请求头JSONlocal comm_params = ngx.req.get_...
Redis + Lua 解决高并发Redis计数越界值 Lua Lua脚本的好处: 减少网络开销,可以将多个请求通过脚本的形式一次发送,减少网络时延。 原子操作,redis 会将整个脚本作为一个整体执行,中间不会被其他命令插入。因此在编写脚本的过程中无需担心会出现竞态条件,无需使用事务。 复用,客户端发送的脚本会永久存在redis中,这样,其他客户端可以复用这一脚本而不需要使用代码完成相同的逻辑。 redis会将整个脚本作为一个整体...
Gradle 多项目构建 Gradle Gradle Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,目前也增加了基于Kotlin语言的kotlin-based DSL,抛弃了基于XML的各种繁琐配置。 面向Java应用为主。当前其支持的语言限于Java、Groo...
Spring Boot Sharding-JDBC 读写分离分表分库 Sharding JDBC 一. Sharding-JDBC 简介ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(计划中)这3款相互独立的产品组成。 他们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如Java同构、异构语言、容器、云原生等各种多样化的应用场景...
Typora + Python 图片上传 Typora 一. 介绍 本章主要讲述的是通过Typora + Python 脚本来实现Typora 工具编辑Markdown文件时的图片上传处理。通过Docker部署Nginx,MinIO容器,Nginx代理访问MinIO资源。 效果如下: 二. 相关脚本 以下是相关服务及脚本实例。 1. Python3123456789101112131415161718192...
Centos7 uwsgi Python3 Flask 部署 Flask 最简单的部署Python项目操作,部署比较简单这块也不做详细描述了。基本上都是常规命令~ ~ 这些东西基本上都可以灵活运用到其他地方,不仅仅只适用于此项目~ ~ 1 更换Centos源由于系统默认使用国外的源更新软件时太慢,所以更换为国内的更新源。 阿里云的源 1[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Bas...
设计模式之概述 设计模式 软件设计模式的概念与意义有关软件设计模式的定义很多,有些从模式的特点来说明,有些从模式的作用来说明。本教程给出的定义是大多数学者公认的,从以下两个方面来说明。 1. 软件设计模式的概念软件设计模式(Software Design Pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。它描述了在软件设计过程中的一些不断重复发生的...
设计模式之七大原则 设计模式 设计模式常用七大原则SRP = 单一职责原则 (Single Responsibility Principle) OCP = 开放闭合原则 (Opened Closed Principle) LSP = 里氏替换原则 (Liscov Substitution Principle) ISP = 接口隔离原则 (Interface Segregation Principle)...
StarUML 4.0 破解 StarUML 一. 介绍StarUML是一款开放源码的UML开发工具,是由韩国公司主导开发出来的产品,可以直接到StarUML网站下载。StarUML是一个开源项目之一发展快、灵活、可扩展性强(zj). ● 可绘制9款UML图:用例图、类图、序列图、状态图、活动图、通信图、构件图、部署图以及复合结构图等。 ● 完全免费:StarUML是一套开放源码的软件,不仅免费自由下载,连代码都免费...
JVM 配置参数及GC收集器的日志解析 JVM 接下来将深入了解学习JVM,以简单有效的方式整理相关知识,如有本人有错误见解之处,敬请留言告知!谢谢~~注:IDEA如何配置打印GC日志,大家可以Google、百度一下。 一. 参数分类根据JVM参数开头可以区分参数类型,共三类:“-”、“-X”、“-XX”, 标准参数(-):所有的JVM实现都必须实现这些参数的功能,而且向后兼容; 例子:-verbose:class...