14 CodingSir

尚未进行身份认证

光荣的程序员

等级
TA的排名 29

使用Nginx实现灰度发布

灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。灰度发布常见一般有三种方式: Nginx+LUA方式 根据Cookie实现灰度发布...

2019-12-05 09:10:30

Nginx实现灰度发布的功能

1. 对URL进行单独的过滤发布upstream A { ip_hash; server 10.0.XX.XX:9000; server 10.0.XX.XX:9010; }upstream B { #server 10.0.5.76:9000; server 10.0.5.76:9010;}serve...

2019-12-05 09:04:55

教你画架构图,看一次就会了

当我们想用一张或几张图来描述我们的系统时,是不是经常遇到以下情况: 对着画布无从下手、删了又来? 用一张图描述我的系统,并且让产品、运营、开发都能看明白? 画了一半的图还不清楚受众是谁? 画出来的图到底是产品图功能图还是技术图又或是大杂烩? 图上的框框有点少是不是要找点儿框框加进来? 布局怎么画都不满意…… 如果有同样的困惑,...

2019-11-22 14:51:07

java中随机生成字符串的方法(三种)

1、生成的字符串每个位置都有可能是str中的一个字母或数字,需要导入的包是import java.util.Random;//length用户要求产生字符串的长度 public static String getRandomString(int length){ String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTU...

2019-11-15 11:10:13

三个线程循环输出1,2,3,试用场景:并发的分工协作

package com.company.lyh;import com.sun.corba.se.spi.copyobject.CopyobjectDefaults;import java.util.concurrent.Semaphore;import java.util.concurrent.locks.Condition;import java.util.concurrent.l...

2019-11-11 17:23:57

如何确保三个线程顺序执行

场景:有三个线程t1、t2、t3。确保三个线程t1执行完后t2执行,t2执行完成后t3执行。1、thread.Join把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程。比如在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B 1 2 3 4 5 6 7 8 9...

2019-11-11 16:12:49

多线程:保证三个线程依次按顺序执行?newSingleThreadExecutor!!!

newSingleThreadExecutor 这个线程池,保证线程里面的任务依次执行,这让我发现了新大陆,立马实践了一下,发现不负所望;public class TestJoin { public static void main(String[] args) throws InterruptedException { final Thread t1 = new ...

2019-11-11 15:22:13

两个线程如何交替执行,一个输出偶数一个输出奇数?

大部分都会使用 synchronized 来实现,楼主今天带来另外两种优化实现,让你面试的时候,傲视群雄!synchronized实现classThreadPrintDemo2{publicstaticvoidmain(String[] args){finalThreadPrintDemo2 demo2 =newThread...

2019-11-11 11:08:39

Prometheus VS InfluxDB

前言除了传统的监控系统如 Nagios,Zabbix,Sensu 以外,基于时间序列数据库的监控系统随着微服务的兴起越来越受欢迎,比如 Prometheus,比如 InfluxDB。gtt 也尝试了一下这两个系统,希望能找到两者的差别,为以后选型提供一些帮助。首先,说道时间序列数据库不得不说老牌的 rrdtools 和graphite,这些经典老系统工作的非常好,除了有人嫌弃它们在巨大规...

2019-10-15 08:47:27

时序性数据库Prometheus

Prometheus 简介Prometheus 是一套开源的系统监控报警框架。它启发于 Google 的 borgmon 监控系统,由工作在 SoundCloud 的 google 前员工在 2012 年创建,作为社区开源项目进行开发,并于 2015 年正式发布。2016 年,Prometheus 正式加入 Cloud Native Computing Foundation,成为受欢迎度仅...

2019-09-16 15:25:38

如何利用JClassLib修改.class文件

最近在学习逆向分析和反编译,无意之中了解到了JClassLib。JClassLib不但是一个字节码阅读器而且还包含一个类库允许开发者读取,修改,写入Java Class文件与字节码。其他的用途我就不说了,先看一下效果。第一步、准备下载工具,一个是jd-gui,阅读jar包和.class源码的工具,jclasslib就修改.class文件的包下载地址第二步、示范1、比如说这个就是原来的...

2019-09-11 15:56:51

Nacos篇五 - Nacos集群(Linux下standalone模式和cluster模式)

Nacos支持三种部署模式单机模式 - 用于测试和单机试用。集群模式 - 用于生产环境,确保高可用。多集群模式 - 用于多数据中心场景。注:本文已Linux CentOS7系统为讲述如何部署单机模式(standalone)和集群模式(cluster);(虚拟机使用VMware)老规矩环境准备请确保是在环境中安装使用:64 bit OS Linux/Unix/Mac,推荐使用Li...

2019-09-03 11:06:39

maven搭建私有仓库过程记录

一、下载mavenhttps://maven.apache.org/download.cgi二、下载nexus百度网盘地址:https://pan.baidu.com/s/1hr4yG0c三、安装maven1.1 将文件解压到D:\apache-maven-3.5.4目录下:1.2 新建环境变量MAVEN_H...

2019-08-14 15:51:46

Java GUI编程中AWT/swing/SWT的优缺点

AWT  AWT是Abstract Window Toolkit(抽象窗口工具包)的缩写,是SUN专门针对JavaGUI编程提供的最早的也是最初的开发工具包,用来建立和设置Java图形用户界面,这个工具包提供了一套与本地图形界面交互的接口。AWT 中的图形函数与操作系统所提供的图形函数之间有着一一对应的关系(peers)。也就是说,当我们利用 AWT 来构件图形用户界面的时候,实际上是在利用...

2019-07-31 11:13:20

javaFX的几个新特性,让swing彻底过时

这是专栏第一篇非Vert.x相关的文章,既然是真全栈,那就要拿出全栈的样子来,从GUI到数据库,从App到NoSQL,我们都要会,而不仅仅是Vert.x,当然Vert.x很好,只是挨踢世界这么大,总有Vert.x覆盖不到的地方,比如今天要说的JavaFX。首先声明,Java的GUI曾经是最弱的一环,毋庸置疑,而且历史上因为跟M$的斗争,导致Java失去了Desktop发展的最佳时间点,即便...

2019-07-30 16:28:53

SonarQube使用介绍

SonarQube 是一个开源的代码分析平台, 用来持续分析和评测项目源代码的质量。 通过SonarQube我们可以检测出项目中重复代码, 潜在bug, 代码规范,安全性漏洞等问题, 并通过SonarQube web UI展示出来。1.SonarQube扫描方法Jenkins中调用通过jenkins插件调用sonarScanner或使用Maven、Gradle等内置扫描器依据...

2019-07-26 15:39:10

Sonarqube使用简介 IDE代码扫描SonarLint插件

注:这里只做简单介绍,后续更新详细配置过程1.SonarLint插件介绍基于IDEA/Eclipse/VisualStudio等开发工具的即时代码扫描工具同时SonarLint能够通过链接SonarQube同步关联项目扫描规则,实现同一项目在开发和测试两个阶段统一规范,使代码问题在在开发阶段能够得到重视和处理,从而减少后续开发、集成、测试、发布各阶段出现严重质量问题的风险。2...

2019-07-26 15:38:41

apache bench进行GET/POST压力测试

Apache Bench是Apache自带的压力测试工具,选购主机的时候,可以利用该工具模拟网站的连接数,测试在高访问量下,服务器的相应速度。这个工具返回的最有用的信息就是服务器每秒能够处理的请求次数(RPS),不过由于测试的页面不同,RPS相差会很大,静态页面的RPS大于动态页面,页面体积越小,RPS越大。所以,RPS是相对的,在选择主机的时候,可以使用同一个页面进行测试,这样得到的数据相对...

2019-07-26 14:27:26

Mycat水平拆分之十种分片规则

水平切分分片实现 配置schema.xml 在同一个mysql数据库中,创建了三个数据库 testdb1,testdb2,testdb3。并在每个库中都创建了user表 <?xml version="1.0"?><!DOCTYPE mycat:schema SYSTEM "schema.dtd"><mycat:schema xmlns:mycat...

2019-07-25 15:18:33

将 Shp 文件转换为 geojson 加载到 echarts 使用

一般情况下,我们的功能需求并不是要整个地图来展示,也许只是需要某一个市或地区的一个形状来制作出一个地图效果,这个时候其实使用 Echarts 地图是一个不错的选择。由于Echarts 官方下架了地图数据的下载,所以可以采用自己制作的方式来满足需求。shp文件准备shp文件为地图矢量文件,使用ArcMap给shp文件的属性表中添加 name 属性,因为Echarts 是通过 name 属...

2019-07-25 09:23:32

查看更多

勋章 我的勋章
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。