- 博客(40)
- 收藏
- 关注
原创 达梦数据库针对慢SQL,收集统计信息&清除执行计划缓存
若遇到以下场景,大概率是SQL走错了执行计划:1、一条SQL在页面上查询特别慢,但拿到数据库终端执行特别快2、一条SQL在某种检索条件下查询特别慢,但拿到数据库终端执行特别快。
2025-02-17 10:55:48
444
转载 Selenium+java
自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运行结果。将人为驱动的测试行为转化为机器执行的过程。自动化测试包括UI自动化接口自动化单元测试自动化。单元测试:最大的投入应该在单元测试上,单元测试运行的频率也更加高。java的单元测试框架是Junit。接口自动化:接口测试就是API测试,相对于UI自动化,API自动化更加容易实现,执行起来也更稳定。- 可在产品前期,接口完成后介入。- 用例维护量小。- 适合接口变动较小,界面变动频繁的项目。12。
2024-09-07 11:34:49
558
转载 kafka重平衡机制--一个消费组内存在任一消费者异动(宕机、消费者数量变动、消费超时、心跳异常等),则订阅了此组topic的消费者将进入一段时间的rebalancing
最近生产kafka遇到一个问题,总是隔几分钟就,导致没有消费者、消息堆积;平衡好后,正常消费消息几分钟后,就又开始,消息再次堆积,一直循环。//组名是commonGroup,java里设置的121此时组里的所有topic都会没有消费者。//这个是心跳发送失败报错的日志,因为此时在rebalancing//这个是重新加入分组的日志,重新加入了commonGroup组里的topic为examTake的第13个分区(生产topic分了14个区)12345。
2023-12-28 20:17:48
752
1
原创 Mycat关键配置记录
如果使用primaryKey属性配置真实表的主键,那么mycat会缓存主键与具体dataNode的信息,再次使用主键进行查询时就不会广播式查询,mycat会发送SQL语句至具体的dataNode上。设置当前逻辑表的分表规则,目前分表功能仅mycat1.6版本后支持,且dataNode在分表条件下时只能配置一个,分表条件下不支持各种条件的join语句。若当前逻辑表绑定了非主键分片的规则时,那么使用主键进行查询时,mycat会发送SQL语句至所有配置的dataNode上。当前逻辑表对应真实表的主键。
2023-12-05 17:58:28
1069
原创 Java使用Function包&策略模式,优化业务代码大量if...else语句
Java使用Function包&策略模式,优化大量if...else语句
2022-11-03 20:35:43
3524
原创 Function包的场景应用
1.创建一个实体类 Userpackage cn.gdxiash.consumer.entity;import java.math.BigDecimal;/** * @author ShangHai * @desc */public class User { private String username; private String password; private BigDecimal amount1; public String get
2022-05-19 16:37:30
2533
1
原创 线程池规范创建模板
1.创建一个线程工厂 MyThreadFactorypackage cn.gdxiash.consumer.thread.factory;import java.util.concurrent.ThreadFactory;import java.util.concurrent.atomic.AtomicInteger;/** * @author ShangHai * @desc */public class MyThreadFactory implements ThreadFacto
2022-05-19 16:15:29
2417
原创 CountDownLatch应用
核心模板package cn.gdxiash.consumer.thread;import cn.gdxiash.consumer.utils.ListUtil;import java.util.ArrayList;import java.util.List;import java.util.concurrent.CountDownLatch;import java.util.concurrent.ExecutorService;import java.util.concurrent.
2022-02-18 18:34:06
2485
1
原创 JS获取当月第一天&最后一天
// 获取当月第一天function getCurrentMonthFirstDay(date){ var date = new Date(date); var year = date.getFullYear(); var month = date.getMonth(); return new Date(year, month, 1);}// 获取当月最后一天function getCurrentMonthLastDay(date){ var date = new Date(date.
2021-11-19 18:19:01
3650
1
原创 Linux个人常用命令
文件属性首字符类型列举【d】目录、【-】普通文件、【|】链接文档、【b】可存储接口设备、【c】串行端口设备(鼠标、键盘等)chgrp:更改文件归属组chgrp [-R] 属组名 文件名 (-R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改)chown:更改文件归属用户,也可以同时更改文件归属组chown [–R] 属主名 文件名chown [-R] 属主名:属组名 文件名chmod:更改文件9个权限属性.
2021-03-25 10:55:33
2314
1
原创 Shiro身份验证/授权源码学习小结
shiro身份验证流程token委托通过Subject调用login(token) 方法,将用户产生的token委托给SecurityManager 然后SecurityManager将token委托给Authenticator 最后Authenticator将token委托给ModularRealmAuthenticator进行身份验证的处理ModularRealmAuthenticator会根据注入Realm的个数决定验证流程单Realm情况ModularRealmAuthen.
2020-12-17 11:38:28
2682
1
原创 SpringCloud学习(九)--使用Zuul组件构建微服务网关
Zuul,空耳"Z勇".是Netfilx开源的微服务网关,它可以作为所有微服务请求的入口,即消费者优先请求Zuul微服务,由Zuul微服务进行请求的统一调度转发.一般在微服务数量较多、对服务的管理有严格的要求等情况下推荐使用.ZuulZuul的核心是一系列的过滤器,这些过滤器包含的基础功能如下:身份认证与安全:识别每个资源的验证要求,并拒绝那些与要求不符的请求.动态路由:动态地将请求路由到不同的后端集群.压力测试:逐渐增加指向集群的流量,便于了解性能.负载分配:为每种类型的请求分配容
2020-10-15 17:53:18
3133
1
原创 SpringTask定时任务开启
近日收到一个需求--"每晚20点向特定用户推送短信",由于Spring提供的Task任务调度组件配置方便,故采用之.短信定时任务1.SpringBoot启动类上添加@EnableScheduling注解,开启对SpringTask组件的支持.2.创建一个SmsTask类,在指定方法上添加@Scheduled(cron="")注解,开启一个定时任务,即可.cron="0/5 * * * * ?"表示从0秒开始,以后5秒执行一次.(@Scheduled注解会根据cron表达式的内容,指定..
2020-09-24 10:13:02
3892
1
原创 监听redis键过期事件
redis配置文件修改打开redis.window.conf配置文件,找到以下配置段.############################# EVENT NOTIFICATION ############################### Redis can notify Pub/Sub clients about events happening in the key space.# This feature is documented at http://redis.io/to.
2020-09-18 11:49:21
3879
1
原创 SpringCloud学习(八)--消费者服务基于Hystrix实现容错处理与监控(Feign客户端服务)
非Feign客户端消费者服务在使用Hystrix时,仅需要在指定方法上声明注解@HystrixCommand,并通过fallbackMethod属性指定服务降级处理方法即可.然而,Feign客户端消费者服务是以接口的形式进行服务消费的,其接口方法并不存在方法体,所以相对于非Feign客户端的消费者服务来说,Feign实现Hystrix的方式另有方案.其实,Feign已经整合了Hystrix组件,需要手动开启方可使用.Feign开启Hystrix组件在application.yml文件中,feign:
2020-09-16 17:27:59
2559
1
原创 SpringBoot整合CXF,实现WebService对外接口服务
工作中,由于WebService常常用于提供对外接口的支持(即常用于系统与系统之间的对接).所以趁闲暇之余,对已有webserivce代码进行抽离、学习、整理,方便日后回顾.引入Apache的CXF依赖 <!-- apache-cxf --> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxws&l
2020-09-16 11:05:03
5478
4
原创 Linux系统安装jdk、配置Java环境变量
近来,本人负责的项目需要迁徙到全新的linux服务器上进行部署.经过了两天时间完成部署后,对linux系统以及命令有了一个初步的了解.现对完成工作进行一个总结,方便今后回顾.事前准备由于windows系统是无法直接通过远程窗口访问linux服务器的,故需要在windows系统中先安装可以通过命令行操作linux系统的软件Xshell(本人采用).另外,还需要准备一个用于文件传输的工具WinSCP(本人采用).远程访问打开Xshell软件,对linux服务器尝试进行远程连接.X
2020-09-15 15:55:38
8120
3
原创 SpringCloud学习(七)--消费者服务基于Hystrix实现容错处理与监控(非Feign客户端服务)
Hystrix,空耳"嗨嘶杰(卷舌)克嘶".由Netflix开源的一个延迟和容错库,用于隔离访问远程系统、服务或者第三方库,防止级联失败,从而提升系统的可用性、容错性与局部应用的弹性,是一个实现了超时机制和断路器模式的工具类库.Hystrix主要通过以下几点实现延迟和容错:包裹请求:使用HystrixCommand包裹对依赖的调用逻辑,每个命令在独立的线程中执行,使用了设计模式中的“命令模式”.回退机制:当请求失败、超时、被拒绝或者当断路器打开时,执行回退方法.回退方法可由开发者设计.跳闸机
2020-09-04 14:42:59
3306
1
原创 SpringCloud学习(六)--消费者基于Feign实现声明式REST调用
Feign,空耳"费因(轻声)".是Netfix开发的声明式的HTTP客户端.可以帮助我们更加方便快捷的调用HTTP API.在SpringCloud中,使用Feign非常简单--引入Feign依赖,创建Feign接口,并在接口上添加对应的注解即可进行接口的调用.【SpringCloud的openfeign依赖对Feign进行了增强,使得Feign支持了Spring MVC注解,并整合了Eureka和Ribbon】创建一个基于module的Springboot项目.在springcloud-
2020-08-31 15:51:36
3026
1
原创 SpringCloud学习(五)--消费者整合Ribbon使其具备负载均衡的能力
Ribbon,空耳"惹(卷舌)苯".是Netfix发布的负载均衡器.为Ribbon配置好服务提供者的地址列表后,Ribbon便可基于某种负载均衡算法帮助消费者请求生产者【在Spring Cloud中,当EurekaClient整合了Ribbon后,Ribbon可以自动地获取EurekaServer的服务提供者的地址列表】使用消费者服务consumer整合Ribbon之前,首先需要在pom.xml中引入Ribbon的依赖 <dependency> <gr
2020-08-28 17:05:00
2516
1
原创 SpringCloud学习(四)--生产者服务的高可用(简易配置实现生产者集群的搭建)
以下,将展示如何在服务的同一个application.yml文件中通过简易的配置实现集群的搭建.打开provider项目的application.yml文件,通过连字符'---'将该application.yml文件分为三段.第二段和第三段分别为spring.profiles指定了一个值,该值表示它所在的那段内容应用在哪个Profile里.第一段由于并未指定spring.profiles,因此这段内容会对所有Profile生效.spring: application: na
2020-08-28 15:58:36
1862
1
原创 使用Java.net包下原生的HttpURLConnection对象调用HTTP接口(基于POST请求)
本篇将主要介绍如何使用HttpClient4.5版本调用接口的实例.(实现代码中有大量注释供理解所用)先准备好一个Springboot项目,方便自己编写接口与后台直接main方法调用.Springboot工程结构展示:准备好后,第一步先简单的在Controller层中编写基于POST方法的接口.1.POST请求一般用于提交数据,所以先创建一个User实体类用于自动接收参数.(记得重写toString()方法,方便查看属性值)public class User { pri
2020-08-21 10:23:36
1456
1
原创 使用Java.net包下原生的HttpURLConnection对象调用HTTP接口(基于GET请求)
本篇将主要介绍如何使用HttpURLConnection对象调用本地普通、restful接口的实例.(实现代码中有大量注释供理解所用)先准备好一个Springboot项目,方便自己编写接口与后台直接main方法调用.Springboot工程结构展示:第一步,我们先简单的在Controller层中编写两个不同类型的GET方法接口.一个是普通的GET方法接口,简易代码如下:@ResponseBody@RequestMapping(value = "/user/msg",method
2020-08-21 10:09:20
2138
1
原创 SpringCloud学习(三)--Eureka开启Spring Security基于Http Basic的安全认证
Basic认证是一种较为简单的HTTP认证方式,客户端通过明文(Base64编码格式)传输用户名和密码到服务端进行认证.如果EurekaServer(服务的发现与注册中心)无任何认证方式,那么任何客户端都可以进行注册并获取其他微服务的元数据.所以给EurekaServer添加安全认证机制是有必要的.本springcloud-demo项目中,eureka项目作为EurekaServer,provider项目和consumer项目均为EurekaClient.所以在eureka配置好secu
2020-08-20 10:56:41
2369
1
原创 SpringCloud学习(二)--消费者微服务对生产者微服务的调用
在已搭建好的微服务项目中创建一个provider微服务作为生产者和一个consumer微服务作为消费者.创建生产者微服务第一步, 在已搭建好的微服务Maven项目上,新建一个Springboot项目作为生产者微服务(provider)步骤如下图:1.在springcloud-demo上,右键选择"New"--"Module"2.选择"Spring Initializr"选项,即创建Springboot项目3.输出自己心仪的项目名称4.在依赖选择内,选中...
2020-08-19 10:29:22
2149
1
原创 SpringCloud学习(一)--创建微服务的注册与发现中心Eureka
SpringCloud的服务注册中心可选用:Eureka、Zookerper、Consul、etcd等等.Eureka包含两个组件:EurekaServer和EurekaClient;EurekaServer提供服务发现的能力,各个微服务启动时,会向EurekaServer注册自己的信息(eg:IP,端口,微服务名称等),EurekaServer会存储这些信息.EurekaClient是一个Java客户端,用于简化与EurekaServer的交互.ps:1.微服务启动后,会周期性(默认30秒)地向E
2020-08-11 17:44:53
1021
1
原创 使用Apache提供的HttpClient对象调用HTTP接口(基于POST请求)
本篇将主要介绍如何使用HttpClient4.5版本调用接口的实例.(实现代码中有大量注释供理解所用)先准备好一个Springboot项目,方便自己编写接口与后台直接main方法调用.Springboot工程结构展示:准备好后,第一步引入Apache提供的HttpClient4.5版本的依赖包.依赖如下:<dependency> <groupId>org.apache.httpcomponents</groupId> <ar
2020-08-04 16:20:46
3493
1
原创 使用Apache提供的HttpClient对象调用HTTP接口(基于GET请求)
本篇将主要介绍如何使用HttpClient4.5版本调用本地普通、restful接口的实例.(实现代码中有大量注释供理解所用)先准备好一个Springboot项目,方便自己编写接口与后台直接main方法调用.Springboot工程结构展示:准备好后,第一步引入Apache提供的HttpClient4.5版本的依赖包.依赖如下:<dependency> <groupId>org.apache.httpcomponents</groupId>
2020-08-04 15:55:42
2673
4
原创 SpringMVC生成二维码并成功实现LOGO图片与底部文字的插入(使用AJAX)
本篇将主要介绍如何生成一个既含LOGO又含底部文字的二维码.先展示一下最终成果图,如下:好,现在来说一说具体的实现思路.可分为三个步骤来生成既含有LOGO又含有底部文字的二维码:第一步,实现LOGO图片的上传:想要实现LOGO插入二维码中,①首先,在前端页面的文件框中,选择一张你认为合适的图片,选择后文件框触发JQuery的值改变事件,将图片内容通过AJAX发送到后台...
2019-12-09 15:41:12
3444
1
原创 SpringMVC实现二维码的生成并以流输出的方式展示
最近工作中遇到一个需求,需要为指定器械包生成二维码,然后通过PDA扫描二维码即可获取器械的相关信息.需求实现后,在此作个简单的总结.基于SpringMVC的maven项目1.引入二维码生成必要的依赖<!-- https://mvnrepository.com/artifact/com.google.zxing/core --><dependency> ...
2019-12-05 10:47:47
2226
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人