答:这个呢首先是了解哪些需要优化,需要优化肯定是项目性能遭遇瓶颈或者猜测即将遭遇了,我们才会去考虑优化。那么怎么优化?
a、扩容 ,扩容的理解,就是扩充服务器并行处理的能力,简单来说就是加服务器,增加处理请求的能力,例如增加nginx 、tomcat等应用服务器的个数,或者物理服务器的个数,还有加大服务器带宽等等,这里考虑的是硬件方面
b、调优 ,调优,包括系统调优和代码调优 。 系统调优就是说加快处理速度,比如我们所提到的CDN、ehcache、redis等缓存技术,消息队列等等,加快服务间的响应速度,增加系统吞吐量,避免并发,至于代码调优,这些就需要多积累了,比如重构、工厂等, 数据库调优的话这个我不是很懂,只知道索引和存储过程,具体参考:Mysql数据库调优21个最佳实践 ,其他数据库调优方面就各位自己找找吧
答:个人理解:分布式就是把一个系统/业务 拆分成多个子系统/子业务 去协同处理,这个过程就叫分布式
答:①、浏览器端
压缩源码和图片;2、选择合适的图片格式;3、合并静态资源;4、开启服务器端的Gzip压缩;5、使用CDN;6、延长静态资源缓存时间;7、把CSS放在页面头部,把JavaScript放在页面底部
②、服务器端优化
答:5种第一种懒汉,比较懒,在类加载时,不创建实例,因此类加载速度快,但运行时获取对象的速度慢
;第二种饿汉,在类加载时就完成了初始化,所以类加载较慢,但获取对象的速度快;第三种(静态内部类);第四种(枚举);第五种(双重校验锁),这个是第二种方式的升级版
一般的情况下,我会使用第三种方式,这种方式基于classloder机制避免了多线程的同步问题
答:多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。
------------------------------------------------------------------------------
上一篇:JAVA高级工程师面试宝典——负载均衡、集群相关(四)
------------------------------------------------------------------------------