- 博客(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
233
原创 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
671
2
原创 小型分布式微服务Long型ID生成器
在微服务开发中,ID生成一直是一个十分头疼的问题,网上常见的方式有三种:基于数据库的主键自增基于UUID雪花算法对于第1种基于数据库主键自增的,当数据量比较少时无所谓,但是当数据量很大需要进行分表分库是扩展时,对于ID的处理就会出现各种麻烦对于第2种基于UUID的主键,理论上不会出现问题,但是由于UUID是字符串形式,在Mysql数据库中对于字符串的查询没有数值型的效率高对于第3种...
2019-11-20 13:13:12
1645
原创 JSON内容对比工具
一款基于Java的JSON内容对比工具类,结合Jackson一起使用Maven依赖: <dependency> <groupId>com.flipkart.zjsonpatch</groupId> <artifactId>zjsonpatch</artifactId> <version>...
2019-10-24 17:31:53
5542
原创 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
272
原创 Zabbix Docker环境部署
Zabbix服务端部署本服务部署采用Docker镜像部署,以简化部署流程。部署参考 官方中文部署手册###名称介绍宿主机:运行Docker容器的Linux服务器###1、Docker环境Docker环境不属于本文档的介绍范围,安装请参考Docker官网下文中使用到的docker命令介绍:搜索镜像:docker search [镜像名称]下载镜像:docker pull [...
2019-09-29 18:02:57
908
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
7084
转载 java 命令: jmap 命令使用 ( 查看内存使用、设置 )
jdk安装后会自带一些小工具,jmap命令(Java Memory Map)是其中之一。主要用于打印指定Java进程(或核心文件、远程调试服务器)的共享对象内存映射或堆内存细节。jmap命令可以获得运行中的jvm的堆的快照,从而可以离线分析堆,以检查内存泄漏,检查一些严重影响性能的大对象的创建,检查系统中什么对象最多,各种对象所占内存的大小等等。可以使用jmap生成Heap Dump。java...
2019-07-06 16:39:21
12149
原创 Docker常用命令
Docker命令清单docker提供了查看其所有支持的命令清单,只需运行docker 或 docker help从提示中可以看出,Docker命令是很多的,可以管理Docker,有操作镜像、容器等等。对于常用的可能就是操作镜像和容器了。所以这里主要列举下对于镜像、容器常用的一些命令操作,同时也会列举下一些其他常用的命令。对于某个命令想知道其详细的参数选项时,可依照此模式进行查看。do...
2019-06-06 17:30:55
220
原创 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
1002
原创 MacOS下 Teamviewer 5分钟商业检测
本人亲测有效:1、退出Teamviewer登录的账号2、退出Teamviewer程序3、运行修改Id的命令sudo python Downloads/TeamViewer-id-changer.py下载地址4、重启电脑即可
2019-01-29 18:33:23
2555
转载 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
357
原创 基于Redis的分布式令牌桶限流器
本文根据Guava RateLimiter令牌桶限流器修改的基于Redis的分布式限流器。令牌桶采用横定速率生成令牌存放入桶中,通过计算获取指定令牌数所需要的等待时间来进行限流。注:其中对于令牌桶的更新需要依赖分布式同步锁:DistributedLock本文采用基于Redis的RedLock来实现,请参见本人另外的一篇文章:基于Redis RedLock的分布式同步锁1、Guava Rate...
2018-11-13 12:01:02
37732
27
原创 基于Redis RedLock的分布式同步锁
本文采用Redis官网提供的RedLock来实现分布式同步锁,实现了单机模式和哨兵集群模式两种。安全和可靠性保证在描述我们的设计之前,我们想先提出三个属性,这三个属性在我们看来,是实现高效分布式锁的基础。安全属性:互斥,不管任何时候,只有一个客户端能持有同一个锁。效率属性A:不会死锁,最终一定会得到锁,就算一个持有锁的客户端宕掉或者发生网络分区。效率属性B:容错,只要大多数Redis节...
2018-11-13 11:16:20
3703
转载 源码阅读:java并发之阻塞队列LinkedBlockingQueue与ArrayBlockingQueue
阻塞队列概要阻塞队列与我们平常接触的普通队列(LinkedList或ArrayList等)的最大不同点,在于阻塞队列支出阻塞添加和阻塞删除方法。阻塞添加所谓的阻塞添加是指当阻塞队列元素已满时,队列会阻塞加入元素的线程,直队列元素不满时才重新唤醒线程执行元素加入操作。阻塞删除阻塞删除是指在队列元素为空时,删除队列元素的线程将被阻塞,直到队列不为空再执行删除操作(一般都会返回被删除的...
2018-09-20 16:21:24
242
转载 源码阅读:Java类加载器(ClassLoader)
类加载的机制的层次结构每个编写的”.java”拓展名类文件都存储着需要执行的程序逻辑,这些”.java”文件经过Java编译器编译成拓展名为”.class”的文件,”.class”文件中保存着Java代码经转换后的虚拟机指令,当需要使用某个类时,虚拟机将会加载它的”.class”文件,并创建对应的class对象,将class文件加载到虚拟机的内存,这个过程称为类加载,这里我们需要了解一下类加载的...
2018-09-20 15:58:02
496
转载 源码阅读:Java并发之synchronized实现原理
线程安全是并发编程中的重要关注点,应该注意到的是,造成线程安全问题的主要诱因有两点,一是存在共享数据(也称临界资源),二是存在多条线程共同操作共享数据。因此为了解决这个问题,我们可能需要这样一个方案,当存在多个线程操作共享数据时,需要保证同一时刻有且只有一个线程在操作共享数据,其他线程必须等到该线程处理完数据后再进行,这种方式有个高尚的名称叫互斥锁,即能达到互斥访问目的的锁,也就是说当一个共享数据...
2018-09-20 15:28:40
337
转载 源码阅读:基于并发AQS的(独占锁)重入锁(ReetrantLock)及其Condition实现原理
Lock接口前面我们详谈过解决多线程同步问题的关键字synchronized,synchronized属于隐式锁,即锁的持有与释放都是隐式的,我们无需干预,而本篇我们要讲解的是显式锁,即锁的持有和释放都必须由我们手动编写。在Java 1.5中,官方在concurrent并发包中加入了Lock接口,该接口中提供了lock()方法和unLock()方法对显式加锁和显式释放锁操作进行支持,简单了解一下...
2018-09-20 14:29:51
279
转载 源码阅读:JAVA中的CAS详解
&nbsp; &nbsp; &nbsp;本篇的思路是先阐明无锁执行者CAS的核心算法原理然后分析Java执行CAS的实践者Unsafe类,该类中的方法都是native修饰的,因此我们会以说明方法作用为主介绍Unsafe类,最后再介绍并发包中的Atomic系统使用CAS原理实现的并发类。 无...
2018-09-18 17:22:45
3775
转载 SpringBean生命周期
&lt;div id="cnblogs_post_body" style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:14px;"&gt; &lt;p&gt;Spring作为当前Java最流行、最强大的轻量级框架,受到了程序员的热烈欢迎。准确的
2018-09-18 16:21:22
228
转载 JAVA JVM综合概述
JVM架构和GC垃圾回收机制详解JVM架构图分析下图:参考网络+书籍,如有侵权请见谅 (想了解Hadoop内存溢出请看: Hadoop内存溢出(OOM)分类、参数调优化)JVM被分为三个主要的子系统(1)类加载器子系统(2)运行时数据区(3)执行引...
2018-08-20 10:14:39
173
转载 SpringBoot分表分库配置多数据源
1、背景的介绍有时候我们需要做分库分表,那么肯定存在多数据源,Spring Boot和Mybatis的多数据源是如何整合的呢?比如说我们现在做了一个浪迹天涯管理的后台系统,商品信息是存在itemCenter数据源中的,而与用户相关的信息是存在account数据源中,项目结...
2018-06-19 15:41:40
10292
3
原创 根据文件后缀获取文件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
6501
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
519
原创 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
23349
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
4591
原创 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
2025
原创 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
1019
原创 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
844
原创 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
313
原创 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
5212
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
1615
原创 简单的敏感词过滤
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
484
转载 Spring Boot + Mybatis + Redis二级缓存实例
二级缓存是多个SqlSession共享的,其作用域是mapper的同一个namespace,不同的sqlSession两次执行相同namespace下的sql语句且向sql中传递参数也相同即最终执行相同的sql语句,第一次执行完毕会将数据库中查询的数据写到缓存(内存),第二次会从缓存中获取数据将不再从数据库查询,从而提高查...
2018-04-04 11:22:00
230
转载 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
124
转载 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
1426
原创 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
16231
原创 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
748
原创 互联网架构(9):Socket网络通信编程--Netty应用
四、Socket网络通信编程–Netty实践1、数据通信一般在项目中我们该如何去使用Netty呢?大体上对于一些参数配置都是根据服务器性能决定的。这个不是最主要的。我们需要考虑的问题是两台机器(甚至多台)使用Netty怎样进行通信,一般分为三种:1 第一种,使用长连接通道不断开的形式进行通信,也就是服务器和客户端一直处于开启状态,如果服务器性能足够好,并且我们的客户端数量也比较少的情况下,还是可以
2017-06-01 16:47:40
658
Teamviewer修改ID的脚本
2019-01-29
XShell6 绿色中文免安装版
2018-05-08
Go Lang Eclipse Tools(gocode.exe、godef.exe、guru.exe)基于Eclipse4.7.0+Go1.9.2
2017-11-27
Hadoop测试任务wordcount失败
2016-10-31
TA创建的收藏夹 TA关注的收藏夹
TA关注的人