java
qq_37361535
这个作者很懒,什么都没留下…
展开
-
基于springboot+netty自定义rpc框架(starter组件方式)
一、rpc生产端自定义注解为/** * @author :hzz * @description:rpc服务端提供的注解 * @date :2022/1/2 10:47 */@Target({ElementType.METHOD,ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Componentpublic @interface RpcService { /** * 注册的生产者发布名 * @retu原创 2022-01-03 01:05:52 · 860 阅读 · 0 评论 -
mybatisplus 多租户自定义支持多个值
mybatisplus中的多租户只能查询一个值,但是实际业务中可能是多个值例如:where veid in(’’,’’,’’)这样的情况所以就读了下源码,并自定义封装了下废话不多说,直接上代码基于最新的Mybatisplus <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactI原创 2021-11-08 17:22:56 · 1926 阅读 · 7 评论 -
利用log的appender 发送rocketmq消息 并使用mysql分表记录重要流程节点代码
最近有个需求,由于netty收到的设备数据之后要进行非常长的业务处理,所以需要将这些业务处理的重要节点记录下来,而这个数量非常巨大,但是又不希望侵入业务代码,所以想说直接用logger日志的方式进行记录流程一、log日志中配置 appender 1、首先得拿到nacos中保存的rocketmq的服务器地址 <springProperty scope="context" name="rocketmq_name_server" source="rocketmq.name-server"/原创 2021-10-19 14:59:58 · 361 阅读 · 0 评论 -
使用aop+swagger创建中文操作日志并写入思路记录
最近有个需求,需要将用户的操作日志记录下来类似写入的样式如下由于不想侵入业务代码,也不想重新自定义注解,所以就考虑直接使用swaager的注解1、controller类上面的 @Api(tags = "") 注解2、接口上面的 @ApiOperation 注解3、参数上面的 @ApiModelProperty并自定义了几个注解用于扩展1、@NoWriteLog 不写入日志的接口2、@NoWriteProertyLog 不写入日志的传参字段3、@ReturnNoLog 强制写入日志的接口原创 2021-10-19 14:45:43 · 218 阅读 · 0 评论 -
基于springboot 的多数据源jdbcutil(支持多数据库事务)
基于springboot 的多数据源jdbcutil(支持多数据库事务)一、配置文件 application.properties主数据源必须配置spring.datasource.driverClassName=spring.datasource.url=spring.datasource.username=spring.datasource.password=主数据库存储的命名为 mysqlDao其他数据库配置为spring.datasource.mysql96.driverClass原创 2021-03-03 15:32:54 · 466 阅读 · 1 评论 -
nacos的gateway网关中改变路由配置之后刷新的方法
package com.hzz.hzzgateway;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.cloud.gateway.event.RefreshRoutesEvent;import org.springframework.cloud.gateway.filter.GatewayFilter;import org.springframework.cloud.原创 2021-01-19 14:41:14 · 972 阅读 · 0 评论 -
报表统计的流式计算思路
最近公司要进行大数据的报表统计,主要是从各个维度的基础表中将数据按月、日、周进行统计,起初的小量数据是直接使用sql进行统计语句,并将统计结果插入到各个统计结果表当中,但是这种做法缺点也是很明显的,由于统计的维度高达200个,所以sql语句对于数据库的压力很大,而且统计出来的结果会在程序内存中滞留很久的时间,很容易出现程序内存溢出也会导致数据库的压力增大影响整体系统性能,所以后来经过讨论采用了基于rocksdb作为中间缓存的流式计算报表统计方式。 主要计算逻辑为 批量读取基础表(每一万条或者更多)—.原创 2021-01-19 14:22:23 · 398 阅读 · 0 评论 -
二维数组的排列组合
/** * @author :hzz * @description:TODO * @date :2020/8/18 13:55 */import java.util.ArrayList;import java.util.LinkedHashMap;import java.util.List;public class ArrayCombination { public static List<Object[]> combination(List<Object[]&原创 2021-01-19 14:00:14 · 156 阅读 · 0 评论 -
基于freemarker模板引擎自动生成代码文件
代码生成,java、html 增删改查、基于表结构表字段等各类代码生成,只要有模板,做过一遍的功能不用再复制来复制去改这个类名那个类名,可一键生成首先maven 引入 org.freemarker freemarker 2.3.30 2、在resources中创建3、核心代码```javaimport com.hzz.hzzcloud.freemarker.Vo.TableVo;import com.hzz.hzzcloud.fre原创 2020-12-03 16:13:06 · 376 阅读 · 0 评论 -
Mysql分表分区工具的思路记录
首先单表过大,肯定会导致性能下降,虽然说Mysql可以对表进行分区,但是分表分区不影响嘛,在大数据高并发情况下表现还是尚可的,当然有人会说还有ca啊,pika啊这些数据库为什么不用,我自己本身也是用过这些数据库,有一个最大的使用感受就是限制相对比较大,不适合用于统计查询,而mysql分表还能使用关系型数据库的特点,那就是复杂业务场景的查询 废话不多数,接下来是我们公司正在使用的项目的应用方式1、开发分表分区创建服务涉及到三张表,一个是配置表,主要记录几天生成一张分表,几天增加一个分区,新建分表的语.原创 2020-09-30 11:30:11 · 225 阅读 · 0 评论 -
ConcurrentHashMap中既能保证同步又能保证性能的一次测试记录
import java.util.Map;/** * @author :hzz * @description:TODO * @date :2020/7/15 14:53 */public class Node<K,V> { final int hash; final K key; volatile V val; volatile Node<K,V> next; Node(int hash, K key, V val, Node原创 2020-07-15 16:59:03 · 190 阅读 · 0 评论 -
避免缓存批量过期导致数据库压力过大的测试类
import java.util.ArrayList;import java.util.List;import java.util.Map;import java.util.concurrent.ConcurrentHashMap;import java.util.concurrent.atomic.AtomicInteger;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLoc原创 2020-07-14 15:23:55 · 90 阅读 · 0 评论 -
基于freemarker自动生成mapper多条件查询语句
1,创建mapper.xml 模板文件<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><!--${tableconment}mapper --><mapper namespace="${tablename原创 2020-06-16 15:10:18 · 522 阅读 · 0 评论 -
easyexcel自适应列宽的一种方式
源代码中,是读取所有列的长度,然后取最大列的长度,但是它的本地缓存用的是static,导致每次导出的列宽都不一样,所以我就取巧了下…public class Custemhandler extends AbstractColumnWidthStyleStrategy { private static final int MAX_COLUMN_WIDTH = 255; private Map<Integer, Map<Integer, Integer>> CAC.原创 2020-05-11 11:35:21 · 17673 阅读 · 1 评论 -
基于EasyExcel的读取exl并返回成功/失败数量及原因,并将导入失败exl的导出到系统路径中
首先,这个是读取和导出exl都需要用到的实体类的基类,这个是可以扩展的,读取失败的exl想要加入其它列的字段都可以加在这里pom <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId>...原创 2020-04-22 17:26:46 · 12277 阅读 · 8 评论