- 博客(13)
- 资源 (3)
- 收藏
- 关注
原创 一次内核bug引发的服务挂起血案
最近公司在客户上线项目,客户服务器用的天翼云。服务部署后,Nacos在2天时间左右会出现不响应的情况,管理页面打不开,telnet可以通,连接Nacos的微服务可以正常用,但是微服务重启就失败。...
2020-12-23 10:18:43 292
原创 Arthas-CPU持续100%优化
背景公司测试环境服务器中发现CPU持续在100%,导致程序不能正常响应。测试服务器硬件配置为2核16G单机云服务器。安装了当前公司所有的产品和Mysql数据库。分析问题使用Top命令查看从上图可以看出是由一个java应用和mysql服务占用了几乎大部分CPU资源。通过监控一段时间的mysql,发现数据库的查询请求压力非常大。从上图来看,数据库的高峰请求在1200/S左右,5分钟平均下来也在600/S。基于现在的业务数据量来判断不太合理。然后打开Arthas的控制...
2020-09-09 15:31:25 588
原创 Arthas-线上问题定位以及优化
背景公司项目临近上线,测试中发现PAD查询数据性能很差,最长的需要50s才能展示数据。分析问题1、前端PAD只处理5条数据,不存在因数据量大导致的加载问题;2、Mysql服务器中,本次查询作业单数据范围只有1000条左右,也不存在数据量大的问题;3、在排除了PAD和Mysql数据库的问题后,问题焦点应该集中在MES系统接口中;定位问题翻出代码查看,发现接口中做的事情很多,无法准确的定位到是哪条代码的问题。因此采用arthas的trace功能定位问题。Arthas官方文档.
2020-09-09 15:04:29 498
原创 Springboot-工厂模式解耦相同业务类型不同处理逻辑
当前公司项目有旧项目需要改造,看了下以前的代码,部分逻辑if else太多,因此使用工厂模式解耦。1、首先定义业务的类型,按类型区分,这里采用了枚举方式定义:@Getterpublic enum RequestCategoryEnum { OPERATION_REQUEST(10, "动作指令", "operationRequestService"), COMPOSITE_REQUEST(20, "组合指令", "compositeRequestService"), GO
2020-07-10 12:33:21 919
原创 SpringCloud开发-nacos启动包开发
前言制作nacos启动包的目的是,项目采用nacos作为配置管理和注册中心,但需要在项目中做一些配置,项目多了其实也不方便使用。因此将项目共用配置做到启动包中,方便各个项目使用。实现创建phenix-spring-boot-starter-nacos的子模块,pom配置为:<?xml version="1.0" encoding="UTF-8"?><proje...
2020-04-22 17:31:50 488
原创 SpringCloud开发-mybatis-plus启动包开发
前言制作mybatis-plus启动包的目的是,项目采用mybatis-plus作为orm工具,但需要在项目中做一些配置,项目多了其实也不方便使用。因此将项目共用配置做到启动包中,方便各个项目使用。实现创建phenix-spring-boot-starter-mybatis-plus的子模块,pom配置为<?xml version="1.0" encoding="UTF-8...
2020-01-01 00:33:56 636
原创 SpringCloud开发-云效流水线使用
前言 2018年使用云效的时候,当时功能还不完善,并且有很多流程走不通,因此没有正式使用流水线做CICD工作。后来有幸听了云效产品经理分享,会议上了解到云效将会重构,就等着重构后再来使用。 今年刚好需要使用CICD,就再研究了下新版的云效,其中的流水线功能确实很好,因此计划使用这个功能作为公司CICD的工具。实现1、申请云效,上篇文章已经有写了,此处略;2、新建项目...
2019-12-31 18:16:22 1723
原创 SpringCloud开发-云效私有仓库使用
前言2018年的时候就开始有使用云效,当初云效功能并不完善,只是使用了私有仓库代替nexus,那就说说怎么使用云效的私有仓库。准备工作1、申请阿里云帐号,地址在这里:点击;2、申请开通云效,现在云效对私人是免费的,可以放心申请;3、申请后,进入云效页面,会展示企业列表,这里需要新建企业;4、建好企业后,点操作进入;5、进入后选择研发中的私有仓库;这个时候...
2019-12-31 15:11:27 994
原创 IDEA设置编码错误导致NACOS异常
今天项目的小伙伴说Nacos异常,读不到项目的配置。日志异常为:org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length = 1 。排查步骤如下:1、排查了是否配置文件有人修改,查询Nacos历史版本并没有发现有修改;2、排查配置是否正确,经过我本地启动...
2019-12-29 19:25:30 2130
原创 Mybatis-Plus-多租户体验
前沿项目中有可能需要多租户功能,了解到Mybatis-Plus集成了多租户功能,因此尝试集成到项目中使用。原理Mybatis-Plus是通过配置多租户拦截实现多租户功能。实现创建租户内容/** * 租户内容 * * @author zhenghui * @date 2019-11-21 */public class TenantContext { p...
2019-12-16 22:36:17 1514
原创 SpringCloud开发-mysql启动包开发
前言制作mysql启动包的目的是,项目采用HikariCP作为连接池,需要加密配置中的数据库帐号和密码。虽然Druid提供了原生支持,但是在最新版本配合mybatis-plus使用会导致出错,因此选HikariCP作为连接池。实现创建phenix-spring-boot-starter-mysql的子模块,pom配置为<?xml version="1.0" encoding...
2019-12-15 20:06:11 224
原创 SpringCloud开发-Spring Boot Starter包
前言制定starter包目的为,约束和统一企业内的开发组件的版本,减少应用代码的配置内容。使得我们在开发业务代码时能够非常方便的、不需要过多关注框架的配置,而只需要关注业务即可。原理我们知道使用一个公用的starter的时候,只需要将相应的依赖添加的Maven的配置文件当中即可,免去了自己需要引用很多依赖类,并且SpringBoot会自动进行类的自动配置。那么 SpringBoot 是...
2019-12-15 19:56:56 587
api函数
2008-07-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人