阿里云监控URL的配置笔记 有很多细节需要记录这个是服务下拉框必须有:这个是IP服务器下拉框,必须有,注意要选择ALL。这里要注意,不这样配置就不行,不然只能单服务下接口可以,想混合服务接口放一起就不行:这里直接写死service服务和rpc接口就行:默认写法:sum by (callType) (sum_over_time(arms_app_requests_count{service="服务",rpc="接口",host=~"$host",callType=~"^dsf$|^http$|^
每个程序员都应该知道的延迟数字 最早流传的数字是Google的Jeaf Dean的《构建大型分布式系统的设计,教训和建议》。(Designs, Lessons and Advice from Building Large Distributed Systems by Jeaf Dean.)http://www.cs.cornell.edu/projects/ladis2009/talks/dean-keynote-ladis2009.pdfLatency Numbers Every Programmer Should K.
IDEA函数调用关系图插件 Call Graph是一款IDEA插件,用于可视化基于IntelliJ平台的IDE的函数调用图。这个插件的目标是让代码更容易理解,有助于读懂和调试代码。安装插件安装后,通过View - Tool Windows - Call Graph ,激活窗口激活后,需要先Build graph,让插件分析java代码,可以选择对整个工程或者针对某个项目。然后点击Run.选择你要看的函数所在模块查看调用关系图...
IDEA2021.3.2拉取maven报错maven-default-http-blocker解决方法 因为IDEA2021.3.2 的Maven是3.8.1后,mvn编译的时候总是提示拉不到依赖,报错如下:Could not validate integrity of download from http://0.0.0.0/...因为使用HTTP协议下载依赖,可能会导致中间人攻击。所以Maven 3.8.1就禁止了所有HTTP协议的Maven仓库,而IDEA2021.3.2使用了Maven 3.8.1很多公司内部的maven仓库一般都是http协议,而Maven 3.8.1禁止了http协
Linux系统火焰图 CentOS7.8安装perf#yum install perf执行perf执行perf record 命令,记录该PID的行为#perf record -a -g -p 14851 -- sleep 30 --30秒后退出#perf report安装git#yum -y install git下载FlameGraph#git clone https://github.com/brendangregg/FlameGraph.git生成火焰图/
使用arthas采集火焰图 火焰图是用图形化的方式来展现profiler工具采集的性能数据,对数据进行统计和分析,方便找出性能热点。现在我们使用arthas采集JVM的火焰图。1.首先你需要安装arthas说是安装其实就是下载解压,arthas是不需要安装的。下载 — Arthas 3.5.5 文档需要完整的文件目录例如:需要注意 如果你只是上传一个arthas-boot.jar是不够的,因为会调用其他库#unzip arthas-packaging-3.5.4-b.
show-busy-java-threads查找CPU占用高 背景:需要查找线上CPU占用过高的Java线程在做什么。可以使用top命令找出占CPU高的进程#top 然后按shift+C 按CPU占比排序然后把进程中占比高的线程id找出来,这个是常见的套路,但是这样做比较繁琐。可以使用show-busy-java-threads工具包快速定位,确实好用。1.下载安装下载#wgethttps://github.com/oldratlee/useful-scripts/archive/release.zip解压#unzip usefu.
ShardingSphere-Proxy分库分表以及多租户安装使用 需求:你提供SAAS服务,你有你有2个租户(商户),各自的数据进各自的库,而你不希望你的微服务java里默认配置多个租户数据源,数据连接池太多,而且后面动态增加也不方便,诸如此类很多问题。方案:ShardingSphere-Proxy基于数据库表有一个租户字段1.ShardingSphere-Proxy家族产品简介ShardingSphere-Proxy和ShardingSphere-JDBC都是ShardingSphere的不同产品。ShardingSphere-JDBC是客户端分库分
Redis6安装配置集群cluster以及集群宕机注意事项 Redis6的cluster模型推荐3主3从先准备3台服务器,每个上面部署2个redis,服务器配置2核2G:下面在每台服务器安装redis6,每台机器只要安装一次即可,然后分别配置2个端口的conf文件,分别起来即可:#yum install -y lrzsz#wget -P /usr/local/src/ https://download.redis.io/releases/redis-6.2.6.tar.gz#cd /usr/local/src/#tar zxvf red.
不写容易出错的代码 下面2段代码都是完成商品名称的更新,只是第一种情况数据源是list第二种是map第一代代码是从List里获取第0个entity.setProduct_name(productList.get(0).getName());第二段代码从map里获取键值entity.setProduct_name(productMap.get(pid).getName()));如果哪一天第一段代码修改了 然后忘记改第二段代码这是一种容易犯错的情况。更多的是改了第一段代码直接复制到第二段,也可以..
Spring @bean冲突解决方案 引用2个jar都实现了相同的@bean注入,这个是feign的Level@Beanpublic Level feignLoggerLevel() { return Level.FULL;}这样报错:escription:xxx required a single bean, but 2 were found: - feignLoggerLevel: defined by method 'feignLoggerLevel' in class path r
编程容易犯的错 1.数字比如分页默认从第0页开始,你不了解,写个1,这样数据也出来,但是就是少了第一条,这种错误比较难发现。写代码对于数字需要敏感,不懂一定要搞懂。2.参数多参数做缓存拼凑一个key,之前的代码是对的,后来需要写类似的代码,就遗漏了其他参数,只用一个id对于个数需要敏感。3.临时代码忘记复原临时修改代码为了验证某个问题,后来改了B,忘记A该回去。...
系统架构的过程 浮现式设计 系统架构如果设计之初就设计错了,那么必然是南辕北辙。系统分为三层,数据层 视图层 业务层数据层 包含数据存储和数据交互,应该是纯数据操作和业务无关业务层 自然就是service层这是最多变的一层视图层 接口那么系统设计应该按照什么顺序呢?应该是先设计数据层,如果数据层设计错了那么整体就会事倍功半。所以这是一个自底往上的过程。但是,上并不是到业务层,而是视图层,因为你的一切设计都是围绕对外,如果你的接口没有使用使用价值整个系统也就变得没有价值。好,当你设计好视图和数..
索引与联合索引使用注意 索引和联合索引看似很简单但是往往不一定用的对。假设数据库2个字段a,b都是查询条件第一个问题:是建立2个索引还是一个联合索引?第二个问题:如果建立联合索引那么字段的顺序有什么讲究?原则:1.如果需要多个字段唯一健那么需要联合索引2.如果某2个字段总是成对出现在查询语句里需要建立联合索引,相反的如果这2个字段总是出现在不同的查询语句也就是两者没有什么必然连续无需联合索引3.联合索引字段的先后顺序ab还是ba看列值选择性好的放前面,所谓列值选择性好就是该字段重复的越少越好。.
大厂线上案例复盘--代码漏洞 这是一则发生在某大厂的真实案例,出于脱敏名字这且不说。这个系统因为第一次上线,流量非常的大。所以需要灰度上线,所谓灰度方案很短,比如按照地理位置,先选择某个访问量小的地区比如西部青海。然后逐步放量,几天以后增加几个省再看看,然后如果没问题扩大到全国。灰度是没有问题的,也是必要的。APP--->B系统--->新系统这个系统提供了一个接口给B调用由于B系统是全国开放,所以B的流量很大,B上面没有做地区限制,他的流量会都打到新系统上。所以一开始不是青海的用户..
从一个需求看问题的无限复杂化和简单化 一个需求 如果你一开始的出发点就错了,那么后续的设计只会非常复杂,而且还会有漏洞,也很难发现,发现了也很难解决。先看数据结构:A表 主键id 其他各种字段不重要 ,重要的就一个字段sort字段aid1 sort=1aid2 sort=1---------------------B表 A的关联表 存A的id 还有就是C表的idaid1 cid1aid2 cid2-------------------C表 某种数据cid1cid2...
代码规范碎碎念 代码规范碎碎念list条件多于2不要写命名上controller (model-DTO)service (model)repository层 语义化构造(entity->model)String转map 语义化数据结构String转model 从数据库层增强语义 组装模型DAO ( entity)mapperVO(admin) DTO(client)---------facade层 必须接外部接口 必须用 integration包一层接口降级不...
暗时间:开发效率为何如此低下 产品 开发 测试 三者都理解不一致。产品怎么样表达出自己的诉求,是否写清文档就够了。开发觉得自己沟通了,但是为什么测试一提测又许多问题。测试的case看似都一起评审了。而这样的结果必然是重新修修补补,怎么样事前把问题全部解决?产品的设计稿,开发的代码,测试的case 不统一是关键!...
Java开发字符串JSON处理 需求很简单就是数据库存json。数据库字段 varchar入参request 定义 List<String> 如果不定义这个 而是定义String那么需要加"/转义比较难看Entity 定义Stringentity.setXXXIds(JSON.toJSONString(request.getXXXIds()));返回VO 定义还是List<String>BeanUtils.copyProperties(entity, vo);...