
开源技术
文章平均质量分 54
liuqi_it
这个作者很懒,什么都没留下…
展开
-
基于netty手写rpc框架
直接在这里附上代码地址:https://gitee.com/liuqi_it/netty_test总体结构:总共三个模块:1、common模块:写一些公共的dto,pojo,util,interface等等2、consumer模块:rpc客户端模块,是一个springboot进程 (netty client进程依附于它)3、provider模块:rpc服务端模块,是一个springboot进程(netty server进程依附于它)common module的结构:consumer mo原创 2021-10-10 10:56:23 · 213 阅读 · 0 评论 -
java类scala的mkstring方法
在写java代码的时候经常要对一个集合或者数组进行用符号隔开后,作为一个字符串输出,通常是写一个循环拼接处理,但是觉得代码又臭又长,希望有类似scala的mkString一样简单的方法,所以自己写了2个方法,不多说,看代码package org.freespace.config;import java.util.ArrayList;import java.util.List;public class StringUtil { public static void main(String原创 2021-09-22 21:04:46 · 1084 阅读 · 0 评论 -
java动态修改jmx文件hashtree
我们在工作中做自动化测试平台开发时,会对jmeter进行二次开发,使它平台化使用,会碰到一个问题业务用户配置的参数化文件的路径一般是在window下面配置的一个,但是我们使用jmeter的分布式压测时,需要对jmx文件上传到平台,并分发到其他的linux的jmeter压力测试机去,那么路径就对不上了。你又不能要求业务人员上传的时候注意要修改路径,真的是很蛋疼,业务用户比咱们研发人员牛逼多了,你就得适配它。那么我们需要在程序的某个环节去替换它。举个栗子,如下jmx文件<?xml version原创 2021-09-19 18:12:41 · 938 阅读 · 0 评论 -
举几个栗子来侃一侃缓存穿透、缓存击穿、缓存雪崩区别
结合我们通常的业务场景来分析下redis的几个缓存的问题。我们是如何使用redis来做分布式缓存不喜欢多说,直接上图缓存穿透、缓存击穿、缓存雪崩区别和解决方案我比较喜欢表格的方式来表达区别,比较一目了然,请看类别/区别问题描述场景举例解决方案缓存穿透缓存穿透是指redis缓存和数据库中都没有的数据,而用户不断发起请求,如发起为id为数据库不存在的数据。这时的用户请求很可能是攻击请求(故意的请求不存在的),导致数据库压力过大。压力测试…啊打发手动阀手动阀手动阀手动阀啊手原创 2020-10-31 08:30:52 · 159 阅读 · 0 评论 -
使用xsd文件对对象的值进行动态验证
使用xsd文件对对象的值进行动态验证xsd动态验证对象值以前做了一个项目,挺有意思的,业务需求经常变动。业务方提出要求,希望我们对保存的对象的值,在不改动代码的情况下,能通过配置验证的条件。思索一下,那不就是通过配置文件来进行控制吗?不就像我们编写mybaitis、spring文件一样,可以通过xsd来控制我们输入。干就完了1、先定义一个值对象@XmlRootElement(name = "B2CReq") **//对应test.xsd的 <xs:element name="B2CReq"原创 2020-10-18 10:02:49 · 628 阅读 · 4 评论 -
apache commons-pool 对象池学习笔记一 代码结构
[b]pool项目[/b]到底什么是 pool, 简单来说, 就是先建立一些存在的 object, 放在 pool 之中, 当你有需要的时候,可以从 pool 中直接获取, 不需要重新建立.. 最常听到的就是 database connection pooling,因为建立数据库连结是一件耗时的工作, 如果我们先把连结建立好, 就可以节省这一些时间。databaseconnecti...原创 2012-05-28 17:36:26 · 152 阅读 · 0 评论