优化排查-线程阻塞:CompletableFuture 和 DiscardPolicy问题发现1 前天大佬通过prometheus发现 tomcat http busy状态的线程这几天呈线性递增。每一天增加3个排查问题1:找到busy线程在哪。通过jvm自带的 jps 命令可以找到服务对应的进程ID:66182>大部分的线程都正常,cpu利用率不高,而
......
386
0
0
2022-10-28
导读:手上有一个测试服务器,内存是8G,最近开始搭起微服务的软件架构,单个Spring Boot 服务内存占用有点大,比如一个RocketMq的消费者服务(单独运行的服务),启动占用了 500M 内存,导致我后面想运行其他服务,内存不够,触发了 Linux 的 OOM - Killer 机制Linux杀死了我们的进程,但 nohup.out 没有记录任何东西
......
460
0
0
2022-10-27
链式编程+流式计算函数式型接口 Function<T,R> 传入一个参数,获取一个返回值断定型接口 Predicate 传入一个参数,返回一个 bool 值消费型接口 Consumer 传入参数,没有返回值供给型接口 Supplier 没有传参数,有返回值Package java.util.function/**
* @author zhan
......
453
0
0
2022-10-26
1. pom 加入 security <!-- 加入密码认证 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>s
......
385
0
0
2022-10-25
###/** 题目:现在两个线程,可以操作初始值为零的一个变量, 实现一个线程对该变量加1,一个线程对该变量-1, 实现交替,来10轮,变量初始值为0.1. 高内聚低耦合前提下,线程操作资源类2. 判断/干活/通知3. 多线程中交互中 必须要,防止多线程的虚假唤醒(判断只能用while,不能用if)知识小总结:多线程编程套路+while判断+新版写法————
......
386
0
0
2022-10-24
配置 pom<!-- druid 数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.12
......
336
0
0
2022-10-23
一、ElasticSearch更新数据后不能立即刷新向 elasticsearch 中新增一条文档数据后,立即请求查询文档列表,发现刚刚新增的文档查不出来,需要等一会后再次请求查询才能查询出来,随后测试了删除文档列表和更新文档列表中的文档这两个接口,出现了同样的问题,即elasticsearch数据更新有延迟。
1.1、解决方法一种是设置等待超时时间,但是
......
434
0
0
2022-10-22
ForEach集合的遍历forEach方法public void testForEach(){
List<String> list = new ArrayList<String>() {{
add("1");
add("2");
add("3");
}};
......
353
0
0
2022-10-22
使用场景应用中有两种不同类型的异步,产品的和订单的,在某一瞬间,大量涌入了订单的异步任务,这样,根据线程池的配置,订单的异步任务占满了线程池以后,就会影响产品的异步任务进入线程池,导致产品的功能异常。
解决办法一个比较好的方案是:把产品和订单隔离开,使用两个独立的线程池,避免互相影响。
定义不同线程池@Configuration
@EnableAsyn
......
578
0
0
2022-10-22
一、前言因为之前在项目中使用了Groovy对业务能力进行一些扩展,效果比较好,所以简单记录分享一下,这里你可以了解:为什么选用Groovy作为脚本引擎了解Groovy的基本原理和Java如何集成Groovy在项目中使用脚本引擎时做的安全和性能优化实际使用的一些建议二、为什么使用脚本语言2.1 脚本语言可解决的问题互联网时代随着业务的飞速发展,不仅产品迭代、更
......
624
0
0
2022-10-20
一、背景随着vivo商城的业务架构不断升级,整个商城较为复杂多变的营销玩法被拆分到独立的促销系统中。拆分后的促销系统初期只是负责了营销活动玩法的维护,促销中最为重要的计价业务仍然遗留在商城主站业务中,且由于历史建设问题,商城核心交易链路中商详页、购物车、下单这三块关于计价逻辑是分开独立维护的,没有统一,显然随着促销优惠的增加或者玩法的变动,商城侧业务重复开发
......
433
0
0
2022-10-19
一、背景官网商城在双11、双12等大促期间运营同学会精心设计许多给到用户福利的促销活动,当促销活动花样越来越多后就会涉及到很多的运营配置工作(如指定活动有效期,指定活动启停状态,指定活动参与商品等等)。如果因为某些原因导致其中部分配置未按预期配置,等到大促那一刻才发现配置没有正确配置,这样大概率会流失不少订单,同样也可能会出现错配优惠导致一些本不该享受的优惠
......
409
0
0
2022-10-19
我们先从下图开始简单介绍Dubbo分层设计概念:(引用自Duboo开发指南-框架设计文档)如图描述Dubbo实现的RPC整体分10层:service、config、proxy、registry、cluster、monitor、protocol、exchange、transport、serialize。service:使用方定义的接口和实现类; config:
......
448
0
0
2022-10-19
一、RocketMQ架构简介1.1 逻辑部署图(图片来自网络)1.2 核心组件说明通过上图可以看到,RocketMQ的核心组件主要包括4个,分别是NameServer、Broker、Producer和Consumer,下面我们先依次简单说明下这四个核心组件:NameServer:NameServer充当路由信息的提供者。生产者或消费者能够通过NameServ
......
360
0
0
2022-10-18
一、业务背景目前移动端的使用场景中会用到大量的消息推送,push消息可以帮助运营人员更高效地实现运营目标(比如给用户推送营销活动或者提醒APP新功能)。对于推送系统来说需要具备以下两个特性:消息秒级送到用户,无延时,支持每秒百万推送,单机百万长连接。支持通知、文本、自定义消息透传等展现形式。正是由于以上原因,对于系统的开发和维护带来了挑战。下图是推送系统的简
......
404
0
0
2022-10-18