`
文章列表
目前大多数网站和app的接口都是采用http协议,但是http协议很容易就通过抓包工具监听到内容,甚至可以篡改内容,为了保证数据不被别人看到和修改,可以通过以下几个方面避免。 重要的数据,要加密,比如用户名密码,我 ...
缓存雪崩 缓存雪崩可能是因为数据未加载到缓存中,或者缓存同一时间大面积的失效,从而导致所有请求都去查数据库,导致数据库CPU和内存负载过高,甚至宕机。 解决思路: 1,采用加锁计数,或者使用合理的队列数量来避免缓存失效时对数据库造成太大的压力。这种办法虽然能缓解数据库的压力,但是同时又降低了系统的吞吐量。 2,分析用户行为,尽量让失效时间点均匀分布。避免缓存雪崩的出现。 3,如果是因为某台缓存服务器宕机,可以考虑做主备,比如:redis主备,但是双缓存涉及到更新事务的问题,update可能读到脏数据,需要好好解决。   缓存穿透 缓存穿透是指用户查询数据,在数据库没有,自然在缓 ...
百度云分享地址:http://pan.baidu.com/s/1slmzBv3    有兴趣的朋友可以加入我的互联网架构群:477819525 内有大量java初级,进阶,高级,架构视频和书籍资料,大家一起交流学习。         

JVM调优总结

    博客分类:
  • java
堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。典型设置: java -Xmx3550m -Xms3550m -Xmn2g -Xss128k-Xmx3550m:设置JVM最大可用内存为3550M。-Xms3550m:设置JVM初始内存为3550m。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重 ...
      百度云分享: http://pan.baidu.com/s/1kVa08Zl   有兴趣的朋友可以加入我的互联网架构群:477819525   内有大量java初级,进阶,高级,架构视频和书籍资料,大家一起交流学习。                    
百度云分享地址:http://pan.baidu.com/s/1geS1fqF 有兴趣的朋友可以加入我的互联网架构群:477819525   内有大量java初级,进阶,高级,架构视频和书籍资料,大家一起交流学习。          
当你学了很多技术,才发现一切回到起点才是正确的选择,也是唯一正确的选择。工作5年多了,又开始重新看起了基础。才发现以前不懂的地方太多,需要沉下心来好好理解。   根据昨天的学习,从浅入深来理解一下hashMap   1 hashMap使用  常用的两种方式获取hashMap里面的数据  1) 首先获取map的keyset集合,然后遍历keyset集合,获取key对应map里面的value。 简单代码参考: HashMap<String,String> map=new HashMap<String,String>(); Set<String> ...
1 分布式服务框架dubbo管控台详解。 2 dubbo配置参考文档。 详情参考附件列表       有兴趣的朋友可以加入我的互联网架构群:477819525
总结一下我在求职中经常被问到的问题   基础篇 1 java基础 a) 在java基础被问概率最高的应该就是集合了    1) hashmap的底层实现原理    2) arraylist和linkedlist的区别 b)类之间的关系有哪几种   c)  熟悉š
Java软件工程师就业思维图(2016年版) 想要成为合格的Java程序员或工程师到底需要具备哪些专业技能,在面试之前到底需要准备哪些东西呢?面试时面试官想了解你的什么专业技能,以下都是一个合格JAVA软件工程师所要具备的。 <!--[if !supportLineBreakNewLine]--><!--[endif]--> 一、专业技能 1、熟练的使用Java语言进行面向对象程序设计,有良好的编程习惯,熟悉常用的Java API,包括集合框架、多线程(并发编程)、I/O(NIO
1 什么是线程安全 线程安全:当多个线程访问同一个类(对象或方法)时,如果这个对象始终能表现出正确的行为,那么认为这个类(对象或方法)是线程安全的。   2 synchronized 关键字解释 synchronized:可以在任意对象及方法上加锁,而加锁的这段代码称为 “临界区”或“互斥区”。 synchronized取得的锁都是对象锁,而不是把一段代码当锁。所以代码中哪个线程先执行synchronized的方法,哪个线程就持有该方法所属对象的锁。   在静态方法上加synchronized关键字,表示锁.class类,类一级别的锁。   3 对象锁的同步和异步 有两个线 ...
主内存与工作内存   Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样底层细节。此处的变量与Java编程时所说的变量不一样,指包括了实例字段、静态字段和构成数组对象的元素,但是不包括局部变量与方法参数,后者是线程私有的,不会被共享。   Java内存模型中规定了所有的变量都存储在主内存中,每条线程还有自己的工作内存(可以与前面将的处理器的高速缓存类比),线程的工作内存中保存了该线程使用到的变量到主内存副本拷贝,线程对变量的所有操作(读取、赋值)都必须在工作内存中进行,而不能直接读写主内存中的变量。不同线程之间无法直接访问对方工作内 ...
如今的项目是越分越细,要求分布式开发。一个大型项目可能会包含7,8个子系统。如果这么多个系统只有一个域名要怎么进行开发呢     只需要在本地启动nginx即可   在本地nginx 配置各个系统,三步轻松搞定:   1 公共的基础服务系统,配到服务器地址   2 本地需要开发的项目,配到本地地址   3 在host文件 映射相应域名即可      
多个应用部署,所有配置在nginx里完成,域名解析到nginx,通过nginx进行转发.只需要外网可以通过nginx服务器访问域名,其他部署应用只需要内网ip即可。   相关配置参考附件     多个应用,配置一个域名,部署访问没有问题,那么如何进行开发:   只需要在本地配置一个nginx,host文件映射域名到本地,开发应用通过nginx配置本地,其他基础应用在nginx映射到远端服务器即可
  为了保证索引的有效性,最好在大数量下测试 1 如果mysql使用全表扫描要比使用索引快,则不使用索引 (所以如果实际测试中发现索引没生效,很可能是全表扫描和使用索引的效率差别不大)   2 如果查询条件 字段类型是字符串,则要加上引号,否则索引会失效 select * from table_emp  where id !=1   应改为id!='1   3 如果在查询条件(建了索引)中用了or,则索引不生效(这就是尽量少用or的原因),如果使用了or,还想索引生效,则需要将or条件中的每个列都加上索引 select * from table_emp  where id != ...
Global site tag (gtag.js) - Google Analytics