- 博客(181)
- 资源 (15)
- 收藏
- 关注
原创 老版本Spring session实现Session共享
下一次访问请求时,请求的头部会带有Cookie。Spring Session提供了一套创建和管理Servlet HTTPSession的方案,Spring Session提供了集群Session功能,默认采用外置的Redis来存储Session数据,以此来解决Session共享问题。如果没有Session共享,session的信息放在内存中,如果Tomcat关闭,内存中的Session就会销毁。在实现共享后,只要Cookie中的Session ID 无法改变,多实例的任意一个被销毁,都不会影响用户访问。
2025-03-20 13:50:10
312
转载 【nacos】加载配置文件顺序解析
第四步根据spring.cloud.nacos.config.prefix再拼上spring.cloud.nacos.config.file-extension再拼上spring.cloud.nacos.config.file-extension加载。第三步根据spring.cloud.nacos.config.prefix(这个如果没有指定的话则默认是application.name)再拼上spring.cloud.nacos.config.file-extension加载。
2025-03-03 22:23:35
29
原创 nacos 2.x开启登录的用户名和密码
## 配置自定义身份识别的key(不可为空)和value(不可为空) nacos.core.auth.server.identity.key=配置完成后,重启服务端,访问控制台需要登录,默认的用户名/密码为。nacos 默认是集群模式,本地用改为单机模式.B.配置一个自定义密钥,用于生成JWT令牌。修改nacos的配置文件。
2025-01-17 19:09:48
1401
转载 mysql特殊字符报错问题
**服务器层面**:确保MySQL服务器配置文件(如 `/etc/mysql/mysql.conf.d/mysqld.cnf` 或 `/etc/mysql/conf.d/mysql.cnf`)中的 `character-set-server` 和 `collation-server` 设置为支持生僻字的字符集,如 `utf8mb4` 和对应的校对规则(如 `utf8mb4_unicode_ci`)。如果问题得到解决,则说明配置已生效;- **列层面**:确保包含生僻字的字段也使用了正确的字符集。
2024-12-22 21:56:24
176
转载 记一次OOM排查(max-http-header-size导致)
服务用的是java8,使用的是默认垃圾回收器ParalleGC,采用的是分代回收,新生的对象会先存入新生代,但是对于50M的大对象,新生代很快就没有足够的内存去分配,那之后的50M大对象都会直接存在老年代,当老年代内存不足,触发full GC,而http连接断开之前,这些大对象都无法被回收,所以查看GC日志可以发现,在频繁Full GC(jvm在进行濒死挣扎)后,内存还是不足,那么久会报出内存溢出。系统中要避免过大的对象放入内存,因为过大内存会直接放入老年代,如并发再一大,易造成内存溢出。
2024-12-17 10:41:38
100
原创 mac下Gpt Chrome升级成GptBrowser书签和保存的密码恢复
GPT\ Chrome 为原来的chrome浏览器的文件存储目录.拷贝到GptBrowser 的 default 目录下。书签所在的文件 Bookmarks。登录账号Login 相关的文件。覆盖掉相关的文件即可.
2024-11-27 11:42:30
541
1
原创 maxcomputer中查询字符串出现的个数的函数
如果是一个字符串 则需要使用 正则表达式来统计 REGEXP_COUNT。char_matchcount 是统计字符出现的个数。
2024-11-27 10:38:36
179
原创 app嵌入H5页面加载空白的问题
/- 这里的单位为秒,10代表第一次请求10s后过期。//HTTP1.0通过Pragma控制浏览器缓存。//当前页面过期时间,立刻过期。* 移动端首页基本上不缓存,用于解决ios端网页缓存的问题。因为前端发布后,原来的js以及css链接不可访问导致.因为缓存了首页导致的问题。
2024-11-13 11:34:24
515
原创 mybatis 参数判断报错的问题
if test="brandCustomer == '是'"><if test="brandCustomer == '否'">-- 是否品牌客户 品牌字段不为空 -->-- 是否品牌客户 品牌字段不为空 -->'是'.toString()'否'.toString()因为'' 会转为char。
2024-11-01 14:04:58
331
原创 Transaction rolled back because it has been marked as rollback-only
这时外层事务A发现了异常e,如果外层事务A catch了异常并处理掉,那么外层事务A的方法会继续执行代码,直到外层事务也结束时,这时外层事务A想commit,因为正常结束没有向外抛异常,但是内外层事务AB是同一个事务,事务B(同时也是事务A)已经被内层方法标记为“rollback-only”,需要回滚,无法commit,这时spring就会抛出。在这种情况下,外层事务(ServiceA)和内层事务(ServiceB)就是一个事务,任何一个出现异常,都会在methodA执行完毕后回滚。
2024-09-24 16:28:50
503
原创 mysql ERROR 1292 (22007): Truncated incorrect DOUBLE value 问题
sequence` int DEFAULT NULL COMMENT '排序',因为公司id 以及 id 数据库中定义的是varchar 导致的问题.
2024-09-19 16:07:45
550
原创 日志中使用awk提取信息
xpress:中通速递-orderIDs:21782028-tradeNo:XD240822000089-storage:菜鸟仓(武汉)-nums:1。echo "storage:菜鸟仓(武汉)-nums:2" | awk 'BEGIN{RS="nums:"}{print $1}'订单发货-----------------express_code:ZTO-e。内容放到一个文件中,使用awk切成很多断,取第一个即可.现在需要提取出 nums:后面的值用于排查问题。
2024-09-13 16:40:04
251
原创 引入外部jar包报错的问题排除
这次遇到是 erp打的一些包.功能迁移到中台. 所以有些类迁移掉导致的问题.检查下maven 的 setting.xml 中的配置,账号 密码等。可以在maven仓库中找到这个类,然后反编译看下类是否存在.3.可能是引入的jar包中类改动导致的问题.1.可能是maven下载jar包的问题.2.可能是idea 缓存的问题。清理下idea 的缓存。
2024-09-06 11:51:56
352
原创 关于Seata的AT模式以及XA模式的理解
相较之下,AT模式是Seata社区进行全方面优化的自研模式,其最大特点就是解决了XA模式的性能差的问题。AT模式被看作是在应用或驱动层面实现的二阶段提交,它的性能通常优于XA模式,因为它减少了对底层数据库的依赖。具体来说,XA规范是由X/Open组织定义的分布式事务处理标准,它描述了全局的事务管理器与局部的资源管理器之间的接口,允许多个资源(如数据库、应用服务器、消息队列等)在同一事务中访问,以保持ACID属性跨越应用程序。XA模式是数据库层面实现的二阶段提交,而AT模式则是应用/驱动层实现的二阶段提交。
2024-08-30 18:28:49
484
转载 Nginx 通过 Cookie 做灰度
文件处理结束后,此文件需删除。uri #请求中的当前 URI(不带请求参数,参数位于uri #请求中的当前 URI(不带请求参数,参数位于args),可以不同于浏览器传递的 requesturi的值,它可以通过内部重定向,或者使用index指令进行修改,����������的值,它可以通过内部重定向,或者使用�����指令进行修改,uri 不包含主机名,如"/foo/bar.html"。
2024-08-27 15:05:29
121
转载 深入理解Java中的参数传递
无论是值传递还是引用传递,其实都是一种求值策略 (Evaluation strategy)。在求值策略中,还有一种叫做按共享传递 (call by sharing)。其实 Java 中的参数传递严格意义上说应该是按共享传递。按共享传递,是指在调用函数时,传递给函数的是实参的地址的拷贝(如果实参在栈中,则直接拷贝该值)。在函数内部对参数进行操作时,需要先拷贝的地址寻找到具体的值,再进行操作。如果该值在栈中,那么因为是直接拷贝的值,所以函数内部对参数进行操作不会对外部变量产生影响。
2024-07-10 17:16:57
332
原创 单元测试核心类备忘
logger.info("返回结果:"+ JacksonUtil.serializeIgnoreException(dbItem));//@Rollback() //控制数据是否落库。
2024-07-09 17:00:06
648
1
转载 BigDecimal舍入模式深入理解及运用场景分析
返回一个BigDecimal,其标度为指定值,其未标度值通过将此BigDecimal的未标度值乘以或除以适当的 10 次方来确定,以保持其整体值。一个BigDecimal,其标度为指定值,其未标度值通过将此BigDecimal的未标度值乘以或除以十的适当幂来确定,以保持其整体值。积少成多,平台亏不起。向“最近的邻居”舍入,除非两个邻居是等距的,在这种情况下,向偶数邻居舍入。向“最近的邻居”舍入,除非两个邻居是等距的,在这种情况下向上舍入。向“最近的邻居”舍入,除非两个邻居是等距的,在这种情况下向下舍入。
2024-07-03 10:14:20
184
原创 tomcat关不掉解决方案
找到tomcat安装目录(如:/data/b2b/b2b_erp02/apache-tomcat-8.5.82/bin),在该目录下有个catalina.sh脚本,在脚本的上面添加一行。这样每次启动tomcat的时候,都会将当前运行的pid写入到 bin/CATALINA_PID文件中,在停止脚本中kill掉该pid的java进程。同时修改bin目录下的shutdown.sh脚本,在脚本的最后一行,添加一个 -force参数,如下。改造tomcat的脚本,增加强制关闭tomcat进程.
2024-05-23 10:56:35
501
原创 springcloud alibaba微服务框架涉及的技术
服务总线,顾名思义他是为我们所有服务提供服务,在微服务体系中通常会有一些公共的消息,比如上步骤提到的动态配置,就需要服务总线的支撑,各个微服务向服务总线订阅消息,进而监听总线,当总线发生变动时,订阅的服务可以感知,然后同步更新自己,服务总线一般搭配着消息中间件,如RabbitMq(MQ)、kafka等,此外服务总线还具有定点通知某个或多个服务的功能。发生在服务提供方,包含三个状态,降级->熔断->恢复。时,就需要负载均衡模块协助分配请求到对应服务实例,如果服务配置单个,就不要此模块,但是为了。
2024-05-08 15:45:08
1018
1
原创 【MySQL】事务及其隔离性/隔离级别
一般的数据库在可重复读情况的时候,无法屏蔽其他事务insert的数据,因为隔离性实现是对数据加锁完成的,而insert待插入的数据因为并不存在,那么一般加锁无法屏蔽这类问题,这会造成大部分内容虽然是可重复读的,但是insert的数据在可重复读情况被读取出来,导致多次查找时,会多查找出来新的记录,就如同产生了幻觉。通过试验可以发现读提交级别,事务A在commit提交事务之前,所做的修改是不会被其他事务看到的,一旦事务A发起commit之后,其他事务就能看到事务A对数据的修改。(事务中的读取不是原子的)
2024-05-08 14:57:59
1171
原创 分布式事务Seata使用
Seata 是通过代理数据源实现事务分支的,所以需要配置 io.seata.rm.datasource.DataSourceProxy 的 Bean,且是 @Primary默认的数据源,否则事务不会回滚,无法实现分布式事务.Seata是阿里巴巴中间件团队发起了开源项目,其愿景是让分布式事务的使用像本地事务的使用一样,简单和高效,并逐步解决开发者们遇到的分布式事务方面的所有难题,后来更名为 Seata。Seata的设计目标是对业务无侵入,因此从业务无侵入的2PC方案着手,在传统2PC的基础上演进。
2024-05-08 14:25:38
1414
原创 ops_agent运维工具
这篇博文是一个获取linux系统运行时数据的脚本框架,属于ops_agent中工具集中一个小工具,用于排错之前对机器有一个整体的把握,不过暂时还没有完全完工。packages = {"iotop":"iotop","netstat":"net-tools"} # 命令名对应的rpm包名。cmds = {"iotop":0,"netstat":0} # 命令名称。磁盘使用情况(包括文件inode数)、内存使用情况、cpu使用率。当前cpu消耗进程排序。
2024-05-08 13:54:10
389
转载 小米监控系统open-falcon搭建(一)
还是把官网介绍盗过来吧,要不老得去打官网。Bash监控系统是整个运维环节,乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,事后提供翔实的数据用于追查定位问题。监控系统作为一个成熟的运维产品,业界有很多开源的实现可供选择。当公司刚刚起步,业务规模较小,运维团队也刚刚建立的初期,选择一款开源的监控系统,是一个省时省力,效率最高的方案。之后,随着业务规模的持续快速增长,监控的对象也越来越多,越来越复杂,监控系统的使用对象也从最初少数的几个SRE,扩大为更多的DEVS,SRE。
2024-05-06 16:45:22
1715
2
转载 memorycache安装
错就错在Linux是64bit系统,如果没有指定libevent路径,memcached就会去。配置也比较简单,主要包括账户配置,以及Memcached Server地址配置。参照Nginx的系统服务,自己写了一个Memcached的系统服务脚本。简单的说就是一个事件触发的网络库,Memcached离不开它。还可以试试get、set、delete、replace。,后面配置memcached的时候就有必要用到。set foo 0 0 3 (保存命令)VALUE foo 0 3 (数据)
2024-05-06 16:42:18
71
原创 javax.net.ssl.SSLHandshakeException: No appropriate protocol
删掉下面的三个配置,然后重启应用即可。
2024-04-19 15:24:29
323
转载 Java中List使用stream流转成map的几种方式
{“1”:{“person”:{“address”:“森林第一个小屋”,“name”:“熊大”},“id”:“1”},“2”:{“person”:{“address”:“森林第二个小屋”,“name”:“熊二”},“id”:“2”},“3”:{“person”:{“address”:“森林第三个小屋”,“name”:“光头强”},“id”:“3”}}{“光头强”:[“森林第三个小屋”],“熊大”:[“森林第一个小屋”,“森林第四个小屋”],“熊二”:[“森林第二个小屋”]}
2024-04-02 14:09:42
12058
原创 Long类型js处理值变短的问题,js处理long精度丢失
方法二:启动服务,打开浏览器访问 http://localhost:8080/,点击1和2两个超链接,它们请求的接口一样,但是返回的结果中,a字段值不一致。方法一:打开浏览器,按F12调出控制台,在控制台中输入 console.log(9223372036854775807) ,打印的结果与传入的参数不一致。后端long类型的数据返回前端时,经过js处理后,会存在精度丢失的情况。注意:此方式,会影响所有的接口,所有接口中的数字字段,都会被转换为字符串输出。
2024-03-11 16:49:10
658
原创 前端和后端交互数据类型转换
在web开发中有时会使用枚举作为参数,而前端在调接口时就会出现传错或者传空导致后端拿不到枚举类型。而之后又遇到了数组枚举,那么在反序列化的时候的问题就主要是要拿到数组的泛型类,而通过反射可以做到这一点。页面是男/女 后端pojo类以及数据库中是Integer 0/1 怎么样很方便地转化?该类会判断前端传入的数据的某个字段是否能够解析为枚举,如果不能则返回null。最后在传入的请求类的枚举字段上加入@JsonDeserialize注解。这里是对枚举进行反序列化,所以首先编写一个类。----枚举转化--
2024-03-11 16:46:14
1659
转载 浏览器中Cookie的全面介绍
在Web前端开发时,我们经常会遇到一些浏览器存储相关的工具,例如Cookie。Cookie的英文本意是曲奇,但是在Web中,它被用作浏览器中存储的数据。Cookie都是name=value的结构,name和value都为字符串。
2024-03-07 19:50:37
689
转载 SpringCloud组件Feign连接超时处理---feign.RetryableException: Read timed out executing
目前大部分公司都是使用微服务架构,自然免不了服务间的调用,在服务调用的过程中,可能会出现连接超时或者读取超时的问题。FeignClientProperties是Feign客户端的配置类,对应我们在yml文件中的feign.client。源码追踪到这可以看出feign请求的默认连接超时时间为10秒 读取超时时间为60秒。3、FeignClientProperties的config属性。2、查看options(HTTP请求的配置)的初始化。三、源码追踪(知其然,知其所以然)3、options的默认值和配置。
2024-03-07 18:35:18
2392
原创 一个接口获取所有省市区报java.io.IOException: 连接被对方重设 Connection reset
连接被对方重设 发送在浏览器和web接口之间. 也就是说请求中间nginx中断了请求导致报错.因为请求体比较大,nginx写到缓存文件中,但是读取的时候是nobody,导致报没权限.通过直接走后端8001服务,数据正常,走80端口就不正常.所以问题在nginx.表现:输出的json数据输出一部分,截断掉了.所以前端报错.nginx中报 13: Permission denied。
2024-03-07 17:52:25
739
转载 tomcat性能调优以及jvm性能调优
/连接协议,通过协议设置i/o方式(nio、nio2等)# server.tomcat.max-keep-alive-requests:一个keep-alive连接最多处理的请求数,达到该数后,关闭连接。# server.tomcat.keep-alive-timeout:长连接处理完一条请求,等待下一条请求的最长时间,超过该时间,连接关闭。# server.tomcat.max-http-form-post-size:post表单请求体的最大值,默认为2MB。//cookie最长长度,默认为200。
2024-03-07 16:56:27
409
转载 Tomcat中Connector常用配置
含义:http请求中的header的最多的参数个数,默认100。可以通过tomcat设置合适的值,parameter个数越多,事实上对tomcat的内存开支越大,很多时候处于安全或者实用的角度考虑,maxParameterCount的值都不会太大,-1表示无限制,如果请求中参数个数超过限定值,请求将被拒绝。含义:连接器接收连接后等待第一个请求数据到达的最大时间,只对连接后的第一个请求数据有效,相当于建立连接后第一次等待客户端发送请求的时间,之前客户端发送数据的间隔时间跟这个配置无关。含义:连接空闲时间。
2024-03-07 16:36:57
348
jtidyTest.zip
2021-09-24
解决java版本钉钉PC端demo跑起来访问不到当前员工信息的问题.txt
2019-08-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人