- 博客(24)
- 收藏
- 关注
原创 ELK基础介绍
ELK是什么?ELK是E(Elasticsearch),L(LogStash),K(Kibana)的缩写,可以理解为一套分布式快速检索与展示的解决方案套装。按照what-why-how的三段论技术讲解方法论,本文主要是What阶段的介绍。Elasticsearch 的工作原理是什么?原始数据会从多个来源(包括日志、系统指标和网络应用程序)输入到 Elasticsearch 中。数据采集指在 Elasticsearch 中进行索引之前解析、标准化并充实这些原始数据的过程。这些数据在 Elast
2021-07-28 17:58:35
799
转载 什么是Service Mesh
原文链接:https://zhuanlan.zhihu.com/p/61901608Service Mesh作为下一代微服务技术的代名词,初出茅庐却深得人心一鸣惊人,大有一统微服务时代的趋势。那么到底什么是Service Mesh?一言以蔽之:Service Mesh是微服务时代的TCP协议。有了这样一个感性的初步认知,我们再来看到底什么是Service Mesh。提到Service Mesh,就不得不提微服务。根据维基百科的定义:微服务 (Microservices) 是一种.
2020-06-18 16:29:53
481
转载 Code Velocity-如何提高一个研发团队的“代码速度” ?(转)
转注:虽然道理都很容易明白,真正能落地下来并且推广跑顺真的是非常非常难的。用高频去打是非常好的策略,推荐给大家看下。同时转一句南门大佬的名言,IF IT HURTS, DO IT MORE OFTEN.------------------------------------------------阿里妹导读:Code Velocity(代码速度),体现了一个研发团队快速响应业务需求的...
2019-08-08 14:48:03
933
原创 Java异常类型及处理
前言:Java异常,大家都很熟悉。但是对于具体怎么分类的,JVM对其怎么处理的,代码中怎么处理的,应该怎么使用,底层怎么实现的等等,可能就会有些不是那么清晰。本文基于此详细捋一下异常类型,实现以及使用时应怎么注意。一、异常实现及分类1.先看下异常类的结构图上图可以简单展示一下异常类实现结构图,当然上图不是所有的异常,用户自己也可以自定义异常实现。上图已经足够帮我们解释和理解异常...
2018-09-21 10:54:18
127210
8
原创 java.util.ConcurrentModificationException 原因分析及解决方案
码代码的时候发现了这个异常,java.util.ConcurrentModificationException,倒是很熟悉,非线程安全的容器被非法修改了,具体什么原因呢,怎么避免呢,本文简单分析一下,这个小问题其实反映了对容器实现理解的不深刻。首先,本着从源头找问题的原则,贴一下错误代码:String str = "test";Iterator<Map.Entry<Stri...
2018-09-05 18:33:43
4628
原创 MySQL InnoDB与MyISAM的区别和使用场景
1. InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin和commit之间,组成一个事务;2. InnoDB支持外键,而MyISAM不支持。对一个包含外键的InnoDB表转为MYISAM会失败;3. InnoDB是聚集索引,数据文件是和索引绑在一起的,必须要有主键,通过主键索引效率很高...
2018-09-03 15:17:34
3191
原创 谈谈JVM GC 收集器
前言:目前已经发展到jdk11了。很多资料上的垃圾收集器还停留在1.7以前。本文基于收集器的发展路线,从前到后汇总和简单分析一下JVM垃圾收集器的roadmap。本文暂且从对内存区管理和回收特色方面分为分代收集和非分代两个part。 Part I、分代收集阶段一、新生代收集器1.Serial New这是最早的新生代收集器,也是jdk1.5之前默认的收集器,在GC log里可...
2018-08-30 20:20:24
6541
3
原创 PriorityQueue是否真正有序
PriorityQueue是jdk1.5开始提供的优先队列,是一个优先“有序”的队列。通过其定义我们能得到如下特点:1.元素有序,默认自然序,也就是数字默认是小的在队列头,字符串则按字典序排列,可以自定义comparator来自定义优先级2.非线程安全,如果要并发修改要使用java.util.concurrent.PriorityBlockingQueue3.PriorityQu...
2018-08-23 16:57:06
1927
1
转载 海量数据解决思路之Hash算法
一、概述 本文将粗略讲述一下Hash算法的概念特性,里边会结合分布式系统负载均衡实例对Hash的一致性做深入探讨。另外,探讨一下Hash算法在海量数据处理方案中的通用性。最后,从源代码出发,具体分析一下Hash算法在MapReduce框架的中的应用。二、Hash算法 Hash可以通过散列函数将任意长度的输入变成固定长度的输出,也可以将不同的输入映射成为相同的相同的输出,而且这些...
2018-08-22 19:09:37
5086
原创 prometheus+grafana+springboot2监控集成配置
前言本文基于设计开发一个应用功能监控项目的需求,其能在不入侵系统的情况下正常监控应用功能。调研之后选择了prometheus+grafana+springboot2的方案。本文基于此简单讲述一下这几个系统之间的配置、交互和使用。并从prometheus的功能,配置,使用,以及与dashboard和springboot/springcloud的集成等方面简单分析,对于各单独系统的安装不在本文讲述...
2018-08-15 20:37:44
27644
6
原创 java.awt.headless模式
最近在看springboot源码的时候看到启动过程中有这么一句:configureHeadlessProperty();private void configureHeadlessProperty() { System.setProperty(SYSTEM_PROPERTY_JAVA_AWT_HEADLESS, System.getProperty( SYSTEM_PROPE...
2018-08-13 17:44:51
16043
3
原创 CommandLineRunner、ApplicationRunner of SpringBoot
如果需要在容器启动的时候就开始执行一些内容。比如配置初始化等,SpringBoot提供的这个接口就是干这个的。同时,通过其源码发现,它还提供了另外一个有同样功能的接口叫ApplicationRunner。两者的区别在于所接受的参数类型不一样。CommandLineRunner的run方法定义如下:/** * Callback used to run the bean. * @pa...
2018-08-13 15:08:26
364
原创 Java浮点数除法,整数除得小数,指定小数位数
在Java中如果除运算符“/”,在不加任何限制的情况下,两个整数相除,得到的是整数,小数点后的被舍弃。但是有些场景下我们需要拿到除得的小数,还要指定位数的小数。这时候有以下处理方法:1.使用DecimalFormat来限定得到的小数位数 int pcm = 98; int fcm = 11; DecimalForma...
2018-08-13 14:10:30
12207
原创 ReentrantLock的lock(), tryLock(), tryLock(long timeout, TimeUnit unit), lockInterruptibly() 及使用场景示例
一直在用concurrent包里的东西,最近想研究一下个中细节,先从ReentrantLock提供的集中获取锁的方式开始吧。1.ReentrantLock简要介绍简单介绍一下ReentrantLock,可重入锁,互斥锁,提供了fair和unfair两种模式的锁。默认构造函数是unfair的锁,如果初始化时传入true的参数则会返回fair锁。所谓不公平就是在锁可获取时,不用考虑该锁队列是否...
2018-08-07 18:33:20
26847
2
原创 mysql中的编码方式utf8与utf8mb4
前言mysql中的utf8并不是真正的UTF-8编码,它只有3个字节来表示字符,如果有超过3个字节的字符,那么这种编码方式就表示不了,并且会抛错。这是为什么呢,当然是有历史原因的,后面详细介绍一下。一、mysql的utf8编码mysql的utf8编码能够表示Unicode的BMP标准面的所有字符,但是后来随着Unicode的扩展,总共有17个面,对于其他面的字符,包括 Emoji 表情...
2018-07-21 17:43:10
1540
原创 Unicode、UTF-8、ASCII等编码方式浅述
关于编码问题,虽然在开发中经常用到,但是对于各种编码方式的实现、相互之间的转换、在实际场景中的使用区别等方面并没有深刻的理解。今天针对Unicode、UTF-8、ASCII、ANSI、GB2312/GBK、ISO8859-1等编码方式做一些解释和说明。一、ASCII首先从最基础的ASCII码开始说起。计算机真正的内部实现上,任何字符都是0和1的组合,那么ASCII码是最早是上世纪60年代的...
2018-07-21 17:20:56
530
原创 springboot+gradle配置过程中遇到的一些小坑和解决记录
从spring转到springboot,配置过程中遇到了一些小问题,虽然都很快的解决了,还是记录一下吧,前车之鉴,以供所需。1.gradle打包遇到错误14:39:27.810 [INFO] [org.gradle.api.internal.tasks.compile.JdkJavaCompiler] Compiling with JDK Java compiler API.14:39:28.03...
2018-06-29 21:07:47
21964
1
原创 springboot 2.0+mybatis+hikari/druid+atlas+mysql 配置多数据源及遇到的坑
前言:由于项目中用到了多个数据源,所以需要配置多数据源。这时候就不能使用springboot的默认数据源加载了,需要自定义多个数据源。一、配置准备看了springboot的doc和一些博主的经验之谈,发现配置多数据源并不麻烦。选择了一种比较简单的方式,自定义DataSource,SqlSessionFactoryBean,SqlSessionTemplate和DataSourceTransacti...
2018-06-29 20:41:43
7855
3
原创 Springboot mybatis配置及踩过的坑
springboot是近两年比较火爆的框架,比springMVC轻量,易用。但是新的东西用起来可能会多少有些小坑和需要熟悉的地方,本文从实践出发概述一下使用mybatis的配置方法,以及在配置过程中可能遇到的一些坑。注:1. 本文用到的springboot版本为2.x版本,相较于1.x版本还是有些不同的。本着向前看的原则,以2.x为例。 2.本文使用的gradle作为编译工具一、spri...
2018-06-27 11:38:18
33267
5
原创 基础札记--shell 操作 mysql sql语句
核心的用法:1.连接到指定db:conn="mysql -hlocalhost -P3306 -uuser_w -puser_w -D customer_db"2.操作指定sqlsql="delete from order_details where uid=$USERID" $conn -e "$sql"3.取得select语句的返回值sql="select uid from user_i...
2018-04-21 17:45:17
424
原创 linux sed,awk 管道组合命令解析 (e.g. netstat -anp | grep 8099| grep -v grep | awk '{print $7}' |.....)
Linux命令是非常丰富的,但是很少人能充分的掌握这些命令。本文结合项目中用的的一些场景简单从组合命令的角度解析下使用方法。每个命令的细节使用方法不在本文介绍范围之列,具体可以参考:sed命令细节,awk命令细节1.在配置Jenkins时,原来使用的杀死进程的组合命令是ps -ef | grep tomcat| grep -v grep | awk '{print $2}' | sed -e '...
2018-04-08 18:02:38
3698
1
原创 Centos MySQL/MariaDB root密码重置
对于忘了密码这种事再经常不过了。刚装过mysql/mariadb,几天没用,密码忘了怎么办。解决方式如下:1.查看当前mysql服务是否活着,如果活着先停掉:ps -ef|grep msql如果活着那么先停掉服务:killall -TERM mysqld2.停掉之后安全模式启动MySQLmysqld_safe --skip-grant-tables &3.再次使用root用户连接,此时密码...
2018-04-02 15:03:41
422
原创 金融牌照之基金销售、基金支付、基金管理牌照简析
基金所有人都不陌生,但是在从事基金这个行业时有什么要求,什么限制和标准,很多人还是搞不清楚的。实际上我也是在学习的过程中,点滴积累和感悟记录下来,与有共同兴趣的伙伴一起分享。本篇文章主要来简析一下从事基金行业所需要的几个重要牌照,包括基金管理牌照,基金销售牌照以及基金支付牌照。一、基金管理牌照:拥有基金管理牌照的公司可以从事基金管理的业务。包括基金开发,基金销售,以及授权的其他相关业务。目前我国拥...
2018-03-29 18:23:44
8157
转载 Nginx/ZooKeeper 负载均衡的差异
Nginx是著名的反向代理服务器,也被广泛的作为负载均衡服务器ZooKeeper是分布式协调服务框架,有时也被用来做负载均衡那么他们的区别是什么?如何选择呢?下面从实际场景看下他们的关系Nginx的负载均衡配置非常简单,把多个web server配置到nginx中,用户访问Nginx时,就会自动被分配到某个web serverupstream backend {serv
2016-07-20 16:30:44
943
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人