自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Jason_LiuMeng的博客

一个小码农的学习笔记

  • 博客(67)
  • 资源 (5)
  • 问答 (1)
  • 收藏
  • 关注

原创 基于Lambda表达式实现的小工具

对于Java代码中常见的if-else if-else比较繁琐,那在lambda场景下如何实现链式调用呢。import java.util.function.Consumer;import java.util.function.Function;import java.util.function.Supplier;/** * @author meng.liu * @version 1.0 * @date 2021-10-20 17:55:12 */public class Option

2021-10-20 19:37:21 222

原创 Nginx+Keepalived+LVS实现高可用架构

1、简介Nginx是一个多进程的高性能反向代理服务器Nginx包含一个master进程,用于接收操作者的指令去管理worker进程,该进程不处理客户端请求Nginx包含多个worker进程(默认1个,可以再config中的worker_processes进行配置),worker进程用于接收客户端的请求,每个worker可以连接多个客户端,多个worker之间由于是进程,所以相互完全没有任何影响。2、网络模型Nginx在Linux下默认采用Epoll模型来实现异步非阻塞3、 Worker配置Ng

2021-06-08 18:38:00 608 2

原创 小型分布式微服务Long型ID生成器

在微服务开发中,ID生成一直是一个十分头疼的问题,网上常见的方式有三种:基于数据库的主键自增基于UUID雪花算法对于第1种基于数据库主键自增的,当数据量比较少时无所谓,但是当数据量很大需要进行分表分库是扩展时,对于ID的处理就会出现各种麻烦对于第2种基于UUID的主键,理论上不会出现问题,但是由于UUID是字符串形式,在Mysql数据库中对于字符串的查询没有数值型的效率高对于第3种...

2019-11-20 13:13:12 1612

原创 JSON内容对比工具

一款基于Java的JSON内容对比工具类,结合Jackson一起使用Maven依赖: <dependency> <groupId>com.flipkart.zjsonpatch</groupId> <artifactId>zjsonpatch</artifactId> <version>...

2019-10-24 17:31:53 5453

原创 Docker MySQL主从服务部署

Docker MySQL主从服务部署一、MySQL安装1、镜像搜索下载docker search mysqldocker pull mysql2、部署Master创建master的宿主机映射目录mkdir -p /opt/module/mysql/mysql-master/confmkdir -p /opt/module/mysql/mysql-master/data运行镜像...

2019-10-08 18:10:57 260

原创 Zabbix Docker环境部署

Zabbix服务端部署本服务部署采用Docker镜像部署,以简化部署流程。部署参考 官方中文部署手册###名称介绍宿主机:运行Docker容器的Linux服务器###1、Docker环境Docker环境不属于本文档的介绍范围,安装请参考Docker官网下文中使用到的docker命令介绍:搜索镜像:docker search [镜像名称]下载镜像:docker pull [...

2019-09-29 18:02:57 892 1

原创 良好的Coding习惯,从P3C开始--阿里P3C代码规范扫描插件

阿里p3c(代码规范,eclipse插件、模版,idea插件)一、说明代码规范检查插件p3c,是根据《阿里巴巴Java开发手册》转化而成的自动化插件。(高级黑:P-3C“Orion”,反潜巡逻机,阿里大概取p3c先进,监测,发现潜在问题的意思)二、源码地址https://github.com/alibaba/p3c三、阿里巴巴Java开发手册1、说明《阿里巴巴Java开发手册》...

2019-08-02 15:10:55 7050

转载 java 命令: jmap 命令使用 ( 查看内存使用、设置 )

jdk安装后会自带一些小工具,jmap命令(Java Memory Map)是其中之一。主要用于打印指定Java进程(或核心文件、远程调试服务器)的共享对象内存映射或堆内存细节。jmap命令可以获得运行中的jvm的堆的快照,从而可以离线分析堆,以检查内存泄漏,检查一些严重影响性能的大对象的创建,检查系统中什么对象最多,各种对象所占内存的大小等等。可以使用jmap生成Heap Dump。java...

2019-07-06 16:39:21 10403

原创 Docker常用命令

Docker命令清单docker提供了查看其所有支持的命令清单,只需运行docker 或 docker help从提示中可以看出,Docker命令是很多的,可以管理Docker,有操作镜像、容器等等。对于常用的可能就是操作镜像和容器了。所以这里主要列举下对于镜像、容器常用的一些命令操作,同时也会列举下一些其他常用的命令。对于某个命令想知道其详细的参数选项时,可依照此模式进行查看。do...

2019-06-06 17:30:55 210

原创 Java解析方法参数

import lombok.extern.slf4j.Slf4j;import org.apache.commons.lang3.StringUtils;import java.util.Arrays;import java.util.List;import java.util.Map;import java.util.regex.Matcher;import java.util.r...

2019-03-18 18:34:26 968

原创 MacOS下 Teamviewer 5分钟商业检测

本人亲测有效:1、退出Teamviewer登录的账号2、退出Teamviewer程序3、运行修改Id的命令sudo python Downloads/TeamViewer-id-changer.py下载地址4、重启电脑即可

2019-01-29 18:33:23 2529

转载 HttpClient4.3x使用范例

HttpClientUtils加载证书单向认证忽略证书双向认证连接池(1) 加载证书单向认证import org.apache.http.HttpEntity;import org.apache.http.client.methods.CloseableHttpResponse;import org.apache.http.client.methods.HttpGet;im...

2019-01-28 14:45:40 346

原创 基于Redis的分布式令牌桶限流器

本文根据Guava RateLimiter令牌桶限流器修改的基于Redis的分布式限流器。令牌桶采用横定速率生成令牌存放入桶中,通过计算获取指定令牌数所需要的等待时间来进行限流。注:其中对于令牌桶的更新需要依赖分布式同步锁:DistributedLock本文采用基于Redis的RedLock来实现,请参见本人另外的一篇文章:基于Redis RedLock的分布式同步锁1、Guava Rate...

2018-11-13 12:01:02 37452 27

原创 基于Redis RedLock的分布式同步锁

本文采用Redis官网提供的RedLock来实现分布式同步锁,实现了单机模式和哨兵集群模式两种。安全和可靠性保证在描述我们的设计之前,我们想先提出三个属性,这三个属性在我们看来,是实现高效分布式锁的基础。安全属性:互斥,不管任何时候,只有一个客户端能持有同一个锁。效率属性A:不会死锁,最终一定会得到锁,就算一个持有锁的客户端宕掉或者发生网络分区。效率属性B:容错,只要大多数Redis节...

2018-11-13 11:16:20 3663

转载 源码阅读:java并发之阻塞队列LinkedBlockingQueue与ArrayBlockingQueue

阻塞队列概要阻塞队列与我们平常接触的普通队列(LinkedList或ArrayList等)的最大不同点,在于阻塞队列支出阻塞添加和阻塞删除方法。阻塞添加所谓的阻塞添加是指当阻塞队列元素已满时,队列会阻塞加入元素的线程,直队列元素不满时才重新唤醒线程执行元素加入操作。阻塞删除阻塞删除是指在队列元素为空时,删除队列元素的线程将被阻塞,直到队列不为空再执行删除操作(一般都会返回被删除的...

2018-09-20 16:21:24 227

转载 源码阅读:Java类加载器(ClassLoader)

类加载的机制的层次结构每个编写的”.java”拓展名类文件都存储着需要执行的程序逻辑,这些”.java”文件经过Java编译器编译成拓展名为”.class”的文件,”.class”文件中保存着Java代码经转换后的虚拟机指令,当需要使用某个类时,虚拟机将会加载它的”.class”文件,并创建对应的class对象,将class文件加载到虚拟机的内存,这个过程称为类加载,这里我们需要了解一下类加载的...

2018-09-20 15:58:02 484

转载 源码阅读:Java并发之synchronized实现原理

线程安全是并发编程中的重要关注点,应该注意到的是,造成线程安全问题的主要诱因有两点,一是存在共享数据(也称临界资源),二是存在多条线程共同操作共享数据。因此为了解决这个问题,我们可能需要这样一个方案,当存在多个线程操作共享数据时,需要保证同一时刻有且只有一个线程在操作共享数据,其他线程必须等到该线程处理完数据后再进行,这种方式有个高尚的名称叫互斥锁,即能达到互斥访问目的的锁,也就是说当一个共享数据...

2018-09-20 15:28:40 327

转载 源码阅读:基于并发AQS的(独占锁)重入锁(ReetrantLock)及其Condition实现原理

Lock接口前面我们详谈过解决多线程同步问题的关键字synchronized,synchronized属于隐式锁,即锁的持有与释放都是隐式的,我们无需干预,而本篇我们要讲解的是显式锁,即锁的持有和释放都必须由我们手动编写。在Java 1.5中,官方在concurrent并发包中加入了Lock接口,该接口中提供了lock()方法和unLock()方法对显式加锁和显式释放锁操作进行支持,简单了解一下...

2018-09-20 14:29:51 268

转载 源码阅读:JAVA中的CAS详解

&amp;nbsp; &amp;nbsp; &amp;nbsp;本篇的思路是先阐明无锁执行者CAS的核心算法原理然后分析Java执行CAS的实践者Unsafe类,该类中的方法都是native修饰的,因此我们会以说明方法作用为主介绍Unsafe类,最后再介绍并发包中的Atomic系统使用CAS原理实现的并发类。 无...

2018-09-18 17:22:45 3746

转载 SpringBean生命周期

&amp;lt;div id=&quot;cnblogs_post_body&quot; style=&quot;font-family:Verdana, Arial, Helvetica, sans-serif;font-size:14px;&quot;&amp;gt; &amp;lt;p&amp;gt;Spring作为当前Java最流行、最强大的轻量级框架,受到了程序员的热烈欢迎。准确的

2018-09-18 16:21:22 223

转载 JAVA JVM综合概述

JVM架构和GC垃圾回收机制详解JVM架构图分析下图:参考网络+书籍,如有侵权请见谅 (想了解Hadoop内存溢出请看: Hadoop内存溢出(OOM)分类、参数调优化)JVM被分为三个主要的子系统(1)类加载器子系统(2)运行时数据区(3)执行引...

2018-08-20 10:14:39 170

转载 SpringBoot分表分库配置多数据源

1、背景的介绍有时候我们需要做分库分表,那么肯定存在多数据源,Spring Boot和Mybatis的多数据源是如何整合的呢?比如说我们现在做了一个浪迹天涯管理的后台系统,商品信息是存在itemCenter数据源中的,而与用户相关的信息是存在account数据源中,项目结...

2018-06-19 15:41:40 10268 3

原创 记录一个Vue2.0的手脚架搭建文档

史上最全的Vue2.0如坤手册包含有Vue2.0的环境搭建,Vue2.0的一些常见问题解答

2018-05-25 13:41:07 292

原创 根据文件后缀获取文件ContentType

package cn.com.flaginfo.wechat.portal.controller.index;public class FileContentTypeUtils { public static String contentType(String FilenameExtension) { if (FilenameExtension.equals(".BM...

2018-04-12 11:42:08 6474 3

原创 Aes对称加密算法实现

import org.slf4j.Logger;import org.slf4j.LoggerFactory;import javax.crypto.*;import javax.crypto.spec.SecretKeySpec;import java.io.UnsupportedEncodingException;import java.security.InvalidKeyEx...

2018-04-12 11:41:20 504

原创 SpringBoot请求中读取写入Cookies

import javax.servlet.http.Cookie;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class CookieUtils { public static String getCookie(HttpServl...

2018-04-11 15:48:39 23306 6

原创 SpringBoot注入ApplicationContext上下文

import org.springframework.beans.BeansException;import org.springframework.context.ApplicationContext;import org.springframework.context.ApplicationContextAware;import org.springframework.core.env....

2018-04-11 15:48:01 4581

原创 SpringBoot自定义注解拦截器,并根据环境变量选择初始化

TimeStamp.java 自定义注解import java.lang.annotation.*;/** * @author Meng.Liu * @create 2017-10-30 11:30 **/@Target({ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Inherited@Documented...

2018-04-11 15:43:49 2011

原创 SpringBoot异步线程池

import cn.com.flaginfo.platform.umsapp.configuration.config.AsyncLogThreadPoolConfig;import cn.com.flaginfo.platform.umsapp.configuration.config.AsyncRedisThreadPoolConfig;import cn.com.flaginfo.pla...

2018-04-11 15:35:44 1011

原创 Guava本地内存缓存

import cn.com.flaginfo.platform.umsapp.common.utils.RedisUtils;import com.alibaba.fastjson.JSONObject;import com.google.common.cache.CacheBuilder;import com.google.common.cache.CacheLoader;import ...

2018-04-11 15:34:03 830

原创 SpringBoot全局异常处理

import cn.com.flaginfo.platform.umsapp.app.model.ResponseDataModel;import cn.com.flaginfo.platform.umsapp.common.utils.ResponseUtils;import cn.com.flaginfo.platform.umsapp.exception.AppServerExcepti...

2018-04-11 15:32:39 302

原创 SpringBoot MongoDB副本集配置

MongoDB配置文件#mongoDB configspring.data.mongodb.host=10.0.10.1:3717,10.0.10.2:3717#采用副本集配置,端口直接配在host后面,不需要单独配置,单独配置也不会读取#spring.data.mongodb.port=3717spring.data.mongodb.username=db_ums_appsprin...

2018-04-11 15:31:55 5190 1

原创 SpringBoot Redis序列化配置

Redis配置#Redisspring.redis.host=spring.redis.port=6379spring.redis.database=0# Redis服务器连接密码(默认为空)spring.redis.password=# 连接池最大连接数(使用负值表示没有限制)spring.redis.pool.max-active=1500# 连接池最大阻塞等待时间(使...

2018-04-11 15:25:36 1598

原创 简单的敏感词过滤

StringPointer .java过滤字符集对象package com.flaginfo.wcard.sensitive;import java.io.Serializable;/** * @Author Meng.Liu * @Date 2018/2/2 14:52 */public class StringPointer implements Serializable,...

2018-04-11 13:50:06 472

转载 Spring Boot + Mybatis + Redis二级缓存实例

二级缓存是多个SqlSession共享的,其作用域是mapper的同一个namespace,不同的sqlSession两次执行相同namespace下的sql语句且向sql中传递参数也相同即最终执行相同的sql语句,第一次执行完毕会将数据库中查询的数据写到缓存(内存),第二次会从缓存中获取数据将不再从数据库查询,从而提高查...

2018-04-04 11:22:00 226

转载 Spring boot Mybatis 整合(完整版)

正题本项目使用的环境:开发工具:Intellij IDEA 2017.1.3jdk:1.8.0_161maven:3.3.9额外功能PageHelper 分页插件mybatis generator 自动生成代码插件步骤: 1.创建一个springboot项目: 2.创建项目的文件结构以及jdk的版本 3.选择项目所需要的依赖 然后点击f...

2018-04-04 10:56:56 119

转载 Go Eclipse插件

goeclipse 插件指南http://goclipse.github.io/概述GoClipse对于一个Eclipse IDE的Go编程语言。 特征 安装 用户指南 Github上 (最新发布) (报告问题) GoClipse用户组 -讨论和帮助,GoClipse安装要求Java VM version 8 or later. Eclips

2017-11-27 09:56:11 1405

原创 Nginx配置实现前端Route路由与后端路由的分离

Windows中Nginx的常用命令: 启动:Nginx根目录下cmd控制台start nginx.exe 停止:Nginx根目录下cmd控制台nginx -s stop 重启:Nginx根目录下cmd控制台nginx -s reload注意:每次修改了Nginx.conf文件之后都必须要重启Nginx服务下面是前后端路由分离的nginx.conf的配置,文件路径:nginx安装目录/conf

2017-09-01 15:06:47 16138

原创 Nginx负载均衡入门Demo

一、 工具  nginx-1.8.0   apache-tomcat-6.0.33二、 目标  实现高性能负载均衡的Tomcat集群:   } 三、 步骤  1、首先下载Nginx,要下载稳定版:  2、然后解压两个Tomcat,分别命名为apache-tomcat-6.0.33-1和apache-tomcat-6.0.33-2:  3、然后修改这两个Tomcat的启动端

2017-08-17 11:38:44 739

原创 互联网架构(9):Socket网络通信编程--Netty应用

四、Socket网络通信编程–Netty实践1、数据通信一般在项目中我们该如何去使用Netty呢?大体上对于一些参数配置都是根据服务器性能决定的。这个不是最主要的。我们需要考虑的问题是两台机器(甚至多台)使用Netty怎样进行通信,一般分为三种:1 第一种,使用长连接通道不断开的形式进行通信,也就是服务器和客户端一直处于开启状态,如果服务器性能足够好,并且我们的客户端数量也比较少的情况下,还是可以

2017-06-01 16:47:40 635

Teamviewer修改ID的脚本

该工具用于Teamviewer被检测出商业使用的问题(PS:商业使用请购买正版,支持正版) 使用方法见https://blog.csdn.net/a314368439/article/details/86693909

2019-01-29

XShell6 绿色中文免安装版

XShell6绿色免安装版,下载解压后,以管理员身份运行目录下的“绿色.bat”脚本,完成后即可使用,中途创建快捷方式时可能会被360拦截,请添加为信任

2018-05-08

Go Lang Eclipse Tools(gocode.exe、godef.exe、guru.exe)基于Eclipse4.7.0+Go1.9.2

基于Eclipse4.7.0与Go1.9的Eclipse插件以及所需要的Go插件,本人亲测直接使用。Eclipse配置参考http://blog.csdn.net/a314368439/article/details/78642045

2017-11-27

tomcatPlugin

eclipse tomcatPlugin插件,包含最近大部分Eclipse版本,解压放到目录下即可

2017-03-03

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

TA关注的人

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