自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(103)
  • 资源 (11)
  • 收藏
  • 关注

原创 [前端]开启VUE之路-NODE.js版本管理

用历史性的项目来学习,为了降低开发环境的影响因素,各种版本号最好能一致。为了项目能够快速启动,Node.js的版本管理,可以带来很大的便利。通过以上步骤,你就成功地将Mac上的Node降级到指定的版本了。需要注意的是,在执行这些步骤之前,请确保备份好任何重要数据,并理解降级可能导致某些软件不兼容或功能受限。你可以在“应用程序”文件夹中找到它,或者通过Spotlight搜索来打开。现在,你可以使用nvm工具来管理Node版本。这将显示当前所使用的Node版本号。替换为你刚才安装的版本号。

2024-02-22 13:46:18 1023 1

原创 2022年终总

伴随着春节假期的结束,猿Why的2022年也全部结束,年终总结却一直拖到复工第二天。

2023-01-29 22:15:51 139

原创 [杂货铺系列]SpringBoot集成ElasticJob遇到的版本不兼容问题

dubbo、elasticjob、zookeeper版本冲突问题

2022-11-20 17:36:16 1036

原创 [Elasticsearch]系列-RestClient StackOverflowError

Elasticsearch Client StackOverflow

2022-07-23 18:09:10 758

原创 [杂货铺系列]Docker&ClickHouse-Client导数据

Docker&ClickHouse-Client导数据1.本地安装DockerDesktop略……2.Pull Image> docker pull yandex/clickhouse-client3.导入数据> docker run -i yandex/clickhouse-client --format_csv_delimiter="," --host clickhouse.server.ip --port 9000 --database=db_name --user

2022-05-26 18:52:31 429

原创 [数据库]不可见字符查询

问题背景猿Why在做数据处理的时候,数据库中有一些数据,用数据库客户端查询出来数据看到是“空”的,但是where条件限制='' 和is null都过滤不到这些数据。猜想回想大学时期C语言程序设计课程中学到的ASCII有一部分字符是控制字符,不显示。验证看看是不是以控制符开头select * from tablename where substring(tablename.field, 1,1) not between char(0) and char(31)结论如果查到数据了,证明猜想就对

2022-05-12 18:05:21 662

原创 [杂货铺系列]应用异常线程堆栈查看

猿Why在此记录一下,检查应用线程堆栈信息的几个步骤1、查询应用的进程> ps -ef | grep namename为应用名称中包含的字符2、进程中的线程耗时情况> top -Hp 15591559是第1步查到的结果(应用进程号)上图PID列为线程号,下一步会用到3、jstack查看线程堆栈信息> jstack 1559 |grep `printf "%x\n" 1715` -A 30printf "%x\n" 1715将线程号转换为16进制的值,配合js

2022-03-02 13:54:18 257

原创 [杂货铺系列]-【INVOKESPECIAL/STATIC on interfaces require ASM 5】

猿Why碰到一个异常【INVOKESPECIAL/STATIC on interfaces require ASM 5】。跟踪到异常抛出的类:org.springframework.asm.MethodVisitor /** * Visits a method instruction. A method instruction is an instruction that invokes a method. * * @param opcode the opcode of the ty

2022-01-21 20:21:17 1328

原创 2021年终总

2020年终总2021年的年终总结比以往来的晚一些!最近在努力回顾,过去的这一年都发生了什么事情,有何得失!关于工作2019年7月到2021年9月,在一直处于出差状态!不是到处跑的那种,而是总在一个“偏僻”的地方。以至于习惯、适应了那里的生活。按照猿Why的习惯,如果在工作方面有成长、突破,那一定会以博文的形式输出、记录!但是从2021年整年的文章输出来看,几乎没有(与2020年相比)。给出这样一个“解释”:超额完成上一年的期望!“生活丰富多彩”!元旦(2022.01.01)那天,回顾一整年,在.

2022-01-09 18:50:50 432

原创 [Git系列]- Gerrit push [no new changes]

猿Why已经很久没有写东西了!时间久到:感觉什么都没有记录的必要了,如此下去怕是要废了!至于其中原因,在下一篇年终总结中说明吧!正题开始(背景)猿Why上之前所在的团队,代码版本控制用的是GitLab。对于代码的管控相对宽松!目前所在团队,使用比较早的Gerrit + Jenkins的方式做持续交付!虽然之前有短暂的接触过,但是并没有用熟悉!现在的团队既然还是用Gerrit + Jenkins,那么还是有必要再捡起来!所以,就在这里做一个关于Git的系列文档记录,作为学习笔记!Gerrit相关的问题

2022-01-04 22:28:44 2268

原创 [ElasticJob系列]ElasticJob-Lite试验

猿Why在工作中解决问题的时候,了解到了分布式任务调度。看到“分布式任务”字样,原认为是“处理比较消耗资源的请求,使得此类请求处理均衡分发到分布式的系统中”,直到看到了扫盲文章。在看完ElasticJob官方文档之后,终于对分布式任务调度有了入门了解。分布式任务调度中心场景就ElasticJob而言,分布式任务调度比较适合的场景是后台作业。特别是定时的后台作业,并且业务处理逻辑比较简单,任务之间的数据依赖性不大的情况会比较适合。例如:员工每月工资定时发放,考勤计算工资发放金额。按照自己的理解,对El

2021-05-13 19:53:18 1057 2

原创 [JMeter系列]JMeter基于Swagger生成脚本

猿Why在上JMeter系列文章利用Fiddler生成JMeter脚本中介绍点测试+Fiddler抓包生成测试脚本的内容分享。在本文将介绍基于Swagger接口文档,生成JMeter测试脚本的内容分享。为什么要这么做?任何项目开发都是有周期的。开发工作和测试工作总是交叉迭代进行的,作为开发人员,猿Why希望工作当中尽可能少干体力活、手工活,有效利用前期的工作成功,提升工作效率。作为开发人员,在交付接口之前一定会进行测试覆盖。开发时候测试、交给测试同学测试、交给前端同学联调测试。而我想达到一个目标:交

2021-03-22 10:13:20 723

原创 [JMeter系列]利用Fiddler生成JMeter脚本

猿Why在JMeter学习笔记与实践一文中,介绍了JMeter的使用方式。

2021-03-17 21:18:07 358

原创 [MySQL系列]异常详细信息

猿Why从MySQL安装开始逐步了解MySQL语句之外的知识。从本章开始记录一些使用MySQL过程中遇到的问题和解决过程。执行完SQL语句,异常情况下只有异常编码,而没有详细信息按搜索引擎索骥在开发或者测试阶段,这种情况是不利于问题定位的。首先搜索大法,找到线索:lc-messages-dir。按照介绍,首选在my.cnf文件指定启动参数:lc-messages-dir=/usr/share/mysql/english/但是并没有实际解决猿Why的问题。可能还是缺了哪一环。有了关键入口,

2021-02-25 23:46:20 2314

原创 温故知新-Servlet

猿Why在完成需求的时候,顺便复习了Servlet的基础知识,通过这篇文章记录一下,算作是对[杂货铺系列]ProxyServlet权限托管实践篇的补充。Servlet接口释信息解读Servlet作用Servlet是一个运行在服务端的,用于处理客户端请求并返回结果的Java应用程序。通常使用HTTP协议。实现一个Servlet可以通过继承类通用类型Servlet:javax.servlet.GenericServlet可以实现接口:javax.servlet.http.HttpServ

2021-01-30 16:41:40 168

原创 [杂货铺系列]ProxyServlet权限托管

猿Why上个月接到一个需求,大致要求:在一个运维管理系统(System S)中集成另一个已经成熟的日志管理系统(System T)(没有权限管理)。拿到需求,首先想到:通过代理方式做资源(API、静态资源)访问、权限控制。在一个微服务(分布式)的环境下,网关和外层的Nginx(反向代理)其实都可以实现这个需求。现实情况,我们没有网关服务,Nginx做用户信息粘合不好(团队中没有人擅长)。所以,经过我的考虑,直接在S系统中添加个代理,所有T系统的访问,都经S一手,这样在S系统中就可以做粒度很细的权限控制。

2021-01-30 11:19:00 751

原创 [Spring Cloud系列]Ribbon服务更新

之前,猿Why认为应用中集成Consul进行服务注册与服务发现。那么,应用中的服务列表应当也是由Consul模块进行更新。为了给同事一个准确的回答,再次看了看源码后,发现服务列表的更新,并不是由服务注册中心和服务发现模块来处理的(比如Consul、Eureka)。首先,服务注册中心的概念是抽象的,所以服务列表的更新必然不是由服务发现的具体实现方式(Consul、Eureka)来实现的。具体实现方式仅需要提供从服务注册中心获取服务列表的API,提供给负载均衡时候的服务发现使用。猿Why目前工作中用到的负载

2021-01-06 20:50:39 720

原创 2020年终总

2020年已经结束了,上一篇年终总,文末对今年的几个期许,算是完成了一半。良好的作息习惯已经养成(DONE)贡献开源社区(RMB)DONE)拉萨没去成半马没有跑年初,因为疫情的原因,得以在家安逸两周时间。因为遛狗能排解90%的心烦意乱,即便是不能出小区,也是可以的。国内复工初期,同事们陆续从全国各地赶到了办公现场,经历一些波折回到工作地。经历过两周隔离,可以到现场办公。刚进入办公现场,心理经过一段时间的调整:戴口罩办公、各种群里“每日填报”……工作任务之外,最重要的一件事情:向别人证明自己.

2020-12-31 11:38:11 145

原创 [Spring Cloud系列]Consul实验篇

猿Why为什么会想着写这样一篇文章?请先阅览先序篇。先序篇,对Consul服务的服务特性、Spring Cloud Consul模块服务注册与服务发现原理进行了了解。但是感觉还是不够,在与同事“抬扛”的时候,明显的底气不足,特别是和“云端的架构师”聊服务治理的时候。所以,猿Why打算针对Consul的一些服务特性做几个验证性试验。问题一:Consul服务重启,应用服务是否需要重新注册?实验步骤:启动Consul服务启动应用服务,注册到ConsulConsul服务关闭Consul服务重新启动

2020-12-19 15:29:15 1794 2

原创 Elasticsearch实用笔记

一年之前,猿Why了解到Elasticsearch的存在,当时在Linux环境下搭建的ELK服务进行学习,并且做了笔记,关于Elasticsearch的部分一笔带过。最近工作中再次用到,所以再做更详细的了解。Elasticsearch的基本概念ES提供文档类型的数据存储、查询服务。暴露接口,提供给外部应用使用。索引:Elasticsearch中索引是存放数据的地方,类似于DB中的数据库概念类型: 类型是用来定义数据结构的,类似于数据库中表的概念文档:文档就是最终的数据,类似于数据库具体一张表中的

2020-12-10 10:03:57 97

原创 [Spring Cloud系列]Consul-番外篇『自定义健康检查』

继续上一篇文章,猿Why最近与Consul杠上了。也是因为有这样一个需求:“服务启动(注册)失败请款下,要求Consul通过HTTP方式对服务进行健康检查,检查结果是critical”。我对这个“失败”的想法是比较多的,比如:中间件、数据源访问不通,我也可以认为是失败。那情况不就复杂了吗?最开始的路线是通过一个事件(失败、异常事件)去触发:builder.down()。对,依然是要基于 <dependency> <groupId>org.springframe

2020-12-02 23:32:53 3669

原创 [Spring Cloud系列]Consul开篇

猿Why在之前的一次面试中被问及一个问题:“你们的服务治理是怎么做的?”。当时猿Why还是Spring Cloud小白,工作中也还没有接触Spring Cloud系列的技术栈,面试结果也就可想而知了。 目前在做的项目,使用Spring Cloud 技术栈。确实感到服务治理(服务注册、服务发现、服务下线)是一列重要的事情。线上服务出现问题后能快速排查故障服务节点;服务不可用在被用户感知之前,如何通过预警的手段,排除故障。如果对使用的服务注册中心服务不了解的化,是很难快速定位解决问题滴。 出于“对技术的热.

2020-11-28 16:13:26 174

原创 [Redis系列]Redisson用途-分布式对象

Redis除了提供key-value的存储服务之外,针对一些业务场景,有特殊的应用。猿Why比较感兴趣的有这么几种:Object Bucket(通用对象桶)可以避免直接使用Redis命令做数据存储和查询。Redission在执行命令的外层,封装了这个对象,一般string类型的数据存储、查询都是使用这个类型做暂存。Geospatial Bucket(地理空间对象桶)位置信息,可以理解为将经纬度存储在一个对象中。位置信息可以做计算,计算范围、计算距离。常见的使用场景:微信附近的人、地图位置显示等。

2020-11-25 13:08:55 1660

原创 [Redis系列]Redisson用途一Redis服务连接工具

Redis服务目前有四种形式:单机、主从模式、哨兵模式、集群模式。Redission作为一款实用很普遍的Redis应用客户端,也支持者几种模式的配置。单机模式主从模式哨兵模式集群模式

2020-11-23 21:40:27 3294

原创 [Redis系列]基础知识扫盲

猿Why花了两周左右的时间,在阿里云开发者社区学习了一门Redis入门到精通课程:基础篇、进阶篇对Redis的知识点进行恶补、扫盲。这篇文章,我打算作为一个小结,以回忆的方式整理一下知识点。Redis基础知识学习笔记Redis基础数据类型以及操作命令string命令hash命令list命令set命令zset命令通用命令Redis四种服务模式单机版提供服务主从复制提供服务哨兵模式提供服务集群模式提供服务Redis常被提及的问题缓存预热缓存雪崩缓存击穿缓存穿透本质上将现在达到程度下一步Redis基础数据类型

2020-11-23 16:39:47 152

原创 [Redis系列]-开篇之Redission#set成功get不到

Redis目前已经是行业内很成熟,很香的一款nosql。猿Why最早时候使用,要追溯到在上一家单位的时候了。当时只是做一个服务调用者,从未了解过Redis的知识。但是最近项目中多次遇到一个奇怪的问题:“应用程序调用Redis服务(Redission作为客户端),set成功之后,get获取数据为null”。为了一探究竟,方便排查问题,决定认真学习一番Redis。学习分为三个步骤:基础命令学习、客户端工具学习、Redis服务学习(集群),以此文章为开篇。为了将问题最简化:在本地启用一个单节点Redis服务

2020-11-20 23:06:39 3279 4

原创 模板模型前端框架项目线上调试-偷梁换柱

猿Why到目前为止,接触过一些基于Freemarker的前端项目。业务系统中,功能模块的前端页面从服务端加载出来,渲染到浏览器页面。有一个痛点,当线上环境中,功能模块前端代码(js)出现bug,又没有机会在目标代码中进行debugger的时候就很麻烦。因为猿Why认为,为了前端代码调试,启停服务(线上)是不值当的。模型:index.html<body> <div class="center"> <p id="target"></p&gt

2020-11-15 11:14:46 165

原创 【RocketMQ系列】-Topic创建机制

猿Why自问自答,先来回答上一篇文章中的三个问题!1:RocketMQ的Topic创建有几种方式?归根结底就一种方式:DefaultMQAdminExt(rocketmq-tools)形式上会有两种方式:预先创建生产者第一次发送消息时候使用默认策略创建2:RocketMQ服务没有指定的Topic情况下(某种业务场景),是由业务流程发起者来创建Topic还是RocketMQ运维人员创建合适?线上环境当然是预先创建合适,开发环境中就都可以了。3:Producer和Consumer在执行

2020-11-05 21:29:36 771

原创 【RocketMQ系列】-开发人员自主createTopic

开始之前,猿Why先抛出一系列问题:RocketMQ的Topic创建有几种方式?RocketMQ服务没有指定的Topic情况下(某种业务场景),是由业务流程发起者来创建Topic还是RocketMQ运维人员创建合适?Producer和Consumer在执行start方法之后,是否会创建Topic到Broker?如果有路过的大佬,希望不利赐教!!!!!!!!!!!!!!!!!!!!!!!!!!!!!然后我来描述一下我遇到的问题:producer和consumer,start后,尚未进行消息的生产

2020-11-04 21:40:40 3199 3

原创 [数据库系列]批量处理数据-Excel小助手

猿Why在项目开发和项目运维期间遇到过一些情况,需要更新某一张表中的数据,目标更新数据来源于当前数据库不是同一个数据源(可能是业务同学甩过来的一个Excel)。遇到这样的情况,我的处理办法是用Excel中的数据,拼接SQL语句去处理。比如这样一个简单例子:update demotable set demotable.a ='EFG' where demotable.b = 'uniquekey';当数据量在1000以内时候,并且工作频率不高(比如一年一次),用Excel拼接SQL就很合适。="

2020-10-14 09:57:43 167

原创 [Spring系列]数据校验

数据校验在JSR中提出规范要求,Hibernate在hibernate-validator-api中予以实现。spring在spring-context-validation加以补充,在spring-web中加以应用。Spring中的数据校验JSRvalidation-apiHibernatehibernate-validatorSpringspring-context应用场景JSRvalidation-api下面展示一些 内联代码片。<dependency> <grou

2020-09-30 10:33:21 328

原创 [Spring系列]开篇

Spring系列学习Spring学习记录-开篇开篇-Spring体系架构Core ContainerBeansCoreContextSpELAOPAspectsInstrumentationMessagingData Access/IntegerationJDBCORMOXMJMSTransactionsWeb(MVC/Remoting)WebSocketServlet(WebMVC)WebPortletTestSpring学习记录-开篇开篇-Spring体系架构Spring模块化,开发人员引入需要

2020-09-30 09:51:45 136

原创 从源码入手:Filter与Interceptor

关于Filter与Interceptor的文章,多如牛毛!但是“每两篇文章中就能找到三个冲突(有差异)的知识点”。猿Why想找到官方“辟谣”,所以打算从源码入手,来看看二者。文中只会介绍Filter和Interceptor各自可以做什么,不会说明二者的差异和不同(原因后文说明)。API来源:Filter:javax.servlet.FilterInterceptor:org.springframework.web.servlet.HandlerInterceptor可见,二者的来源是完全不一样的。

2020-09-16 09:27:34 142

原创 [JMeter系列]JMeter学习笔记与实践

JMeter教程:传送门学习完以后,人为JMeter适用场景:①压力测试(模拟多用户、多线程情况下测试、文档形式输出测试报告);②应用接口功能测试(包括登录功能、请求头处理、前置处理、后置处理、多种断言)。关于JMeter的理论知识学习,请参考来自网络上的教程,员外在此补充一些实践(应用接口功能测试方面):场景描述:一组域名相同、有登录校验、需要相同的前置处理、断言的接口进行测试。①:相同的配置,一处配置即可,例如:域名、自定义请求request header②:基于HTTP Cookie M

2020-09-04 13:59:59 157

原创 autoconfig-maven-plugin异常情况

最近在使用autoconfig-maven-plugin打包应用遇到一个异常:Nested JAR URLs are not supported跟踪代码后,发现JDK中一段代码的处理,如下图:分析代码后,暂定认为是JDK(jdk1.8.0_231)中代码逻辑不严谨,后边继续跟进。...

2020-08-30 23:10:52 3238 9

原创 Java属性拷贝——大道至简

写业务代码的同学,一定经常使用一个API:org.springframework.beans.BeanUtils#copyProperties(java.lang.Object, java.lang.Object)从一个实例中拷贝属性值到另外一个实例(可以是相同class或不同class)对于写业务代码同学来说,确实很“省”代码。员外近仨月就节省了很多代码。例如,历史文章中有一篇,就是自己为了偷懒,写的一个工具方法:传送门昨天review同事的一段代码(压测报告响应时间长),业务逻辑非常简单:数

2020-07-05 20:19:34 475 1

原创 常用SQL语句-Oracle篇

数据库相关的文章很有一段时间没有写了。最近得拾起来,在这里贴一些自己常用的SQL:SQL执行,事务提交一条龙:begin #insert、update、deletecommit ; exception when others then rollback ; end ; 数据库表锁死解决:SELECT s.sid, s.serial# FROM v$locked_object lo, dba_objects ao, v$session s WHERE ao.object_

2020-07-01 21:27:03 135

原创 实现一个分页接口需要几步?

如何写出一个返回分页结果的接口?先看下图,一个支持分页的数据表格需要什么样的数据结构?Step01:定义分页数据结构PageInfo {currentPage:当前页码totalPage:总页数totalCount:符合查询条件的记录总数pageSize:页面大小(容量)pageBegin:条件查询语句(SQL)左边参数(非必须,可计算得出)pageEnd:条件查询语句(SQL)右边参数(非必须,可计算得出)list:返回当前页的数据(记录)}Step02:PageInfo的初始化

2020-06-28 20:29:48 3206

原创 保持敬畏心

2020年5月的技术文章要鸽了!从COVID-19爆发,到目前,猿WHY的心情经历了几个阶段:阶段一:国内疫情爆发,正直春节假期。可能因为好多年没在家待这么久的时间,所以一直轻微咳嗽(第一时间在医院检查过,普通咳嗽)。在家中这些天:遛狗、看电视剧、睡觉,盼着能早点复工,能有事情做。终于在2月中旬,开始陆续返程复工。在经历过4次机票改签,三次“突围”之后,终于顺利赶赴工作地。阶段二:抵达工作地后,直接赶赴宾馆(14天隔离)。同事们从全国各地陆续返回工作地,按照公司要求,进行隔离(隔离期间的费用由公司

2020-05-24 18:21:17 194

原创 Java对象拷贝

在有些业务开发场景中需要对已有的数据进行copy(或者clone)操作,那么现有的copy方式有哪些?开始讲之前需要进行知识点扫盲:什么是引用?Java中的引用类似C/C++中的指针,引用的值,指向内存中的一块空间。对象引用赋值示例: @Test public void referenceTest() { User source = new User();...

2020-04-29 23:28:09 283

JmeterExport.zip

Fiddler抓包记录导出为JMeter执行计划脚本文件插件

2021-03-17

bootstrap遮罩效果

bootstrap 前端 div方式 实现遮罩效果 数据加载过程中禁止用户操作

2018-05-29

jquery-calendar-with-tooltip_9月显示有误修复后

其他地方的资源,做了简单的修改。月份9月份显示时候,原来的是90,修改后为09

2018-03-07

EDA数字时钟

EDA数字时钟,中国石油大学(华东),EDA技术与应用实验

2015-06-26

计算机图形学实验程序

中国石油大学(华东),计算机图形实验要求程序源代码源程序,存在小问题

2015-06-26

MINIC编译器

minC编译器框架结构,编译原理原理课程设计的结果。

2014-12-17

校园导航系统课程设计

数据结构实习题目,关于校园导航系统的设计以及实现的全部过程

2014-09-13

逻辑表达式,命题公式表达

在学习离散数学等课程的过程中,上机实习做得一些程序。理论的实践应用

2014-06-30

集合运算程序

出学者的集合、关系的运算器,语言是C++,是windows操作界面

2013-12-22

calculator实现包VC++

用VC++做的计算器,有详解,具体实现,另外有我在实现过程中遇到的问题,适合初学者学习。

2013-07-10

VC6.0完整版

这个VC6.0对于C/C++初学者算是比较完整的。

2013-06-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除