首页 » 2019年12月

目前遇到一个需求,需要用fiddler抓取idea插件的http请求。

解决办法,在idea64.exe.vmoptions和idea.exe.vmoptions加入下面的配置


-DproxySet=true
-Dhttp.proxyHost=127.0.0.1
-Dhttp.proxyPort=8888

最近研究http协议,对TCP/IP分层和做下对比,不得不说tcp/ip的设计者真的聪明,用分治的方法来处理复杂的网络处理。

1.TCP/IP分层可以总结为:应用层(如http,一般绑定到端口)向传输层(TCP)层要连接,传输层向IP层要ip路由,IP层向链路层要mac地址寻址。反之亦然。

  • 应用层(http,stmp)
  • 数据传输层(tcp,udp)
  • 网络层(ip)
  • 链路层(mac)
  1. OSI 是为了统一标准设计的
  • 应用层
  • 表示层
  • 会话层
  • 传输层
  • 网络层
  • 数据链路层
  • 物理层(光缆,网线)

我们可以这么理解,tcp/ip去掉了下面物理层,合并了上面的3层

最近看java 代码优化,总结下java 代码常见调优策略

1.优化代码

  • 比如不要for循环来访问linkedlist,使用iterator

2.优化设计

  • 比如使用单例设计模式来优化对象的创建

3.优化算法

  • 这个可以去研究算法了,提高代码的执行效率

4.时间换空间

  • 空间要求苛刻的场景,不追求时间,节约空间-----比如String.intern,解决字符串的存储空间,访问上略微降低了效率

5.空间换时间

  • mysql的分库分表,也可以理解成一种空间换时间。mysql超过千万级,就会出现读写速度变慢。

6.参数调优

  • 针对业务场景,调节系统,jvm,servlet容器参数,比如直接将大对象放入老年代。

总结:调优策略只是其中一环,上线前我们要做性能基准测试(benchmark)--->自下而上排查性能问题--->确定调优策略(此文种的6种)--->除了调优,还要兜底,因为再怎么调,我们系统也是有极限的,那么兜底策略有限流熔断,还有扩容(根据流量实时扩容,或者预测性提前扩容,比如秒杀活动时,提前扩容。)