自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 资源 (2)
  • 收藏
  • 关注

原创 使用idea和gradle编译spring5源码

写在前面:spring 应该对于每个从事java开发的大兄弟们来说应该都不陌生的,作为一个从业两年多的小开发仔,个人觉得,每天都在面对spring,确从来没有编译过spring源码,有点不太合适。最近在研究spring源码的时候,突然想起编译一下spring源码,网上应该也有很多大神编译过spring源码,在这里我把我再编译过程的遇到的坑,来跟大家分享下。版本工具:spring5.0.x,gr...

2018-11-11 11:18:56 66864 56

原创 谈谈redis缓存三大问题(三)- 缓存击穿

首先还是先看下缓存击穿的一个基本概念

2020-01-08 20:56:16 730 1

原创 谈谈redis的过期删除策略与内存淘汰机制

今天这边主要说说redis内存的过期删除策略与内存淘汰机制。

2020-01-08 17:40:58 593

原创 linux安装zookeeper详细步骤

安装前首先当然是下载安装包了。我们进入,zookeeper官网: https://zookeeper.apache.org/releases.html前提:由于zookeeper是使用java语言开发的,所以,在安装zookeeper之前务必先在本机安装配置好java环境!1,找到下载链接,然后在linux中先下载所需安装包(我这边下载的是3.4.9版本):wget https://arch...

2020-01-04 21:00:31 10071 2

原创 谈谈redis缓存三大问题(二)- 缓存雪崩

今天抽时间和大家聊聊redis的雪崩以及redis集群的演变过程。

2020-01-04 15:38:38 707

原创 谈谈redis缓存三大问题(一)- 缓存穿透

这几天抽时间和大家一起聊聊redis缓存在生产环境使用中的几大问题,以及如何去优化代码去避免他!首先我们来看看缓存使用过程的一个问题:缓存穿透

2020-01-02 11:27:33 641 1

原创 谈谈redis的持久化机制

说道redis的持久化机制,相信有经验的开发人员可能都知道,rdb,aof。但是不知道大家有没有仔细的去想过几个问题:

2020-01-01 21:25:38 795 4

原创 redis配置详解

关于redis配置,详细解释如下:# 配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit 对大小写不敏感# 1k => 1000 bytes# 1kb => 1024 bytes# 1m => 1000000 bytes# 1mb => 1024*1024 bytes# 1g => 1000000000 bytes# 1gb =...

2019-12-31 22:03:03 196

原创 谈谈自定义注解及相关开发实践

说道自定义注解,可能大家都不太陌生,实际开发过程中可能多多少少也会用到,今天这边就通过自定义注解结合反射,分享一些实际开发经验。...

2019-12-28 14:28:49 188

原创 从源码角度聊聊spring中的FactoryBean

说到spring,相信对于BeanFactory大家肯定都不陌生,百度上随便一搜,99都会说什么字如其意:bean工厂啊,容器,管理bean的。。。对于BeanFactory其实就是这样子的,这里我说的肯定没有别人好,这边就不一一赘述了。今天这边主要来谈谈FactoryBean。先来看一个颠覆你三观的案例:@Servicepublic class FactoryBeanTest implem...

2019-12-28 00:29:18 326 1

原创 spring中的事件编程模型

最近一直忙于业务开发实现,很少有机会做一些技术沉淀,这可能对一个技术工作者来说,未必是一件好事。之前就一直想写一篇关于spring事件驱动模型相关技术博客,主要还是想给自己做一个技术总结,同时也好和大家做一做分享交流。

2019-12-26 16:22:49 750 1

原创 java获取某个月最后一天

代码如下:public static String getLastDayOfMonth(int year,int month) { Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.YEAR, year); calendar.set(Calendar.MONT...

2019-09-30 11:15:02 5358 1

原创 java8 stream的多字段排序(踩坑)

关于java8 的stream排序用法这里不做多说,这里介绍下曾经在多字段排序时遇到过的一个坑。需求:需要根据id去分组,然后取出每组中行号最大的一个对象值。想到可以利用stream的多字段排序,先按id去排,再看行号去排,demo代码如下:class Tt{ private int id; private int line; public...

2019-09-17 10:02:27 24904 10

原创 centos 开放端口

(1)获取活动的区域[root@baomw-centos1 run]# firewall-cmd --get-active-zones(2)开启某个端口[root@baomw-centos1 run]# firewall-cmd --zone=public --add-port=3306/tcp --permanent(3)使用命令加载设置[root@baomw-centos1 run]...

2019-07-01 13:40:28 249

原创 docker容器常用操作

输入 docker 可以查看Docker的命令用法,输入 docker COMMAND --help 查看指定命令详细用法。运行容器docker run --name 容器名 -i -t -p 主机端口:容器端口 -d -v 主机目录:容器目录:ro 镜像ID或镜像名:TAG# --name 指定容器名,可自定义,不指定自动命名# -i 以交互模式运行容器# -t 分配一个伪终端,即命令...

2019-04-30 10:56:23 184

原创 docker镜像常用操作

输入 docker 可以查看Docker的命令用法,输入 docker COMMAND --help 查看指定命令详细用法。查找镜像docker search 关键词#搜索docker hub网站镜像的详细信息下载镜像docker pull 镜像名:TAG# Tag表示版本,有些镜像的版本显示latest,为最新版本查看本地镜像docker images# 查看本地所有镜像...

2019-04-30 10:54:02 185

原创 fastjson的tostring输出null值问题

大家在日常测试的时候,经常需要输出一个dto的具体key-value,如下图,当我们直接输出user对象时,发现输出的是只是对象的引用并没有输出我们想要的key-value值。这里大家可能都知道使用fastjson转换成string输出,当然首先是引入fastjson的jar包 <dependency> <groupId>com.alibab...

2019-04-28 18:49:57 4647

原创 谈谈java8新特性Optional<T>

java.lang.NullPointerException相信对每一个java程序员来说都不陌生的,常常因为缺少一个判空导致系统各自通讯错误,异常。从java8开始,给我们提供了一个对象判空操作处理类Optional。根据jdk8官方文档,可以知道,该根据类存在于java.util下的final类,也就是说是官方提供给我们的一个工具类。当然首先我们来看下具体的使用方法: Option...

2019-04-26 15:44:19 3145

原创 谈谈mysql locate函数

大家都知道,当我们mysql需要使用模糊查询的时候,往往会使用like去做相关查询条件的模糊匹配,但是很多场景下,使用locate会获取同样的效果create table user( id int primary key auto_increment, name varchar(18), description varchar(255)) charset=UTF8;select * ...

2019-04-19 14:16:25 5534 3

原创 使用idea配置本地tomcat

近期接手的项目,开发环境需要配置tomcat来做做项目启动,这边先总结下,idea中配置本地tomcat的详细过程。1,下载tomcat,直接去apache官网或者csdn下载即可,tomcat下载不用安装,如果有需要直接改下本地server.xml配置即可,或者直接使用默认配置也是可以的,默认8080端口,这就不用多说了。2,本地配置,点击右上角,Edit Configurations3...

2019-04-18 19:22:25 10043

原创 谈谈系统中的缓存预热-@PostConstruct

说起缓存,相信大家都不陌生,下面我们先看这张图上图是一个最简单的应用系统业务流转模型,当一个客户端连接到server时,需要做数据访问,在server中会判断是否已经在缓存中,如果在则直接在缓存中拿出数据返回,由于缓存是在内存中的(比如redis,mongo,sping-cache等),不用大批量的跟数据库进行交互,避免了大量io操作,大大提高效率。下面,我们来考虑一个问题,可以设想下如下场...

2019-04-10 17:09:07 1981

原创 使用StringRedisTemplate进行redis连接操作

1,引入jar,需要jar有三个,如下 <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> <version>2.1.4...

2019-04-10 16:30:53 21168

原创 Granafa+Influxdb+Collectd实现计算机实时监控

Granafa+Influxdb+Collectd具体工作原理,我画了张图来表示好了:如下1,安装collectd1)规划好安装目录2) 下载安装包,下载地址:https://collectd.org/documentation.shtml3) 解压:tar zxvf collectd-5.7.2.tar.bz24) 进入解压后的安装包解压路径:cd collectd-5.7.25...

2019-04-09 14:24:37 901

原创 springcloud之使用feign进行客户端负载均衡

在讲feign之前,还是先提下feign的概念,然后通过几个简单的案例来说明下如何去使用feign。Feign是什么呢?Feign是一个声明式WebService客户端。使用Feign能让编写Web Service客户端更加简单, 它的使用方法是定义一个接口,然后在上面添加注解,同时也支持JAX-RS标准的注解。Feign也支持可拔插式的编码器和解码器。Spring Cloud对Feign进行了...

2019-04-07 21:17:49 3327

原创 高可用redis cluster集群搭建

redis集群是一个由多个主从节点群组成的分布式服务器群,它具有复制、高可用和分片特 性。Redis集群不需要sentinel哨兵也能完成节点移除和故障转移的功能。需要将每个节点 设置成集群模式,这种集群模式没有中心节点,可水平扩展,据官方文档称可以线性扩展到 1000节点。redis集群的性能和高可用性均优于之前版本的哨兵模式,而且集群的安装配置,简单到令人发指。首先下载redis安装包...

2019-03-30 22:23:27 365

原创 linux下安装redis步骤详解

redis安装有很多种方式,对于linux安装来说,可以使用wget下载对应的redis安装包进行安装配置。详细过程如下1,安装wget::yum install wget2,进入官网,找到对应的下载路径:https://redis.io/download上面已经给出了linux安装的关键步骤,拿出链接即可。3,下载安装包并解压: # wget http://download.r...

2019-03-30 18:20:23 202

原创 SonarQube安装使用配置及maven整合

系统环境:已安装JAVA环境已安装有MySQL数据库(新建一个db,用于存储sonarqube数据)1, 进入官网下载相应的sonarqube安装包。链接:https://www.sonarqube.org/这里有很多版本可供选择,我这里选UE7.7版本。2, 安装配置Sonarqube不需要安装,下载后解压,然后cp到一个安装目录即可cp -rf sonarqube-7.7 /...

2019-03-26 19:23:38 4650

原创 springcloud之使用ribbon进行客户端负载均衡

在讲ribbon之前我们先来说下什么是ribbon, Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Ba...

2019-03-18 23:18:44 646

原创 springcloud之高可用eureka集群搭建

至于eureka,这里就不做详细介绍了,有兴趣的可以去参阅下spring官网或某度上找找相关资料。今天我们这里主要说下eureka高可用集群式如何搭建的。

2019-03-17 23:49:36 896

原创 java并发--synchronized原理

相信对于各位java大佬,synchronized关键字大家可能并不陌生,今天这边来详细聊聊这个synchronized关键字。相信有有写java并发基础的同学可能知道,synchronized关键字是利用锁的机制来实现代码同步的。对于java中的锁机制有如下两个特性(还是要了解下的,吹牛逼的时候好提升下b格)互斥性:即在同一时间只允许一个线程持有某个对象锁,通过这种特性来实现多线程中的协调机...

2019-03-17 10:34:19 363

原创 使用idea生成可执行jar

最近在给公司做一个小工具,最终是要打成可执行的jar交付。因为之前没做过相关的东西,所以在实际操作过程中呢也是遇到了很多的问题。当然对于一个长期面向百度编程的小菜鸡来说,发现百度上很多错误并没有相应的一些解决说明,在这里呢,打算通过这篇文章将整个过程以及遇到的问题的解决方法做个一个详细的说明,大家一起交流下。当然对于可执行的jar,main方法是必须的,基于我的工程目录,代码如下详细步骤如下...

2019-01-15 11:11:03 8782 5

原创 使用Redis实现分布式锁详解

在讲分布式锁之呢,我们不妨先来说说什么是分布式系统。在系统早期,用户量少,可能我们一个app的所有模块都存在与一个应用包,部署在一台机器上,这便是我们的单体应用架构。这种设计,如果用户访问量大,便很容易造成系统压力过大而导致的系统宕机,其次如果一个模块,比如支付功能bug或其他原因,便直接导致整个系统瘫痪。为解决这个问题,可能会想到我们的集群部署。集群部署配合配合负载均衡(负载算法),可...

2018-12-15 11:04:11 3012

原创 sql优化-记一次生产n小时的update语句优化到1秒内的全过程

近期生产业务中,有一批导入数据,数据量大约16万多,由于需要做树查询,涉及一个层级关系维护。前期,实施维护的时候由于sql问题,导致除一级数据外的下级数据(总共六级)大量维护出错,导致现在需要将这16万数据层级关系全部重新维护。表中,有一个编码字段(以下用task_code表示),同时维护其父项的task_code(一下称parent_task_code)。现任务是需要将这16w多的数据在表中...

2018-12-14 21:08:38 9084 3

原创 RabbitMQ消息队列之RPC调用

我们知道现在市面上的RPC框架很多,但是如何用我们的RabbitMQ去实现一个RPC调用呢?这就是我们这篇文章所要讲解的内容。如果有阅读过我写的博客的大兄弟们,可能会知道,我有个习惯就是学习技术喜欢去看官方文档,同样对于RabbitMQ如何去实现RPC调用,我们先来看看官方文档怎么说。如上图,进入RabbitMQ官网,找到get Started,然后里面会有很多基本使用方式(其他几种使用方...

2018-12-06 23:50:24 8486 3

原创 RabbitMQ消息队列及各种Exchange类型详解

关于RabbitMQ,我们就从这张官网截图来开始说吧!对于任何一门技术,我们可能都比较关心“what”,“how”,“when”,当然还是那句话,看官方文档。上图圈出来的一段话就是对我们RabbitMQ的一个大致介绍了,其实说白了就是负责转发消息的。下图给出了一个最简单的消息转发模型,p(producer )为我们的的消息提供方,c(consumer )为消息接收方。在说exchange...

2018-12-06 17:42:11 13476 2

原创 使用spring boot快速搭建ssm框架

说起spring boot,也是最近几年比较火热的一个技术了,当然作为一个小菜鸡,最近也在试着去深入研究下spring boot。这里说到学习一门技术,我不觉得买什么什么书啊,看什么什么视频啊是很好的学习方式,当然这些书,视频可能会给我们的学习带来一个指导性的作用,但是,书也是其他人写出来的,书上说的,也不一定都对。所以我觉得,去学习一门技术,最好的方法就是去看他的官方文档,包括我们的sprin...

2018-12-02 08:55:13 2761 3

原创 Spring5新特性之日志体系

日志系统对于各大主流框架或是自己的应用中都是不可或缺的重要组成部分,最近比较关注spring,所以就来分析下spring的日志系统以及spring4和spring5的日志有哪些区别。对于各种日志技术,可参见我的另一篇文章:https://blog.csdn.net/baomw/article/details/845267381,我们先从spring4和5的核心包context包的依赖关系,来看...

2018-11-30 00:10:12 3770 1

原创 架构师之路-分析混乱的日志体系

提起日志,可能大家脑中会瞬间弹出很多关键字,比如log4j,jul,jcl,slf4j啊等等,但是在我们做一个系统架构时,在处理日志这块内容的时候,我们可能会面临具体的日志选用。而且在我们系统中难免会使用各种各样的第三方jar包,比如我们的spring,mybatis等等,由于这些第三方jar包都有自己的日志实现,以此如何在各种复杂的日志使用场景下,将我们整个系统的日志统一,便于我们统一管理呢?...

2018-11-26 19:53:50 826 1

原创 sql性能优化精要分析

sql优化应该是任何一个开发,运维人员耳熟能详的问题,为什么有的人开发的系统测试时各种没问题,一到生产实际使用,数据量一大各种跑不动,崩盘挂死,很多时候和我们不合理的数据库设计以及sql有关,这里我将我这两年开发过程中总结的基于oracle相关sql调优经验总结一下,希望对大家有所启发。1,对于数据量少的表,如果经常全表扫描,可以对全表缓存alter table t1 cache; alte...

2018-11-23 21:27:34 239 1

原创 oracle容灾之truncate数据恢复

在我的另外几篇文章中,介绍了关于数据库闪回的一些内容,对于drop和delete的数据闪回。对于truncate,可能有一些数据库知识的应该会知道,在正常逻辑中,如果我们将表truncate掉了,是找不回来了,TRUNCATE TABLE 是一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的。并且在删除的过程中不会激活与表有关的删除触发器。执行速度快。那么问题来...

2018-11-22 13:31:33 2457 3

grafana监控模版

grafana执行实时监控时,用于配置前端web展示的模版,直接在grafana前端import进去即可:详细使用参见博客:https://blog.csdn.net/baomw/article/details/89146300

2019-04-09

influxdb的数据文件types.db

infuxdb所需要的数据文件模版,没有这个文件在influxdb启动的时候会抛出异常:run: open server: open service: Stat(): stat /usr/share/collectd/types.db: no such file or directory

2019-04-08

空空如也

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

TA关注的人

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