美文网首页
每周阅读(1/9/2017)

每周阅读(1/9/2017)

作者: Jeff | 来源:发表于2017-01-15 18:44 被阅读8次
崇安髭蟾

2016年终自然记录总结
到自然去,去野,去观察,去感受。

Common misconceptions around microservices and APIs
对于微服务和API的一些误解:

  • Misconception 1: Microservices are like web services but more fine grained
  • Misconception 2: APIs are microservices
  • Misconception 3: Microservices are the implementation of an API

API是接口,服务是组件,一个服务可以实现一个或者多个API。

Summary of the fundamentalsSummary of the fundamentals

从一起GC血案谈到反射原理
JAVA的方法反射导致perm满了,发生full gc。

我们知道Perm里主要存的是类的原始数据,比如我们加载了一个类,那这个类的信息会在Perm里分配内存来存储它的一些数据结构,所以大部分情况下,Perm的使用量和加载的类个数是关系很大的,当然Perm里在低版本的时候还会存一些其他的数据,比如String(String.intern()的情况)。

这个系统在JDK7下使用G1,而这个版本的G1只有在Full GC的时候才会对Perm里的类做卸载,该系统因为大量的请求导致G1 GC发生很频繁,同时该系统还设置了-XX:SoftRefLRUPolicyMSPerMB=0,那意味着SoftReference的生命周期不会跨GC周期,能很快被回收掉,这个系统存在大量的RPC调用,走的Xfire协议,对返回结果做反序列化的时候是走的Method.invoke的逻辑,而相关的method因此被SoftReference引用,因此很容易被回收,一旦被回收,那就创建一个新的Method对象,再调用其invoke方法,在调用到一定次数(15次)之后,就构建一个新的字节码类,伴随着GC的进行,同一个方法的字节码类不断构建,直到将Perm充满触发一次Full GC才得以释放

How I built an app with 500,000 users in 5 days on a $100 server
MVP阶段也要考虑扩展性,而不是留待后期解决,不然遇到高速增长就尴尬啦,语言和框架的选择要谨慎,例如:大的框架像ORM框架就容易带来性能问题。

相关文章

网友评论

      本文标题:每周阅读(1/9/2017)

      本文链接:https://www.haomeiwen.com/subject/pgdrbttx.html