Skip to content

Instantly share code, notes, and snippets.

View yangl's full-sized avatar
🎯
Focusing

YANGLiiN yangl

🎯
Focusing
View GitHub Profile
@yangl
yangl / p3c-pmd.pom.xml
Last active November 9, 2020 06:26
阿里巴巴Java代码规约扫描插件 p3c-pmd使用例子 https://github.com/alibaba/p3c/tree/master/p3c-pmd
<build>
<plugins>
<!-- ... -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.8</version>
<configuration>
<rulesets>
<ruleset>/rulesets/java/ali-comment.xml</ruleset>
@yangl
yangl / jedis.conf
Last active November 16, 2017 02:27
Redis服务端配置、jedis连接池配置模板 rdb定时同步脚本----主要防止主从切换失败时手动启动Master或误重启导致数据丢失 详见:http://tech.lede.com/2017/11/14/rd/server/redistemplate/
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="maxIdle" value="30" /> //JedisPool最大空闲连接数
<property name="minIdle" value="10" /> //JedisPool最小空闲连接数,也即初始化连接数
<property name="testOnBorrow" value="false" /> //从JedisPool获取jedis实例时检查连接的有效性,默认是false
<property name="testWhileIdle" value="false" /> //表示有一个idle object evitor线程对idle object进行扫描,如果validate失败,此object会被从pool中drop掉
<property name="testOnReturn" value="true" /> //将jedis实例归还连接池时检查连接的有效性,默认是false ;test开启太多会影响性能,都不开启异常连接可能会被使用,建议至少开启一个
<property name="maxTotal" value="300"/> //JedisPool最大连接数
<property name="maxWaitMillis" value="4000"/> //从JedisPool获取连接等待毫秒数,超时则抛异常;若blockWhenExhausted为false,该配置项无效
<property name="blockWhenExhausted" value="false"/> //blockWhenExhausted 表示连接耗尽时是否阻塞, false报异常,ture阻塞maxWaitMillis直到超时 ;不配默认是true;建议配置为false
</bean>
@yangl
yangl / GlobalExceptionHandler.java
Last active April 17, 2018 03:30
spring boot + MyBatis plus + spring data redis + swagger + Log4j2异步日志
import com.google.common.base.Strings;
import com.sf.common.dto.WsResult;
import com.sf.common.exception.BusinessException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpStatus;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseStatus;
<?xml version="1.0" encoding="UTF-8"?>
<jmeterTestPlan version="1.2" properties="3.2" jmeter="3.3 r1808647">
<hashTree>
<TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Netty压测" enabled="true">
<stringProp name="TestPlan.comments"></stringProp>
<boolProp name="TestPlan.functional_mode">false</boolProp>
<boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
<elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="用户定义的变量" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
@yangl
yangl / ChatterbotService.java
Last active March 6, 2018 07:23
chatterbot使用java调用例子 https://github.com/gunthercox/ChatterBot MySQL支持请确认chatterbot/ext/sqlalchemy_app/models.py中的UnicodeString改为UnicodeString(512) https://github.com/gunthercox/ChatterBot/pull/1200
package com.xxxx.chatterbot.chatterbotapi.service;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.exec.CommandLine;
import org.apache.commons.exec.DefaultExecutor;
import org.apache.commons.exec.ExecuteStreamHandler;
import org.apache.commons.exec.ExecuteWatchdog;
import org.apache.commons.exec.Executor;
1.查看plugin的目录所在,确认存在server_audit.so / server_audit.dll:
SHOW GLOBAL VARIABLES LIKE 'plugin_dir';
+---------------+--------------------------+
| Variable_name | Value |
+---------------+--------------------------+
| plugin_dir | /usr/lib64/mysql/plugin/ |
+---------------+--------------------------+
@yangl
yangl / TiDB碎碎念.md
Last active March 22, 2018 09:46
TiDB整理

遗留数据同步方案(Loader + Syncer)具体方案如下:

使用 Mydumper + TiDB Loader 全量导出 MySQL 库中数据,并记录 SavePoint,然后导入 TiDB。 使用 TiDB Syncer 做实时增量同步,将 MySQL 中数据同步到 TiDB。

将 MyCAT 中按月拆分的表通过 ETL 以无主键的形式导回 MySQL 单表( MyCAT 分表中存在主键重复,不能单纯直接导入 TiDB,并且当时 TiDB 对于 ETL 工具的支持还未完善,无法使用 ETL工具导入 TiDB),只保留当前月份数据不导入。

将重新整合后的 MySQL 单表数据通过 Mydumper + TiDB Loader 导入 TiDB。

待上线当天晚上,将当前月份数据导回 MySQL(重建主键),再通过 Mydumper + TiDB Loader 导入TiDB。

@yangl
yangl / KafkaAdminUtil.java
Last active September 3, 2018 07:09
使用kafka admin api操作topic、partition、分组信息;使用jackson-module-scala来序列化scala返回的对象;
package xxx.kafka.utils;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.module.scala.DefaultScalaModule;
import com.google.common.base.Charsets;
import com.google.common.collect.Lists;
import com.google.common.io.Files;
import kafka.admin.ConsumerGroupCommand;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
@yangl
yangl / spring-data-redis.lettuce.pom.xml
Last active April 16, 2018 10:58
spring-data-redis + lettuce 配置
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
</dependency>
<dependency>
<groupId>io.lettuce</groupId>
<artifactId>lettuce-core</artifactId>
</dependency>
@yangl
yangl / Hystrix.dubbo.md
Created April 19, 2018 10:34
Hystrix dubbo 插件 备忘

欢迎使用 Hystrix Dubbo扩展功能


基于Dubbo SPI引入Hystrix。提供如下功能:

  • rest服务接口生成监控数据
  • 服务消费方业务代码零改动具有熔断、限流功能