自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(378)
  • 收藏
  • 关注

原创 接口返回中文乱码问题

如果下载的文件,文件头中有文件名称,浏览器下载正常,接口下载乱码,也同样也需要解码ISO-8859-1后,再编码UTF8,即能正常显示。服务方返回的content-type:application/json 中没有字符集,导致使用了默认的ISO-8859-1字符集。在接口添加produces。

2023-05-07 21:05:59 1973 1

原创 Gson使用

【代码】Gson使用。

2023-05-07 13:37:15 199

原创 获取spring窗口中的注入的类

获取spring窗口中的注入的类。

2023-05-07 12:57:47 232

原创 vue 项目启动websocket报错

原本可正常运行,突然vue项目启动报websocket错。

2023-01-31 21:40:34 679

原创 restTemplate 上传大文件Java heap space

将已上传的文件,通过RestTemplate,发起HTTP请求调用接口。当文件较大时,出现Java heap space。

2022-12-08 22:11:59 1707 1

原创 Feign timeout 重试

配置后超时并没有重试,重新检查pom文件发现少了spring-retry依赖。

2022-12-08 21:23:38 302

原创 xlrd.biffh.XLRDError: Excel xlsx file; not support

解析一个xlsx文件,提示xlrd.biffh.XLRDError: Excel xlsx file;

2022-11-30 20:07:09 333

原创 IDEA配置

setting -> File Encodeing -> UTF8

2022-11-17 22:32:57 75

原创 python 获取下载文件的后缀

网页上只有文件名称,点击后即进行下载,无法查看文件后缀。

2022-11-08 07:55:42 398

原创 python 多次重定向地址获取

多次重定向的Url都可以获取到。

2022-11-08 07:52:11 602 1

原创 多个动态生成的标签,添加validate校验

生产标签validate校验

2022-10-30 22:10:04 169

原创 vue 数组

数组

2022-10-30 22:04:21 209

原创 java.lang.ClassCastException: java.util.LinkedHasMap cannot be cast to xx

背景:bean中定义了json的List对象属性。获取此list进行Stream操作时提示标题中报错。原因:list中对象被转换成了LinkedHasMap,如果强制转换编译可以过,但执行也会报错。

2022-08-30 22:08:22 259

原创 将包括(T,Z)日期转换为Date类型

【代码】将包括(T,Z)日期转换为Date类型。

2022-08-30 21:56:52 4090

原创 spring bean线程安全问题

类中声明成员变量,并且有读写操作:线程是不安全的。默认由spring注入的类,是单例的。类中文中局部变量:线程是安全的。

2022-08-30 21:50:32 159

原创 java 下载交于nginx

背景java提供接口,进行鉴权。鉴权成功后将下载指向nginx,收nginx进行下载代理。直接访问nginx不能下载,只能走重定向下载。

2022-07-19 22:55:09 569

原创 linux 乱码问题

编码

2022-06-15 21:22:30 106

原创 redis cluster

CentOS7、redis 6.2.6、6台主机(3主3从)修改配置vi redis.conf

2022-06-15 21:14:07 79

原创 list<Map> 数据处理

问题:List toString后,原:会被替换成=解决:先转Json再toString解决List<Map> resultMap = new ArrayList<>();JSONArray jsonArray = (JSONArray)JSON.toJSON(resultMap)问题:JSONArray toString后null值被忽略,不会打印解决:指定JSONObject的toSringJSONObject.toJSONString(jsonArray, Ser

2022-05-29 22:23:23 298 1

原创 多个微服务相互引用报错找不到对应类

多个微服务相互引用本地可运行,但打包时报错找不到对应类。这是因为引用了可运行的jar包。解决办法1,将公共类单独提到一个模块中,可运行的jar包不要直接引用。解决办法2,打包时其实会生成两个jar包,一个可运行的jar包,一个可引用的jar包,默认是重名,所以覆盖了。此时将可执行换个名称后,原引用的服务就不会报错。同时执行的时候,执行重新名称的执行jar包。pom中<plugins> <plugin> <groupId>org.springframewor

2022-05-29 22:15:01 1033

原创 多个微服务相互引用报错找不到对应类

多个微服务相互引用本地可运行,但打包时报错找不到对应类。这是因为引用了可运行的jar包。解决办法1,将公共类单独提到一个模块中,可运行的jar包不要直接引用。

2022-04-28 21:39:04 488

原创 pm2 部署nuxt

下载node文件包。解压后进入目录,手动确认版本。[root@localhost bin]# ./node -vv16.14.2生成软链接[root@localhost opt]# ln -s /opt/node-v16.14.2-linux-x64/bin/node /usr/local/bin/node[root@localhost opt]# node -vv16.14.2[root@localhost opt]# ln -s /opt/node-v16.14.2-linu.

2022-03-28 21:48:28 1096

原创 Mybatis-Plus 使用

简介SpringBoot、Mysql、Mybatis-Plus创建表Mysql创建表CREATE TABLE user( id char(19) NOT NULL COMMENT '主键ID', name VARCHAR2(32) NULL DEFAULT NULL COMMENT '姓名', age INT(11) NULL DEFAULT NULL COMMENT '年龄', email VARCHAR(50) NULL DEFAULT NULL COMMENT

2022-02-27 21:47:00 587

原创 python 限制同一时间只执行一个

需求脚本可能被多个应用调用,但要求同一时间此脚本只有一个在执行。思路脚本执行时,先判定有没有pid文件。(pid文件是脚本执行时,生成的文件并写入其pid值)有pid文件的同时,获取pid文件中的pid,检测进程是否存在。(防止脚本意外停止,但没有删除pid文件)。脚本执行完后,删除pid文件。import osimport sysimport timeimport logging, logging.handlersimport psutillogger = logging.ge

2022-01-22 11:17:07 1471

原创 JavaRestClient实现文档的CRUD

初始化JavaRestClient略,与上一篇一致通过

2021-12-22 22:20:04 1560

原创 RestClient操作索引库

简介ES官方提供了各种不同语言的客户端,用来操作ES。这些客户端的本质就是组装DSL语句,通过http请求发送给ES。java就是RestClienteg:利用JavaRestClient实现创建,删除索引,判断索引库是否存在。分析数据结构mapping要考虑的问题:字段名、数据类型、是否参与搜索、是否分词、如果分词,分词器是什么注:像id数据库中可能是Long但分词时是指定为keyword。一般城市、价格、评分这一类字段不需要分词。对于不需要搜索的字段设置index为false。

2021-12-19 21:15:58 1889

原创 文档的操作

新增POST /索引库名/_doc/文档id{ "字段1": "值1", "字段2": "值2", "字段3": { "子属性1": "值3", "子属性2": "值4" }, //略}eg:POST /yy/_doc/1{ "info": "张三的老铁学习java!", "email": "[email protected]", "name": { "firstName": "三", "lastName": "张" }}返回

2021-12-19 10:52:06 533

原创 索引库操作

mapping属性mapping是对索引库中文档的约束,常见的mapping属性包含:type:字段数据类型,常见的简单类型有- 字符串:text(可分词的文本)、keyword(精确值,例如:品牌、国家、ip地址)- 数值:long、integer、short、byte、double、float- 布尔:boolean- 日期:date- 对象:object (嵌套类)index:是否创建索引,默认为true (true就可以搜索)analyzer:使用哪种分词器(与text结合使用

2021-12-19 10:24:39 171

原创 ES 分词器

分词器:ES在创建倒排索引时需要对文档分词。在搜索时,需要对用户输入内容分词。但默认的分词规则对中文处理并不友好。在kibana的DevTools中测试:POST /_analyze{"analyzer": "standard","text": "张三老铁学习java!"}post代表请求方式。/_analyze代表分词分析。analyzer分词类型,这里是默认的standard分词器。text要分词的内容。中文都直接被拆分成了一个个汉字,所以不能此分词器,要用lk分词器。

2021-12-18 14:37:10 8468

原创 elasticsearch 简介与安装

简介elasticsearch结合kibana、Logstash、Beast,也就是elastic stack(ELK)。被广泛应用在日志数据分析、实时监控等领域。数据抓取:Logstash、Beasts存储、计算、搜索数据:Elasticsearch(底层是Lucene)数据可视化:KibanaLucene:是一个java语言的搜索引擎类库。正向索引和倒排索引传统数据库采用正向索引,例如给表的ID创建索引。elasticsearch采用倒排索引:文档(doucument):每条数据就是

2021-12-18 11:18:30 2558

原创 SpringAMQP 消息转换器

说明:在SpringAMQP的发送中,接收消息的类型是Object,也就是说我们可以发送任意对象类型的消息,SpringAMQP会帮我们序列化为字节后发送。ctrl+p,查看ConvertAndSend方法中的类型,发现都是Object。测试:在之前的配置类中声明一个队列object.queuepackage com.yy.comsumer.config;import org.springframework.amqp.core.Binding;import org.springframew

2021-12-17 21:28:18 914

原创 发布订阅模式

前面的简单队列案例、work queue案例中一条消息只能有一个消费者,消费后就会删除。发布订阅模式与之前案例的区别就是允许将同一消息发送给多个消费者。实现方式是加入exchange(交换机)。之前消息是发送直接到达队列,现在是先发给exchange。再由exchange转发给队列。常见exchange类型包括:Fanout:广播Direct:路由Topic:话题注意:exchage负责消息路由,而不是存储,路由失败则消息丢失。FanoutFanout Exchange会将接收到的消息路由

2021-12-16 21:50:07 552

原创 Work Queue

接上一篇测试在publisher服务定义测试方法,每秒产生50条消息,发送到simple.queue。在consumer服务中定义两个消息监听者,都监听simple.queue队列。消费者1每秒处理50条消息,消费者2每秒处理10条消息。创建生产者package com.yy.spring;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.amqp.rabbit.core.R

2021-12-15 21:24:23 651

原创 SpringAMQP 搭建使用

RabbitMQchannel:操作MQ的工具exchange:路由消息到队列中queue:缓存消息virtual hos:虚拟主机,是对queue、exchange等资源的逻辑分组基本消息队列的消息发送流程:建立connection创建channel利用channel声明队列利用channel向队列发送消息基本消息队列的消息接收流程:建立connection创建channel利用channel声明队列(生产者与消费者都需要声明队列,是防止队列不存在,重复声明不会影响)定义

2021-12-12 13:42:41 1375

原创 DockerCompose

Docker Compose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。安装curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose自助补全curl -L https

2021-12-12 09:49:35 162

原创 Gateway 跨域问题处理

跨域:域名不一致就是跨域。域名不同域名相同,端口不同跨域问题:浏览器禁止请求的发起者与服务端发生跨域ajax请求,请求被浏览器拦截的问题解决方案:CORS网关处理跨域采用的同样是CORS方案,并且只需要简单配置即可实现:spring: cloud: gateway: globalcors: # 全局的跨域处理 add-to-simple-url-handler-mapping: true # 解决options请求被拦截问题,CORS 浏览器到服务器询

2021-12-05 19:38:06 279

原创 GatewayFilter

网关过滤器GatewayFilter是网关中提供的一种过滤器,可以对进入网关的请求和微服务返回的响应做处理。GatewayFilter Factories有30几个。eg:给所有进入userservice的请求添加一个请求头:Truth=NO.1实现方式:在gateway中修改application.yml文件,给userservice的路由添加过滤器。server: port: 10010 #网关端口spring: application: name: geteway #服务

2021-12-05 19:26:56 2554

原创 统一网关Gateway

网关功能微服务内部使用Feign调用,但对外需要一个网关,作为入口。身份认证和权限校验。服务路由、负载均衡。请求限流。SpringCloud有网关的实现包含两种gatewayzuulZuul是基于Servlet的实现,属于阻塞式编程。SpringCloudGateway则是基于Spring5中提供的WebFlux,属于响应式编程的实现,具备更好的性能。搭建网关服务的步骤创建module,创建启动类package com.yy.gateway;import org.sp

2021-12-05 15:35:39 252

原创 Feign 优化

连接优化Feign底层的客户端实现:URLConnection:默认实现,不支持连接池Apache HttpClient:支持连接池OKHttp:支持连接池优化方向:使用连接池代替默认的URLConncetion日志级别,最好用baseic或none连接池配置引入依赖<!-- httpclient的依赖--> <dependency> <groupId>io.github.openfei

2021-12-05 14:03:38 703

原创 Feign 自定义日志配置

feign.Logger.Level修改日志级别,包含4个不同级别,NONE,BASE,HEADERS,FULL1. 基于配置文件ymlfeign: client: config: default: #这里default就是全局配置,如果是写服务名称,则是针对某个微服务的配置 LoggerLevel: FULLlogging: level: com.yy: debug #com.yy为对应基础包名 pattern: dateformat

2021-12-05 10:00:39 1222

空空如也

空空如也

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

TA关注的人

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