java-统领全局

站在研发层面,统领全局

作为一名实实在在的底层,一直是作为底层的搬砖的,哈哈哈,一直从未有过自己的高度。最近要负责整个部门的系统把关工作,自然还是要学习一下的。

系统层面梳理

从架构层面梳理

  • 尽量保证服务是同机房调用(减少网络消耗)
  • 用空间换时间,增加多级缓存,保证时间最短,增加用户反馈
  • 分流的思想。用户流量大,可以考虑数据库层面的读写分离,业务层面的核心业务与非核心业务服务的隔离;
  • 熔断的思想。可以考虑限流:实现接口的限流
  • 核心高并发业务尽量不强依赖数据库
  • 降级:服务尽量设计降级

从业务逻辑层面梳理

  • 减少外部依赖调用次数(可以做缓存,减少调用次数)
  • 减少日志打印(尤其是优化打日志的打印、其实日志打印还是很占用磁盘及速度的)
  • 稀缺资源保护:数据库连接数。我们生产环境曾经就出现过一次事故:数据库连接数相关的,因为大量使用数据库资源,导致整个服务都阻塞,崩塌了
  • 全链路调用关系梳理:在java中,服务之间的调用是家常便饭。因此在实际应用中,一定保障整个系统的稳定性,因此对服务的上下游依赖也必须增加报警,一旦出现问题好排查
  • 如果自己的服务是基础性服务,那也一定做好服务的流量监控,防止别的系统频繁调用你的系统,导致你的系统崩溃了

从中间件层面梳理

  • 各个中间件也要进行梳理:每个中间件也要保证高可用,这也是保证整个服务正常的手段。比如mysql的慢查询,redis热key梳理、
  • 依赖的接口梳理

监控层面梳理

可以利用公司的各个监控服务对jvm、接口、系统、流量、mq、各种中间件进行监控

其实大公司的好处就是,他为你提供一切的基础设施,你只负责用起来就好,比如容器监控、内存、cpu监控。。。

GC

  •  YGC :对新生代堆进行gc。频率比较高,因为大部分对象的存活寿命较短,在新生代里被回收。性能耗费较小。
  •   FGC :全堆范围的gc。默认堆空间使用到达80%(可调整)的时候会触发fgc。以我们生产环境为例,一般比较少会触发fgc,有时10天或一周左右会有一次。

关于测试

借此机会,也熟悉一些研发应该了解的测试内容。

  • TPS 即Transactions Per Second的缩写,每秒处理的事务数目。

  • QPS 即Queries Per Second的缩写,每秒能处理查询数目(完整处理,即客户端发起请求到得到响应)

  • 如果是对一个接口(单场景)压测,且这个接口内部不会再去请求其它接口,那么TPS等于QPS,否则,TPS不等于QPS

  • TP99就是满足百分之九十九的网络请求所需要的最低耗时。

  • TP999就是满足千分之九百九十九的网络请求所需要的最低耗时。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值