- 博客(113)
- 资源 (52)
- 论坛 (2)
- 收藏
- 关注
原创 与大牛一个工具的距离&JAVA性能分析
Java性能分析工具之JProfilerLinux系统性能分析windows系统性能分析JProfile工具分析Linux系统性能分析可以通过vmstata、iostat、prstat、top等命令进行查看。windows系统性能分析可以通过typeperf等指令,当然也可以借助很多图化化的工具来进行分析。如下文介绍的jprofilertypeperf -si 1 "\Syste...
2021-02-27 16:39:37
5
原创 热插拔实现之AOP
热插拔实现之AOP需求背景二、使用步骤1.引入库2.读入数据总结需求背景在项目的接口性能分析中,日志埋点往往是简单有效的方式,但副作用也十分明显,会造成日志过多,所有有没有可能,在需要进行性能分析时,进行接口耗时打印而正常业务执行时,不记录日志信息。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport warn
2021-02-26 16:07:24
11
2
原创 PG10.12的表分区实践
PG10.12的表分区实践背景一、常用的解决方法二、分区1、概念2、实操创建主表创建分区表RangeLIST创建索引约束主键测试背景数据库的应用中,老大难的问题主要有:连接速度存储一、常用的解决方法重启SQL与索引表与存储引擎数据库与应用架构(redis/loadCache/读写分离/分库分表)数据库与操作系统配置(PG缓存连接数配置)硬件从上到下,成本越来越高,收益越来越小ps.《阿里巴巴开发手册》中 单表超过500W行或单表容量超过2G二、分区本文仅关注在PG.
2021-01-30 16:50:48
6
原创 手写系列-Lock
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?前言实现自定义锁需要考虑的事情:1、锁的是线程,争用,首先有一个变量,用于表示锁与未锁的状态,还需要标识出是哪个线程获得了锁,其它线程等待的队列2、线程阻塞,使用LockSupport3、原子性操作状态一、pandas是什么?package com.zte.sunquan.demo.lock;import java.util.Queue;import java.util.concur
2021-01-14 19:53:47
16
原创 Rest简单导出csv格式数据文件
SpringBoot方便地导出csv格式数据文件前言一、引入HttpServletResponse依赖注入工具类方法参数二、导出实现三、基于切面赋能接口四、效果展示前言由于最近开发组件与数据相关,在数据规模越来越大后,传统swagger界面针对大批量的数据查询越来越慢(接口本身性能没问题),为了解决浏览器和swagger界面本身JSON渲染慢的问题,考虑可以通过指定的Rest接口,导出数据文件,方便用于核对数据。一、引入HttpServletResponse依赖注入 @Autowired
2020-12-29 17:12:55
39
原创 从BIO和NIO到Netty实践
从BIO和NIO到Netty实践前言一、什么是BIO一、什么是NIO二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。一、什么是BIO传统的BIO模型使用是java.net包中API实现Socket通信,而传统的BIO通信中阻塞共发现在两个 地方。服务端ServerSocker::accept客户端Socket数据读写这种IO的弊端即
2020-11-11 23:48:34
109
原创 通过Postman实现压力测试
通过Postman实现压力测试前言步骤建立分组编写脚本配置参数执行前言基于联调测试中存在相关接口的并发访问,会导致接口性能急速降低。为方便定位问题以及后序建立相关测试方案。需要开发相关并发测试的用例。方案1、通过代码开发并发访问的功能,借助FT进行执行校验方案2、编写ST脚本,进行并发测试上述方案不仅增加了工作量,也有难度。方案3、利用PostMan提供的并发功能,可以方便的实现并发压力测试步骤下文详细介绍方案3,需求为,要并发测试两个接口接口1:http://10.42.9
2020-10-31 15:01:58
301
原创 用lombok进行Bean序列化时bug
lombok中aBcd型字段序列化时踩坑问题描述在进行模型的定义过程中,发现导出yaml时,出现了两个字段造成客户端使用该模型序列化出现问题Jackson序列化选择题选项分别将下列示例Bean中的cFlag赋值true,userName赋值abc,根据以下1-5的Bean选择A:{“user-name”:“abc”,“cflag”:true}B:{“user-name”:“abc”,“c-flag”:true}C:{“user-name”:“abc”,“cflag”:true,“c-f
2020-10-27 22:33:55
138
原创 最佳实践之API文档导出
利用swagger导出接口文档前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言swagg一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport warningswarning
2020-09-30 10:17:31
93
原创 ThreadLocal子父线程实践分析
项目场景:项目中有个功能点是需要从第三方系统中读取链路数据,并进行处理后进行数据库的持久化。读取原始链路数据,是通过rest接口进行,为了提升性能,采集了并发获取,并发入库。问题描述:在并发入库的过程中,发现有时数据可以全部入库,有时却只有部分数据正常入库,在这里我们需要注意一下,在功能逻辑里,使用了可继承的本地线程变量进行数据的存储。具体业务代码不提供,通过编写用例复现了该问题,具体代码如下:package com.zte.sunquan.demo.thread.local;import jav
2020-09-24 10:42:02
33
原创 Arthas神器实战
https://www.jianshu.com/p/1dec08d290c1讲一下你在工作中遇到最难的问题是什么?1、技术攻关:保序kafka消息的性能处理优化2、团队管理:提升团队成员战斗力3、项目管理:牵头高可用、多管控、大容量相关工作推进...
2020-08-25 22:53:57
166
2
原创 一次线上关键REST接口调用卡死bug排查
一次线上关键REST接口调用卡死bug排查背景介绍初步排查组织攻关排查乱查一通现场再次复现总结背景介绍本来是可以在文章标题中将bug现象说的更具体一点,但聪明TX可能一眼就知道问题所在,相对来说没有了挑战性。问题是这样,微服务架构中,其中的一个提供协议拓扑的组件,在线上运行时,突然无法查询拓扑数据,手动进入后台调用时,相关调用接口也一直阻塞,无数据返回。如图所示:初步排查在第一次出现该...
2020-03-30 22:35:27
263
2
原创 GraphQL从零开始的应用实践-OSGI框架
GraphQL从零开始的应用实践-OSGI框架实现效果展示schema描述模型定义接口定义开发实现POM依赖scheam加载数据Fetcher绑定完成GraphQL创建GraphiQL实现效果展示组件对外提供了一个Rest用于传递输入的GQL语句与入参,如图所示,展示了一个按协议类型查询端口id和名称的例子:查询语句:{ "query": "query{filterLtp(key:\...
2020-03-21 10:37:39
125
原创 DailyZipRollingFileAppender配置指导
DailyZipRollingFileAppender配置指导VS RollingFileAppender依赖配置注意点VS RollingFileAppender与RollingFileAppender相关,DailyZipRollingFileAppender提供按时间进行压缩日志的功能,可以进一步降低日志的存储空间占用。同时按日志的修改时间排序可以进行日志的清理,保证日志的空间占用可控。...
2020-03-18 23:44:19
158
原创 OSGI应用中集成Jolokia
OSGI框架中嵌入Jolokia导入并安装jolokia的bundle阅读官方文档验证功能导入并安装jolokia的bundle<dependency> <groupId>org.jolokia</groupId> <artifactId>jolokia-osgi</artifactId> <versio...
2020-02-02 13:48:05
127
原创 巧用CompletableFuture返回值解决性能瓶颈
巧用CompletableFuture返回值实现并发需求背景CompletableFuture\需求背景对一组字符串数据进行处理,处理逻辑简单封装一个对象,包装该字符串,最终汇总返回。下面实现只使用CompleteableFuture,其它方式如paraStream不考虑。CompletableFuture<Void>实现考虑到性能,对于字符串的处理可以进行并发。实现如下: ...
2020-01-17 17:45:13
1812
原创 神来之笔-线程变量实践
神来之笔-线程变量实践ThreadLocal作用ThreadLocal实例子线程共享父线程的变量InheritableThreadLocal原理InheritableThreadLocal缺陷TransmittableThreadLocal实现TransmittableThreadLocal原理ThreadLocal作用ThreadLocal是用于存储线程在任务执行过程便于获取参数和设置参数的...
2020-01-04 15:47:54
64
原创 JAVA对象一致性比较(属性值)
JAVA对象属性比较实现HashCode方法序列化方法反射比较HashCode方法该方法也是最为正规的方法,重写对象的hashCode与equals方法,可以实现对象间相等性比较的判断。序列化方法该方法是将A和B对象分为JSON序列化成字符串,利用字符串的来进行对象相等性比较。简单贴一下代码:public static boolean seniorCompare(Object srcOb...
2020-01-01 14:16:35
309
原创 使用Multimap一次并发异常后的思考
Multimap引发血案一对多MapMultimap实现诡异的丢数据尝试一尝试二尝试三分析与结论建议一对多Map我们知道传统的map,支持一对一的映射,如果要使用一对多,则可以定义成Map<Object,List<Object>>方式。一般写法如下: public static <K, V> void addMapList(K key, V val...
2019-12-29 15:28:14
132
原创 Kafka消息消费之性能提升实践
性能提升之(批量提交+超时提前)应用场景接口定义实现测试用例应用场景实际中可能有这样的应用场景,得到一个记录不需要立即去处理它,而是等累积到一定数量时再批量处理它们。然后如果数据积累不到指定的数量,也不能一定等下去,造成这批数据一直得不到处理。所以还要增加超时机制,在超时时间到达后,即使积累数据不到指定的数量也进行提交处理。存储队列必须线程安全,如 Vector, Hashtable, St...
2019-12-21 09:22:37
440
2
原创 JSR 269实践
JAVA中SPI的实践欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入在csdn ...
2019-12-07 16:24:12
744
原创 优雅关闭线程实践
优雅关闭线程实现代码实现代码/** * @Author 10184538 * @Date 2019/10/28 13:08 **/public class BgpLsLinkMsgHandlerThread extends Thread { private volatile boolean running = true; @Override public vo...
2019-12-07 11:51:15
68
原创 CompletableFuture在性能优化中的使用
CompletableFuture在性能优化中的使用实践:打印一个集合内的所有内容ParallelStreamCompletableFutrue对比注意事项ParallelStream自定义线程池实践:打印一个集合内的所有内容数据准备: private static final int COUNT = 100000; private Vector<String> d...
2019-10-23 08:40:10
868
原创 使用MBean和Jolokia实现数据监控
使用MBean和Jolokia实现数据监控静态MBean的定义MBean注册使用代码查询MBean属性与执行方法如何避免每个静态MBean都要单独定义接口静态MBean的定义通过MBean的定义可以在系统运行时,查看系统内部的数据或执行系统内部的功能,真正的使用过程中静态MBean的使用是最多的。定义的MBean必须实现以类名+MBean的接口如下所示定义了一个MBean结构Shard...
2019-09-29 17:06:14
283
原创 Disruptor实际应用示例
Disruptor实际应用示例简介告警处理需求告警信息处理器调度DisruptorApplicationEventHandlerProcessClassUtil测试AbstractEventHandlerODL实现简介Disruptor它是一个开源的并发框架,并获得2011 Duke’s 程序框架创新奖,能够在无锁的情况下实现Queue并发操作。同学们代码中是否会使用到BlockingQueu...
2019-09-22 16:13:34
547
原创 SPI实现原理介绍
SPI实现原理介绍SericeLoaderLoad方法查找实现类创建实例SericeLoader从JAVA中的SPI实践学习中了解到查找实现的一个重要方法为:ServiceLoader shouts = ServiceLoader.load(Handler.class);其类结构为:public final class ServiceLoader<S> imple...
2019-09-22 11:30:37
298
原创 JAVA中的SPI实践学习
JAVA中的SPI实践学习介绍Animal接口Animal接口实现调用测试模块更进一步**具体实现逻辑依赖为三步**介绍SPI ,全称为 Service Provider Interface,是一种服务发现机制。它通过在ClassPath路径下的META-INF/services文件夹查找文件,自动加载文件里所定义的类。这一机制为很多框架扩展提供了可能,比如在Dubbo、JDBC中都使用到了...
2019-09-22 11:00:15
133
原创 Actor测试用例一般写法
对于Actor的测试,可以使用TestActorRef和TestProb:TestActorRef:用于获取Actor对象,能够获取actor中内部属性,使用方法underlyingActor(有泛型)TestProb:用于判断actor接收消息后回应消息的判断,可以验证actor功能是否正常,使用方法expectMsg具体使用示例参考如下:package com.zte.s...
2019-09-19 17:57:20
88
原创 清空PG库中所有表中数据SQL脚本
DO $$DECLARE names CURSOR FOR select tablename from pg_tables where schemaname='public';BEGIN FOR stmt IN names LOOP EXECUTE 'truncate table '|| quote_ident(stmt.tablename); END LOO...
2019-07-30 00:43:26
1314
原创 OSGI框架里对于依赖的非bundle化的JAR处理
目前项目使用的是OSGI框架,随着功能越来越复杂,依赖的第三方开源组件也越来越多。但并不是所有通过Maven依赖的jar都是bundle,这样导致系统需要处理这类情况。目前方式两种:1、在使用模型的pom文件加入该jar的依赖,在feature.xml文件中将该jar包装成bundle发布 <dependency> <groupId...
2019-07-13 09:21:11
529
原创 GraphQL实践(三)-结果统一处理
GraphQL返回结果处理,由于提供的是REST接口,所以优先返回JSON格式数据,对执行结果使用JSON进行序列化。相关代码如下package com.zte.sunquan.demo.graph.util;import java.util.Map;import lombok.extern.slf4j.Slf4j;import com.fasterxml.jackson.cor...
2019-07-01 19:48:34
598
1
原创 GraphQL实践(二)
用GraphQL实现常见的CRUD功能,本文介绍简单的查询功能package com.zte.sunquan.demo.graph.ql;import static graphql.Scalars.GraphQLString;import static graphql.schema.GraphQLArgument.newArgument;import static graphql.s...
2019-06-28 17:17:55
87
原创 GraphQL实践(一)
微服务架构下,使用REST进行微服务间交互,针对基础数据服务模块(以下简称A),目前陷入困镜,主要问题是:日益增长的外部需求和应用,对数据访问接口提出过多定制化内容。使得开发疲于开发适配接口和适配模型,以满足应用各类要求下面举例说明:业务自身的业务需求或其它原因,已经定义好了数据模型,需要A提供额外的接口,返回他们定义的数据模型格式的数据 业务无后台,针对数据查询,只要有交互就提...
2019-06-27 19:50:13
141
原创 ODL VS ONOS中YANG转化对比
Yang(A Data Modeling Language for the Network Configuration Protocol)是一种用于模型配置和状态数据建模的语言。 作为一门语言有其自身的规则语法(参考RFC6020),而证明一个句子,是否为YANG语言这个命题自然就涉及到编译原理的内容。 编译原理的主要内容包括:语言和文法、词法分析、语法分析、语法制导翻译、中间...
2018-12-02 10:48:35
782
原创 项目功能验收阶段的小问题
在进行项目管理过程中,每个迭代或每个阶段的任务功能验收是一个必不可少的环节。特别是项目团队成员较多,任务功能分散的情况中。本文就个人工作中情况,技术上介绍下功能点验收流程遇到的小问题。本司有一套对feature、story进行管理工具。迭代结束时亦是基于上面的feature、story由QA进行验收。功能验收标准,主要有以下几条:输出 具体要求 是否必要 单元测...
2018-12-01 10:34:14
846
原创 Lombok实践
最近在做JavaBean相关的功能开发,在写到第三个JavaBean的Set/Get方法时,已然开始烦躁,通过搜索,发现了lombok这个工具,看来自己还是太OUT了,下面简单介绍这款工具的使用。为使IDE在编码时不至于报错,请安装lombok这个插件如果无法上网,可以去https://github.com/mplushnikov/lombok-intellij-plugin/rele...
2018-10-22 22:26:58
238
原创 Jetty扫盲之实践(一)
Jetty作为项目使用的轻量级web容器,使用广泛。目前的微服务化也是以该技术为基础。熟悉如Spring-boot技术的同学不要嘲笑,本文只是技术学习而已。 基本实现作为web服务,可以通过web.xml的进行配置,主要对servlet进行配置(本文不通过配置文件而是通过代码直接加载Servlet)<?xml version="1.0" encoding="ISO-88...
2018-10-20 15:10:57
446
原创 DropWizard入门实践
Dropwizard是一个操作友好、开发RESTful服务的Java高性能框架,Dropwizard有自己独立的风格,可以辅助以Jetty Jackson Jersey和Metrics提供强大的基于JVM后端服务,Dropwizard将稳定 成熟带给了Java生态系统,大道至简,轻量库包让你聚焦业务,Dropwizard有out-of-the-box支持复杂的配置 应用度量记录、日志等,让你的队伍...
2018-09-10 08:51:18
1455
原创 ODL中RPC接口的restconf化原理
在ODL的使用过程, 一直疑惑他是如何将YAGN文件定义的RPC映射成restconf接口。换句话说,即restconf接口是如何对应指定的RCP的。原理介绍下面针以RPC GetConfigLeader为例,揭开其中真相:以下面的RestConf调用接口,可以通过postman或api-doc直接访问,亦可以通过ODL提供的api-doc访问:http://localhost:...
2018-09-07 11:42:20
2586
原创 ODL中使用YANG-UTIL带来类无法加载BUG
ODL基于的MDSL,其模型用YAGN语言进行定义,编程则使用yang-toolst生成的类,而产生的数据,即存储在ODL的DataStore中的数据需要经过序列化和反序列化。而序列化反序列化代码是通过Javassist动态生成的。BindingToNormalizedNodecodec.java public <T extends DataObject> Entry&...
2018-09-06 20:39:04
362
C# winform .net图片管理系统
2011-07-21
winForm C#图片管理系统,图片查看软件
2011-07-20
examforNIITexamforNIIT
2010-01-06
超越对手--软件项目经理的18种实用技能
2011-08-27
android mp3player mp3播放器
2011-07-28
暑期实习项目-电信计费管理系统
2011-12-10
前端js 类似cubeGrid界面,能用哪种前端框架
发表于 2015-12-15 最后回复 2015-12-17
为什么还要long
发表于 2011-07-06 最后回复 2011-07-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人 TA的粉丝