当前位置: 首页 > wzjs >正文

个人可以做网站么网站是什么时候开始的

个人可以做网站么,网站是什么时候开始的,页网站设计,网站功能模版问题发现 凌晨03:00-04:00压测后,发现接口平均响应时间很长,压测结束仍然持续存在这个问题。压测完流量下来后,机器负载仍然较高。推测在频繁GC。 检查JVM 检查JVM监控,发现GC时间超长。分析JVM发现存在大量GC线程占用大量CPU资…

问题发现

凌晨03:00-04:00压测后,发现接口平均响应时间很长,压测结束仍然持续存在这个问题。压测完流量下来后,机器负载仍然较高。推测在频繁GC。

检查JVM

检查JVM监控,发现GC时间超长。分析JVM发现存在大量GC线程占用大量CPU资源。堆内存几乎跑满,仍在不停GC,但堆内存使用却降不下来。

分析dump

生成dump后,发现存在几个异常的对象SpringValue,WeakReference,LinkedListMultimap,其实例个数都达到500多万,占用内存越650M,且只增不减。

分析重复字符串,发现存在大量重复的Apollo的key。

分析源码

查阅后发现这几个异常对象为Apollo动态更新相关逻辑的依赖。Apollo会将所有带有@Value注解的对象关系构造为SpringValue对象,注册到LinkedListMultimap中,而SpringValue对象存在与带有@Value注解对象的弱引用。

接下来的问题就是为什么会有这么多SpringValue对象。

public class SpringValueRegistry {private static final long CLEAN_INTERVAL_IN_SECONDS = 5L;private final Map<BeanFactory, Multimap<String, SpringValue>> registry = Maps.newConcurrentMap();private final AtomicBoolean initialized = new AtomicBoolean(false);private final Object LOCK = new Object();public SpringValueRegistry() {}public void register(BeanFactory beanFactory, String key, SpringValue springValue) {if (!this.registry.containsKey(beanFactory)) {synchronized(this.LOCK) {if (!this.registry.containsKey(beanFactory)) {this.registry.put(beanFactory, Multimaps.synchronizedListMultimap(LinkedListMultimap.create()));}}}((Multimap)this.registry.get(beanFactory)).put(key, springValue);if (this.initialized.compareAndSet(false, true)) {this.initialize();}}
}

public class SpringValue {private MethodParameter methodParameter;private Field field;private WeakReference<Object> beanRef;private String beanName;private String key;private String placeholder;private Class<?> targetType;private Type genericType;private boolean isJson;
}

问题定位

通过前面统计重复字符串得到的key,找到相关代码。

该类因业务逻辑被设定为多例,且该类中存在@Value注解的属性,正好与大量重复的字符段对应。

每次进来一个线程,都会创建一个FinalOrderBuilder对象,因对象中存在@Value注解的属性,会被Apollo构造为包含SpringValue注册到LinkedListMultimap中,此map为全局单例对象,不会被回收。

@Component("finalOrderBuilder")
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public class FinalOrderBuilder extends AbstractOrderOutputBuilder<FinalOrderVO> {private static final Logger LOGGER = LoggerFactory.getLogger(FinalOrderBuilder.class);@Value("${ck_config.special_province_ids}")private String special_province_ids;@Value("${ck_config.is_open_gift_package}")private String is_open_gift_package;@Value("${ck_config.shopping.cart.url}")private String shoppingCartUrl;@Value("${ck_config.min.cust.cash.password.limit}")private String minCustCashPasswordLimit;@Value("${ck_config.min.gift.card.password.limit}")private String minGiftCardPasswordLimit;@Value("${ck_config.min.redpacket.password.limit}")private String minRedPacketPasswordLimit;@Value("${ck_config.is.show.map.api}")private boolean isShowMapApi;@Value("${ck_config.is.support.baidu.map}")private int isSupportBaiDuMap;@Value("${ck_config.is.show.pickup.limit}")private boolean isShowPickUpLimit;@Value("${ck_config.is.show.shipment.festiva.tip}")private boolean isShowShipmentFestivaTip;@Value("${ck_config.send.sms.vip.type}")private String sendSmsVipType;@Value("${ck_config.split.combine.type.split}")private String splitCombineTypeSplit;@Value("${ck_config.split.combine.type.combine}")private String splitCombineTypeCombine;@Value("${ck_config.MATCH_PURCHASE_SWITCH:ON}")private String matchPurchaseSwitch;

解决方法

在使用Apollo时,应避免多例实例中使用@Value注解。

将@Value注解的属性抽取到单例bean中,FinalOrderBuilder通过注入该bean获取这些属性。

其他参考文章:Java Full GC (Ergonomics) 的排查-CSDN博客


文章转载自:

http://drWxxE0b.pbkyf.cn
http://tgZLLpx9.pbkyf.cn
http://k3Oj5hpv.pbkyf.cn
http://1Ltvg5Zx.pbkyf.cn
http://yEkLVH5L.pbkyf.cn
http://0iuABDUp.pbkyf.cn
http://Ea2PxGzu.pbkyf.cn
http://qlzxdNWv.pbkyf.cn
http://NWybOZlu.pbkyf.cn
http://e316Knz0.pbkyf.cn
http://3Co4sehR.pbkyf.cn
http://gvahfsrk.pbkyf.cn
http://r1kGydO9.pbkyf.cn
http://fPWmdvXL.pbkyf.cn
http://tQumSfcC.pbkyf.cn
http://lLmoWtV6.pbkyf.cn
http://MpUSmu39.pbkyf.cn
http://BOH5xs4A.pbkyf.cn
http://jNsFRuh1.pbkyf.cn
http://9Bt1X5Je.pbkyf.cn
http://WBbXsTbQ.pbkyf.cn
http://dF3t7Fpn.pbkyf.cn
http://Yxqn18Tq.pbkyf.cn
http://9wVhGdHQ.pbkyf.cn
http://ATvDLste.pbkyf.cn
http://lZ6kYrM5.pbkyf.cn
http://iNF9MjsR.pbkyf.cn
http://dL3jhTiT.pbkyf.cn
http://gE5qdV4C.pbkyf.cn
http://Deke6GhP.pbkyf.cn
http://www.dtcms.com/wzjs/684478.html

相关文章:

  • 网站免费广告网站设置英文怎么说
  • 网站地图广州 网站建设网络推广网页设计
  • 网站建设完工报告网站开发与规划就业前景
  • 织梦的网站数据还原怎么做湛江有那些网站制作公司
  • 网站特效 素材一般网站后台都是哪里做
  • 大理建设投资有限公司网站重庆市工程建设标准化网站
  • 什么软件可以自主建设网站网页设计代码大全html
  • 网站电脑端和手机端开发公司都有什么部门
  • 粉丝帮女流做的网站零基础学习网站开发
  • 嘉兴手机端建站模板室内设计者联盟
  • 大莲网站建设公司乌当区城乡建设局网站
  • 青岛苍南网站建设网站菜单实现原理
  • 自然志wordpress下载上海优化排名推广
  • 南通网站流量优化网站制作开发 杭州
  • 大岭山镇网站建设长沙网站seo推广
  • 成都网站运营网页加速器
  • 北京市新闻如何优化啊里网站排名
  • 广东集团网站建设做网站的就业前景
  • 兴安盟建设局网站百度云登录
  • 有人做彩票网站吗wordpress投票插件wp-polls
  • 破解软件网站湖南郴州市旅游景点
  • 产品型网站案例外贸网站模板设计
  • 营销型网站建设的要素网站和系统的区别
  • html网页设计网站建设网站的方案
  • 个人资料展示网站最近发生的重大军事新闻
  • 做网站首页有什么广西住房及城乡建设厅网站
  • 关键词分为哪三类青岛网站seo推广
  • wordpress 三款站群插件之比较搜索引擎推广预算
  • 幸运飞艇网站建设建设部网站如何下载规范 标准
  • 模版网站有源代码吗网站推广合同需要缴纳印花税吗