![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 72
夏微凉秋微暖
这个作者很懒,什么都没留下…
展开
-
oss文件上传与下载
上传:如何使用流式上传和文件上传方式上传文件_对象存储 OSS-阿里云package com.vazyme.kf.client.aliyun.oss.manager;import com.aliyun.oss.ClientException;import com.aliyun.oss.OSS;import com.aliyun.oss.OSSClientBuilder;import com.aliyun.oss.OSSException;import com.aliyun.oss.mod原创 2022-04-12 18:27:48 · 2753 阅读 · 2 评论 -
maven 配置
<?xml version="1.0" encoding="UTF-8"?><settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.a.原创 2022-01-20 16:19:00 · 369 阅读 · 0 评论 -
alibaba架构初体验
1.搭建nacos网址:Nacos Spring Cloud 快速开始版本说明:版本说明 · alibaba/spring-cloud-alibaba Wiki · GitHubpom根据版本选择相应的nacos,其中springboot是 2.3.12.RELEASE <!--alibaba--> <!--<dependency> <groupId>com.alibaba.cloud</grou原创 2022-01-19 17:42:52 · 890 阅读 · 0 评论 -
rocketmq进阶与特性
1. 高级功能1.1 消息存储分布式队列因为有高可靠性的要求,所以数据要进行持久化存储。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eavONYTC-1639536843368)(img/消息存储方式.png)]消息生成者发送消息MQ收到消息,将消息进行持久化,在存储中新增一条记录返回ACK给生产者MQ push 消息给对应的消费者,然后等待消费者返回ACK如果消息消费者在指定时间内成功返回ack,那么MQ认为消息消费成功,在存储中删除消息,即执行第6步;原创 2021-12-15 13:37:27 · 690 阅读 · 0 评论 -
RocketMQ
1.RocketMQ基本概念 1.1 消息 消息是指,消息系统所传输信息的物理载体,生产和消费数据的最小单位,每条消息必须属于一个主题。 1.2 主题(Topic) Topic表示一类消息的集合,每个主题包含若干条消息,每条消息只能属于一个主题,是RocketMQ进行消息订阅的基本单位。 topic:message 1:n message:topic 1:1 一个生产者可以同时发送多种...转载 2021-12-09 09:13:38 · 284 阅读 · 0 评论 -
Java调优常用命令
E1.常用Shell命令查看网络状况。netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a,S[a]}'使用top命令获取进程CPU使用率,使用/proc文件查看进程所占内存。#!/bin/bashfor i in `ps -ef | egrep -v "awk|$0" | awk '/'$1'/{print $2}'`do mymem=`cat /proc/$i/status 2> /dev/null | ...原创 2021-07-21 15:04:30 · 609 阅读 · 0 评论 -
Spring之策略模式
在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。目前有个场景,小学和少儿有同一套答题流程,但是每个关键环节都是有各自的三方服务,如何根据学段来区分哪一套三方服务:1.先创建contextAnswerServiceContext两个方法,根据部门判断是少儿还是中学,来通过f原创 2021-05-20 17:15:03 · 447 阅读 · 0 评论 -
git常用命令
B.1配置Git的配置,分为如下3个级别。(1)confg -systemn:修改/etc/gitconfg文件,是全局配置,只需要系统admin 做一次即可。(2)confg -global:修改/home/lusername].gitconfg文件,配置只对每一个SSH的用户可见。(3)confa-e:修改工作区的.gitlconfg文件,配置只对当前仓库有效。覆盖顺序为:(3)>(2)>(1)。1)修改提交者的信息。git config --global user.na原创 2021-05-06 10:16:01 · 278 阅读 · 0 评论 -
kafka由浅入深
目录1.kafka消息队列1.1 定义1.2 消息队列1.2.1 使用场景1.2.2 消息队列的优点1.2.3 消息队列的几种模式1.3Kafka 基础架构1.kafka消息队列1.1 定义Kafka 是一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用于大数据实时处理领域。1.2 消息队列1.2.1 使用场景同步处理:异步处理:1.2.2 消息队列的优点解耦允许你独立的扩展或修改两边的处理过程,只要确.原创 2021-04-14 18:08:00 · 247 阅读 · 0 评论 -
java之安全技术
加密单向加密MD5不多说了,全称Message Digest Algorithm 5,信息摘要算法SHA全称secure hash algorithm 安全散列算法HMAChash message authentication code 散列消息鉴别码,根据hash算法的认证协议。HMAC的认证原理是,使用一个密钥生成一 个固定大小的小数据块,即MAC,并将其加入消息中,然后传输。接收方利用与发送方共享的密钥进行鉴别认证等。经常用于对API参数进行请求验证:分配给授权调用方一个原创 2021-04-13 14:30:51 · 461 阅读 · 1 评论 -
kafka之@KafkaListener
@KafkaListener(id = "layer_test_consumer", topics = {"${kafka.consumer.topic.layerTestConfig}"}, groupId = "${kafka.consumer.group-id.layerTestConfig}", containerFactory = "batchContainerFactory", errorHandler = "consumerAwareListenerErrorHan..原创 2021-03-18 15:24:42 · 5837 阅读 · 0 评论 -
canal-基于 MySQL 数据库增量日志解析
什么是canal我们先看官网的介绍:canal,译意为水道/管道/沟渠,主要用途是基于MySQL 数据库增量日志解析,提供增量数据订阅和消费。基于日志增量订阅和消费的业务包括数据库镜像 数据库实时备份 索引构建和实时维护(拆分异构索引、倒排索引等) 业务 cache 刷新 带业务逻辑的增量数据处理当前的 canal 支持源端 MySQL 版本包括 5.1.x , 5.5.x , 5.6.x , 5.7.x , 8.0.x这句介绍有几个关键字:增量日志,增量数据订阅和消费。.原创 2021-03-10 10:54:42 · 707 阅读 · 0 评论 -
java修炼之道
其他参考资料:后端知识积累,https://g.yuque.com/fidel-yiu/yeyasn/ditrff原创 2021-03-03 20:16:44 · 141 阅读 · 2 评论 -
重构改善既有代码设计
目录一、什么是重构二、重构的目的和时机2.1目的1. 改进软件的设计2. 使软件更容易理解3. 帮助找到 BUG4. 提高编程速度2.2重构的时机2.3重构的难题2.3.1数据库2.3.2修改接口2.3.3难以通过重构首发完成的设计改动2.3.4何时不该重构三、“坏”代码一、什么是重构如书的序言所说,重构是这样一个过程:再不改变外部代码的前提下,对代码做出修改,改进程序的内部结构,重构是一种经过千锤百炼形成的有条不紊的程序整理方法,可以最...原创 2021-02-07 16:51:44 · 1498 阅读 · 1 评论 -
Hystrix和Sentinel以及Sentinel原理剖析
HystrixHystrix介绍在微服务场景中,通常会有很多层的服务调用。如果一个底层服务出现问题,故障会被向上传播给用户。我们需要一种机制,当底层服务不可用时,可以阻断故障的传播。这就是断路器的作用。他是系统服务稳定性的最后一重保障。在springcloud中断路器组件就是Hystrix。Hystrix也是Netflix套件的一部分。他的功能是,当对某个服务的调用在一定的时间内(默认10s),有超过一定次数(默认20次)并且失败率超过一定值(默认50%),该服务的断路器会打开。返回一个由开发者原创 2021-01-19 20:48:43 · 1528 阅读 · 0 评论 -
feign开启hystrix后无法传递header以及内部数据
参考资料:https://blog.csdn.net/chenjin_chenjin/article/details/105972052public class RequestAttributeHystrixConcurrencyStrategy extends HystrixConcurrencyStrategy { private static final Log log = LogFactory.getLog(RequestAttributeHystrixConcurrencyStrategy原创 2021-01-13 15:40:25 · 566 阅读 · 0 评论 -
CompletableFuture
实际使用: @Resource(name = "taskExecutor") private Executor taskExecutor; @Override public List<QuestionOcrInfoBO> questionOcr(List<InQuestionOcrImageBO> inOcrWholeImageBOs) throws Exception { List<Completable原创 2021-01-04 17:27:34 · 387 阅读 · 0 评论 -
jdk8新特性 lambda Stream 学习
基础Student::name // 学生的name属性 也就是 student.getName()x -> x // 创建对象,后面streams会大量出现streams以map为例子,对象的话可以用map替换,map反而是比较复杂的 list<Map>或list<实体>转map// 筛选某个条件不为空然后转map,key是map的某个属性,值是mapList<Map<String, Object>> list = n..原创 2020-11-16 16:24:42 · 252 阅读 · 0 评论 -
动态代理
// 动态代理 public static BaseUser getBaseUser(BaseUserService baseUserService){ // 方法执行器,帮我们执行目标的方法 InvocationHandler invocationHandler = new InvocationHandler() { @Override /** * proxy:代理对象,jdk用,不要动 .原创 2020-09-12 22:59:02 · 99 阅读 · 0 评论 -
视频信息的获取,包括获取视频时长
导入jar: <!--截取视频缩略图--> <dependency> <groupId>org.bytedeco</groupId> <artifactId>javacv</artifactId> <version>1.4.3</version> </dependency> <dependen原创 2020-09-05 18:00:31 · 1225 阅读 · 0 评论 -
定时推送信息,使用redis key过期机制
1.设置redis/redis-5.0.5/src/redis-cli 6601config set notify-keyspace-events Ex这个只是临时的,需要去conf文件redis.conf把notify-keyspace-events Ex释放开2.配置spring-redis<bean id="jedisConnectionFactory" p:pool-config-ref="jedisPoolConfig" class="org.springframewo原创 2020-08-03 15:26:48 · 666 阅读 · 0 评论 -
使用shiro在每次重新部署启动tomcat提示异常
配置下shiro.xml新增cookie配置<!-- 配置需要向Cookie中保存数据的配置模版(RememberMe) --> <bean id="rememberMeCookie" class="org.apache.shiro.web.servlet.SimpleCookie"> <!-- 设置Cookie在浏览器中保存内容的名字,由用户自己来设置 --> <constructor-arg value="shiro-RememberMe"/原创 2020-05-16 14:19:49 · 347 阅读 · 0 评论 -
ES修改索引,修改mapper数据类型,修改kibanan Mapping conflict
1.获取索引的数据类型结构mappingGET self-2020.04.17/_mappingGET self-2020.04.17-new/_mapping2.创建新的索引,修改数据类型{ "mappings": { "doc": { "properties": { "tokenCreTimeStr": { "...原创 2020-04-17 18:36:05 · 2999 阅读 · 0 评论 -
java es date 时间处理
最近在存储数据到es中,总会有各种各样的问题,找遍了全网,也没有发现一个总结的比较好的,特此个人总结一下。1.在使用log(elk,logstash)存储数据到elk时,因为用的是带时区的方法,也就是:yyyy-MM-dd'T'HH:mm:ss:SSS'Z'这种格式,默认是UTC时间,东八区需要+8小时,所以在打日志的时候存储其他时间时:时间不要以这种格式:yyyy-MM-...原创 2020-04-17 16:07:27 · 8202 阅读 · 2 评论 -
java过滤html的元素,只保留需要的元素,图片,文字
使用jsouphttps://github.com/jhy/jsoupString str = "<p style=\"line-height:150%;\" class=\"MsoNormal\">(6分)已知线段<img src=\"/upload/word_html/subject.0013/ff8080812f67a257012f6b848c21009f//53...原创 2020-04-16 11:24:06 · 592 阅读 · 0 评论 -
java中直接通过elasticsearchTemplate写入DSL查询es数据
//language=JSON5 String str = "{\n" + " \"match_all\": {}\n" + "}"; WrapperQueryBuilder wrapperQueryBuilder = QueryBuilders.wrapperQuery(str); // 执行搜索 使用elasticsearc...原创 2020-04-15 15:41:26 · 2655 阅读 · 0 评论 -
spring boot 注解的方式写DSL 查询 @Query
实现类:import org.springframework.data.domain.Pageable;// 不要query 直接写dsl ?0 ?1 参数 Pageable 分页@Query("{\"bool\":{\"must\":[{\"term\":{\"subjectCode.keyword\":{\"value\":\"?0\"}}}]}}")List<S...原创 2020-04-13 18:11:48 · 542 阅读 · 0 评论 -
ES DSL 学习
1.普通的基础查询SQL:SELECT *FROM student_task_status TWHERE 1 = 1AND t.gradeLevel = '7'AND t.studentName LIKE '%北京%'AND ( t.taskStatus = '0' OR t.taskStatus = 'BEGIN')AND t.beginTime >= '...原创 2020-04-13 11:41:27 · 288 阅读 · 0 评论 -
linuxs 下 springboot启动项目 java -jar
java -Xms2024m -Xmx2024m -XX:+HeapDumpOnOutOfMemoryError -jar aaa-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod > catalina.out 2>&1 &原创 2020-04-10 12:59:29 · 211 阅读 · 0 评论 -
时区转换,元数据0区转东八8区
/** * @Title: 时区转换0->+8区 东八区 * @Description: * @author pengbin <pengbin> * @date 2020/4/10 12:11 * @param * @return * @throws * pattern -> yyyy-MM-dd HH:mm:ss ...原创 2020-04-10 12:18:30 · 1209 阅读 · 0 评论 -
ES创建实体类
1.创建类2.设置kibana时区 不需要再+8了import com.fasterxml.jackson.annotation.JsonFormat;import org.springframework.data.annotation.Id;import org.springframework.data.elasticsearch.annotations.Da...原创 2020-04-09 20:38:27 · 2492 阅读 · 0 评论 -
生成zip压缩文件下载,带文件夹结构(方法二)
工具同方法一:ant (org.apache.tools.ant)方法一中,生成的压缩文件方式为:先生成对应的文件结构,把整个文件夹生成zip文件而在方法二为直接写入zip文件,再对zip文件进行下载删除操作 String pid = request.getParameter("pid"); if(StringUtils.isNotBlank(pid)) { ...原创 2020-03-02 17:32:44 · 1066 阅读 · 0 评论 -
扩大eclipse占用内存,运行内存,堆栈内存
1. eclipse 下的 eclipse.ini文件添加:-Xms256m-Xmx3072m2.修改tomcat:添加:-Xms512m -Xmx1024m -XX:PermSize=512M -XX:MaxPermSize=1024m${jrebel_args}-Dcatalina.base="D:\work\AllWorksp...原创 2020-02-26 09:46:04 · 708 阅读 · 1 评论 -
windows启动redis
先下载windows版本的redishttps://github.com/MSOpenTech/redis/releases配置redis.windows-service文件bind 127.0.0.1 #56行解绑ip访问protected-mode yes # 75行是否保护访问,no的话外部访问开启port 6379 #79行修改端口启动r...原创 2020-02-17 10:22:30 · 142 阅读 · 0 评论 -
apache优化
在Apace安装目录/conf/extra目录中有一个名为httpd-mpm.conf的配置文件。该文件主要用于进行MPM模块的相关配置。不过,在默认情况下,Apache的MPM模块配置文件并没有启用。因此,我们需要在httpd.conf文件中启用该配置文件,如下所示:# Server-pool management (MPM specific)Include conf/extra/ht...原创 2020-01-08 18:54:53 · 360 阅读 · 0 评论 -
请求的参数转译&bmp;"等
StringEscapeUtils.unescapeHtml()原创 2019-11-20 18:12:45 · 128 阅读 · 0 评论 -
下载文件safari会变成.exe
通过程序读取文件或生成文件来下载,一般只需设置 header 头即可: header('Content-type: application/pdf'); header('Content-Disposition: attachment; filename="保存时的文件名.pdf"'); 在谷歌、火狐等浏览器中,Content-type 的设置貌似并不重要,但在 Sa...转载 2019-11-08 15:44:03 · 882 阅读 · 0 评论 -
ajax基础使用学习
在java开发中,最基础的ajax学习使用ajax的格式:$.ajax({type : "POST",url : "VaildateUsernameServlet", //servlet的名字 data : "username=" + username, //作用把这个变量传到servlet中 在servlet request.getPa原创 2017-03-30 11:20:24 · 264 阅读 · 0 评论 -
java字符串处理的部分方法
StringBuffer1.连接字符串 StringBuffer str = new StringBuffer(); str.append(";");2.删除字符串 删除最后一个字符串 stringBuffer.deleteCharAt(stringBuffer.length()-1);字符串处理 1.字符串分割 Stri原创 2017-03-30 11:23:00 · 289 阅读 · 0 评论 -
redis缓存方法部分总结
(缓存对象为例子)1.Json的格式保存ZaSysUser zaSysUser = UserUtil.getUser();JSONObject json =newJSONObject();json.put("zaSysUser", zaSysUser);保存:redisUtils.set("menu", json.toString(), 1000);原创 2017-03-30 11:23:37 · 459 阅读 · 0 评论