java 多个系统接口设计_接口设计_系统优化

需要考虑点

  • 接口权限(开放接口-auth2权限|内部接口)
  • 接口幂等性(RPC防止多次提交相同消息,使用Redis+token)
  • 安全性(https)
  • 防止篡改数据(验证签名sign算法)
  • 利用网关(nginx)拦截接口实现黑白名单
  • 接口使用http协议+json格式的restful(目的:跨平台)
  • 高并发(对接口进行服务降级、熔断、隔离等)
  • 可以使用统计API管理平台api swagger
  • 接口设计六大原则(单一职责、低耦合、开闭原则)

系统优化思路

03d97f9b594d2f1477eb69f31300a590.png
  • 基础优化
    内存:如何分配内存、垃圾回收、增加缓存和锁。
    网络:网络传输序列化、增加压缩、策略、散列、不同协议与格式。
    CPU:用多线程提高利用率和负载。
    此处利用率和负载是两个不同的概念:
    利用率:在用满一个核后再用下一个内核,利用率是逐步升高的。
    负载:一下子把八个核全用上了,则负载虽然是满的,但是利用率很低。即,每核都被占用了,但是所占用的资源却不多,计算率比较低下。
    磁盘:尝试通过文件合并,减少碎片文件的产生,并减少寻道次数。同时在系统级别,通过修改设置,关闭各种无用的服务。
  • 平台扩展
    做加减法,或称替代方案:无论是互联网应用,还是日常应用,我们在查询时都增加了分布式缓存,以有效提升查询的效率。另外,我们将不被平台使用到的地方直接关闭或去除。
    纵向扩展:如增加扩展磁盘和内存。
    横向扩展:加减/平行扩展,使用分布式集群。
  • 数据分治
    根据数据的不同维度,对数据进行分类、分级。例如:我们从日志中区分error、info、和 debug,甚至将 info 和 debug 级别的日志直接过滤掉。
    数据热点:例如:某种日志数据在白天的某个时间段内呈现暴涨趋势,而晚上只是平稳产生。我们就可以根据此热点情况将它们取出来单独处理,以打散热点。
  • 系统降级
    我们在对整体业务进行有效区分的基础上,通过制定一些降级方案,将部分不重要的功能停掉,以满足核心业务。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值