自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(78)
  • 资源 (1)
  • 收藏
  • 关注

原创 docker-compose 部署方式

优势jar包替换后可直接dockerrestart重启.可用于独立化快捷部署.劣势docker-compose指定部署哪些工程,不能随意指定.

2022-07-20 15:00:15 229 1

原创 安全的分布式唯一ID, 雪花算法时间回拨问题

本次我们讨论下Twitter的Snowflake算法,它给每台机器分配一个唯一标识,然后通过时间戳+标识+自增实现全局唯一ID。这种方式好处在于ID生成算法完全是一个无状态机,无网络调用,高效可靠。如果系统时间回拨, 会造成ID冲突。

2022-02-15 10:54:12 1114

转载 记一次centos下docker容器启动正常, 网络不通的解决方法

表现是:docker主机内部网络正常,与其它主机的连接失效,其它主机不能连接docker主机上映射的端口,docker内部也无法连接外部主机。执行docker info,可以看到一些警告。可在不关闭容器的情况下修复:sysctl -wnet.bridge.bridge-nf-call-ip6tables = 1sysctl -wnet.bridge.bridge-nf-call-iptables = 1sysctl -wnet.bridge.bridge-nf-call-arpt...

2021-09-21 20:46:30 891

原创 跨系统传递 链路traceId(日志)

微服务系统日志使用ELK采集. 但单个请求会跨多个系统,mq等, 此时需要一个链路traceId, 能够一次查询还原出整一个请求的完整路径日志.<?xml version="1.0" encoding="UTF-8" ?><configuration> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder>

2021-08-20 09:40:08 520

原创 jenkins部署nodeJs前端工程至阿里OSS

cd /var/lib/jenkins/workspace/jenkinsJob名chmod 777 /var/lib/jenkins/workspace/jenkinsJob名/node -v #检测node版本(此条命令非必要)npm -v #检测npm版本(此条命令非必要)npm config set registry https://registry.npm.taobao.org #把npm源设置为淘宝源(这个你懂的)npm config set sass_binary_site=h...

2020-10-21 14:57:30 393

原创 docker日志采集elk efk fluentd采集

第一步: Create docker-compose.yml创建docker-合成.yml对于Docker Compose。Docker Compose是一个用于定义和运行多容器Docker应用程序的工具。通过下面的YAML文件,您可以通过一个命令创建和启动所有服务(在本例中是Apache、Fluentd、Elasticsearch、Kibana):version: '3'services: fluentd: build: ./fluentd volumes: - ./

2020-09-25 16:05:47 459 1

原创 Nacos配置中心注册中心SpringCloud环境隔离

pom.xml配置添加Spring Cloud Alibaba 2.2.1.RELEASE对应Spring Boot 2.2.5.RELEASE <!-- springcloud cloud alibaba 2.2.1.RELEASE --> <dependency> <groupId>com.alibaba.cloud</groupId>

2020-08-13 16:18:17 472 1

原创 Docker内部署单机nacos使用mysql8.0存储

Docker内部署单机nacos使用mysql8.0存储Docker下载镜像创建数据库创建nacos容器1创建nacos容器2修改容器Docker下载镜像docker pull nacos/nacos-server笔者下载时已经到1.3.2 其中mysqljar已经更新至8.0.16创建数据库create database nacos_confighttps://github.com/alibaba/nacos/blob/master/config/src/main/resources/META

2020-08-11 15:42:39 1039

原创 skywalking微服务全链路追踪查询

skywalking是什么,有什么用?Skywalking 是一个APM系统,即应用性能监控系统,为微服务架构和云原生架构系统设计。它通过探针自动收集所需的指标,并进行分布式追踪。通过这些调用链路以及指标,Skywalking APM会感知应用间关系和服务间关系,并进行相应的指标统计。目前支持链路追踪和监控应用组件如下,基本涵盖主流框架和容器,如国产PRC Dubbo和motan等,国际化的spring boot,spring cloud都支持了skywalaking总体架构分为三部分skywalk

2020-08-03 16:38:28 1576

原创 SpringCloud Open feign 使用okhttp 优化

<!--web 模块 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <!--排除tomcat依赖 --

2020-07-15 14:05:21 8336 2

原创 MacOS使用iTerm2保存ssh账号密码自动ssh登录

iTerm保存账号密码自动ssh登录在此目录下新建iterm2ssh.sh文件/usr/local/bin/iterm2ssh.sh#!/usr/bin/expectset timeout 30spawn ssh -p [lindex $argv 0] [lindex $argv 1]@[lindex $argv 2]expect { "(yes/no)?" {send "yes\n";exp_continue} "password:"

2020-07-14 10:03:39 912 1

原创 jenkins部署springboot多模块项目至docker容器运行

docker安装jenkins,war包安装jenkinsjenkins部署项目至tomcatjenkins下载Git Parameter插件clean package -U -pl ${module} -am -Dmaven.test.skip=true至此git分支、maven子模块可选的项目已经可以编译成功

2020-07-07 15:08:52 1269

原创 docker安装jenkins,war包下载,配置国内插件镜像

下载jenkins镜像docker pull jenkins/jenkins:lts创建外部挂载目录,目录自定义mkdir /Users/xxx/jenkins构建容器docker run -d -p 8000:8080 -p 50000:50000 -v /Users/xxx/jenkins:/var/jenkins_home --name jenkins --privileged=true -u root jenkins/jenkins:lts-p : 映射端口,宿主机端.

2020-06-09 11:05:08 1075

原创 Java并发volatile关键字

在并发编程中,我们通常会遇到以下三个问题原子性,可见性,有序性volatile 的特性保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。(实现可见性) 禁止进行指令重排序。(实现有序性) volatile 只能保证对单次读/写的原子性。i++ 这种操作不能保证原子性。可见性分析缓存一致性(MESI协议)内存...

2020-04-07 13:46:34 119

原创 Mysql锁

InnoDB可重复读隔离级别下如何避免幻读表象:快照读(阻塞读)-伪MVCC内在:next-key锁(行锁+gap锁)Gap锁如果where条件全部命中,则不会用gap锁,只会加记录锁如果where条件部分命中或者全不命中,则会加gap锁唯一索引查询结果全部命中,不加gap锁非唯一索引,如上图所示:间隙gap共有(-∞,3] (3,5] (5...

2020-04-06 12:46:20 187

原创 Mysql B+tree 及数据库索引

数据结构二叉查找树正常情况下时间复杂度是O(logn) O(logn),当数据增大n倍时,耗时增大logn倍(这里的log是以2为底的,比如,当数据增大256倍时,耗时只增大8倍,是比线性还要低的时间复杂度)。二分查找就是O(logn)的算法,每找一次排除一半的可能,256个数据中查找只要找8次就可以找到目标。最坏出现数据一边倒,时间复杂度是O(n)代表数据量增大几倍,耗时也增大几倍。...

2020-04-06 11:43:53 135

原创 Mysql事务隔离级别

ACID原子性:事务包含的操作要么全做,要么全不做一致性:结果一致隔离性:事务之间不能相互影响持久性:数据持久化mysql数据库,当且仅当引擎是InnoDB,才支持事务;1、隔离级别事务的隔离级别分为:未提交读(read uncommitted)、已提交读(read committed)、可重复读(repeatable read)、串行化(serializa...

2020-04-06 10:51:34 121

原创 synchronized底层实现原理

java对象头MonitorHotSpot虚拟机中对象在内存中的布局对象头(1)Mark Word实例数据 对齐填充http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/file/095e60e7fc8c/src/share/vm/runtime/objectMonitor.hpp ObjectMonitor() ...

2020-04-05 15:51:14 361

原创 Java线程的6种状态详解

public enum State { NEW, RUNNABLE, BLOCKED, WAITING, TIMED_WAITING, TERMINATED; }1.新建(NEW):新创建了一个线程对象。2.可运行(RUNNABLE):线程对象创建后,其他线程(比如main线程)调...

2020-04-05 12:42:31 212

原创 sleep与wait、notify和区别

基本的差别:sleep是Thread类的方法,wait是Object类的定义的方法sleep方法可以在任何地方使用wait方法只能在synchronized方法或 synchronized块中使用最主要的本质区别thread.sleep只会让出cpu不会导致锁行为的改变object.wait不仅让出cpu,还会释放已经占有的同步资源锁notify和notifyal...

2020-04-04 20:34:30 1036

原创 Java不同版本的intern()方法区别

Java不同版本的intern()方法区别String s = new String(“a”);s.intern();JDK6:当调用intern方法时,如果字符串常量池先前已创建出该字符串对象,则返回池中的该字符串的引用。否则,将此字符串对象添加到字符池中,并且返回该字符串对象的引用。JDK6+:当调用intern方法时,如果字符串常量池先前已创建出该字符串对象,则返回池中...

2020-04-02 17:57:29 273

原创 Java1.8 JVM 元空间(MetaSpace)与永久代(PermGen )对比

元空间(MetaSpace)与永久代(PermGen )的区别元空间使用本地内存,而永久代使用的是jvm的内存元空间(MetaSpace)相比永久代(PermGen )的优势字符常量池在永久代中,容易出现性能问题和内存溢出类和方法的信息大小难以确定,给永久代的大小指定带来困难永久代会为GC带来不必要的复发性方便HotSpot与其他JVM如Jrockit的集成...

2020-04-02 14:08:33 268

原创 loadClass和forName的区别

loadClass和forName的区别loadClasspackage java.lang;public abstract class ClassLoader { public Class<?> loadClass(String name) throws ClassNotFoundException { return loadClass(name, f...

2020-04-01 19:50:16 132

转载 tomcat服务莫名其妙停止

这里只讲述遇到的一种原因:1. 服务停止最初以为是jvm导致的,但是在/var/log并没有找到jvm致命错误日志(hs_err_pid.log)又排除了GC情况,使用 jstat -gc pid 5000查看也没发现问题最后还是从日志入手原因:日志中存在不明进程销毁日志,如下: 29-Nov-2018 13:28:53.355 INFO [main] org.apac...

2018-11-30 10:09:18 7139

原创 setAccessible(true)安全检查不通过 Bean转Map

setAccessible(true)安全检查不通过 Bean转Map public static Map&lt;String, Object&gt; beanToMap(Object object) throws Exception { Map&lt;String, Object&gt; map = new HashMap&lt;String, Object&gt;(); Cla...

2018-11-03 15:00:10 4426 1

原创 RSA非对称加密

概念在说 RSA 之前,首先聊聊什么是非对称加密。在讲对称加密的时候,就曾经说过,对称加密算法在加密和解密时使用的是同一个秘钥,加解密双方必须使用同一个密钥才能进行正常的沟通。而非对称加密则不然,非对称加密算法需要两个密钥来进行加密和解密,分别是公钥和私钥。需要注意的一点,这个公钥和私钥必须是一对的,如果用公钥对数据进行加密,那么只有使用对应的私钥才能解密,反之亦然。由于加密和解密使用的是两个不同...

2018-05-23 17:12:41 458

转载 java的多个excel打包成zip下载 poi

/** * 导出Excel功能 * @param sql 获取数据要执行的SQL语句 * @param params SQL语句的参数 * @param column Excel表头,如果有扩展属性的话,可定义为:户号,户名,营业区域$ALL_BS_INFO * @param excelRowsLimit 没个Excel单元格的条...

2018-05-18 17:10:18 3831

原创 mysql竖表查询结果展示为横表结构

方案一:SELECT SUM(IG_LJ_Regist_driver_dd) as IG_LJ_Regist_driver_dd,-- 司机会员数SUM(IG_LJ_GMV_mm) as IG_LJ_GMV_mm-- 陆鲸GMVFROM (SELECTdataTime,metric_value as IG_LJ_Regist_driver_dd,0 as IG_LJ_GMV...

2018-05-11 11:28:07 3770 1

原创 Java jvm 虚拟机 子类调用父类,祖类方法

public class TestGrandFather { class GrandFather{ public void thinking(){ System.out.println("i am grandfather"); } } class Father extends GrandFather{ public void thinking(){ System...

2018-04-17 17:00:27 1067 1

转载 java 防止xss攻击

这里说下最近项目中我们的解决方案,主要用到commons-lang3-3.1.jar这个包的org.apache.commons.lang3.StringEscapeUtils.escapeHtml4()这个方法。解决过程主要在用户输入和显示输出两步:在输入时对特殊字符如&lt;&gt;" ' &amp; 转义,在输出时用jstl的fn:excapeXml("fff")方法。其中,输入时的过滤是用...

2018-03-29 10:02:55 977

原创 redis+lua 实现分布式令牌桶,高并发限流

方案一、在提供给业务方的Controller层进行控制。 1、使用guava提供工具库里的RateLimiter类(内部采用令牌捅算法实现)进行限流 2、使用Java自带delayqueue的延迟队列实现(编码过程相对麻烦,此处省略代码) 3、使用Redis实现,存储两个key,一个用于计时,一个用于计数。请求每调用一次,计数器增加1,若在计时器时间内计数器未超过阈值,则可以处理任务 方...

2018-03-26 16:42:29 33225 13

原创 Google Guava-RateLimiter类令牌桶限流

RateLimiter 从概念上来讲,速率限制器会在可配置的速率下分配许可证。如果必要的话,每个acquire() 会阻塞当前线程直到许可证可用后获取该许可证。一旦获取到许可证,不需要再释放许可证。校对注:RateLimiter使用的是一种叫令牌桶的流控算法,RateLimiter会按照一定的频率往桶里扔令牌,线程拿到令牌才能执行,比如你希望自己的应用程序QPS不要超过1000,那么RateL...

2018-03-21 17:19:59 2402

转载 (转)Lock和synchronized比较详解

今天看了并发实践这本书的ReentantLock这章,感觉对ReentantLock还是不够熟悉,有许多疑问,所有在网上找了很多文章看了一下,总体说的不够详细,重点和焦点问题没有谈到,但这篇文章相当不错,说的很全面,主要的重点都说到了,所有在这里转载了这篇文章,注意红色字体。  在上一篇文章中我们讲到了如何使用关键字synchronized来实现同步访问。本文我们继续来探讨这个问题,从Java 5...

2018-03-16 14:48:39 128

原创 JDK1.8HashMap源码分析

基本属性/** * Map初始默认大小 16 */static final int DEFAULT_INITIAL_CAPACITY = 1 &lt;&lt; 4; // aka 16/** * 自定义大小时的最大值 */static final int MAXIMUM_CAPACITY = 1 &lt;&lt; 30;/** * 加载因子 */static final ...

2018-03-15 15:26:35 157

原创 ExcelExportUtiler excel工具类

public class ExcelExportUtiler { private static Log log = LogFactory.getLog(ExcelExportUtiler.class); /*工作薄*/ private HSSFWorkbook workbook; /*默认格子宽度*/ private int defaultColumnWidth =

2017-11-10 17:13:45 6975

原创 Disruptor多线程并发构架

Martin Fowler在自己网站上写了一篇LMAX架构的文章,在文章中他介绍了LMAX是一种新型零售金融交易平台,它能够以很低的延迟产生大量交易。这个系统是建立在JVM平台上,其核心是一个业务逻辑处理器,它能够在一个线程里每秒处理6百万订单。业务逻辑处理器完全是运行在内存中,使用事件源驱动方式。业务逻辑处理器的核心是Disruptor。Disruptor它是一个开源的并发框架,并获得20

2017-05-26 15:09:51 5532 1

原创 cpu load过高问题分析和解决

基本思维是有东西占用的CPU_QUEUE,查看一下进程的状态。top -Hshift+o =选择w (按照状态排序)**1. 首先排查哪些进程cpu占用率高。 通过命令 ps ux 2. 查看对应Java进程的每个线程的CPU占用率。通过命令:ps -Lp 122427 cu 3. 追踪线程内部,查看load过高原因。通过命令:jstack pid。 以线程jpid为例,现将jpid转换

2017-04-07 17:29:22 1074

原创 java并发2

7.x JDK多任务执行框架8.x Concurrent.util工具类详细讲解和使用 CyclicBarrier使用: 假设有只有一个场景:每个线程代表一个跑步运动员,当运动员都准备好后,才一起出发,只要有一个人没准备好,大家都等待。示例: CountDownLacth使用: 他经常用于监听某些初始化操作,等初始化执行完毕后,通知主线程继续工作。public class UseCountD

2017-04-07 17:26:28 320

原创 自定义线程池Executors

在使用有界队列时,若有新的任务需要执行,如果线程池实际线程数小于corePoolSize,则优先创建线程,若大于corePoolSize,则会将任务加入队列,若队列已满,则在总线程数不大于maximumPoolSize的前提下,创建新的线程,若线程数大于maxmumPoolSize,则执行拒绝策略。或其他自定义方式。无界的任务队列时:LinkedBlockingQueue.与有界队列相比,除非系统资

2017-03-23 14:42:33 668

原创 Master-Worker模式 多线程设计模式

Master-Worker模式 多线程设计模式 常用的并行计算模式。它的核心思想是系统由两类进程协作工作:Master-Worker进程。Master负责接收和分配任务,Worker负责处理子任务。当各个Worker子进程处理完成后,会将结果返回给Master,由master做归纳和总结。大任务分解小任务,并行执行。 public class Main { public static vo

2017-03-14 17:17:04 698

eclipsek 中文包

eclipsek 中文包 解压后直接直接覆盖 支持Eclipse IDE for Java EE Developers

2014-09-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除