摘要: Tomcat调优原理: 1、增加最大连接数(增大值避免队列请求过多,导致响应缓慢) 2、调整工作模式 Bio(BlockingI/O):默认工作模式,阻塞式I/O操作,没有任何优化技术处理,性能比较低。Nio(New I/O orNon-Blocking):非阻塞式I/O操作,有Bio有更好的并发处 阅读全文
posted @ 2019-07-23 20:22 facker1 阅读(149) 评论(0) 推荐(0) 编辑
摘要: gb 宏观 精通多门开源技术。 从头到尾跟过几个大项目,头是指需求阶段,包括需求调研。 尾是指上线交付之后,包括维护阶段。 分布式系统的架构和开发经验。对于跨系统的结构优化,数据存储的性能指标等有丰富经验。什么缓存啊、数据库的垂直切分什么的,业务的抽象和水平拆分。 精通一到两门业务吧,所谓精通,就是 阅读全文
posted @ 2019-05-13 11:09 facker1 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 应用占用CPU很高,除了确实是计算密集型应用之外,通常原因都是出现了死循环。 1.根据top命令查看cpu高的那个线程的pid 2.用ps -mp pid -o THREAD,tid,time显示线程列表 3.printf "%x\n" tid 线程ID转换为16进制格式 4.jstack pid 阅读全文
posted @ 2019-04-22 16:42 facker1 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 表中的数据越多,索引树的范围越大,磁盘读取也越多,性能也就越低 从实践角度来看,一般以百万到千万作为一个表的存储量级,超出该范围之后,性能就会下降,需要采用其他技术手段解决。 首先想到的就是能否将读和写分离,主数据库用于写入,读数据库(多个)用于对外提供查询,通过数据复制的方式将主数据库的数据同步到 阅读全文
posted @ 2019-04-22 14:42 facker1 阅读(801) 评论(0) 推荐(0) 编辑
摘要: Nginx upstream的5种权重分配方式分享 Nginx负载均衡的分发方式有4种: 1.轮询,默认采取此方式,Nginx会按照请求时间的先后顺序进行轮询分发,若某台Web Server宕机,Nginx自动将其摘掉。 2.weight,权重,即轮询的几率,值越大,被分发的可能性越大,用于后端服务 阅读全文
posted @ 2019-04-17 19:42 facker1 阅读(615) 评论(0) 推荐(0) 编辑
摘要: synchronized 关键字 可用来给对象和方法或者代码块加锁,当它锁定一个方法或者一个代码块的时候,同一时刻最多只有一个线程执行这段代码。可能锁对象包括: this, 临界资源对象,Class 类对象 同步方法 同步方法锁定的是当前对象。当多线程通过同一个对象引用多次调用当前同步方法时, 需同 阅读全文
posted @ 2019-04-09 10:56 facker1 阅读(153) 评论(0) 推荐(0) 编辑
只有注册用户登录后才能阅读该文。 阅读全文
posted @ 2019-03-29 17:25 facker1 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 虽然springcloud全家桶里面包含了很多优秀的技术,包括负载均衡,路由选举,断路器,熔断机制,零配置,分布式锁,链路追踪等,但是在实现的过程中它的运维成本却大大增加。 一个RESTful服务,用来定位运行在AWS地区(Region)中的中间层服务。由两个组件组成:Eureka服务器和Eurek 阅读全文
posted @ 2019-03-29 10:13 facker1 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 布隆过滤器是一种数据结构,比较巧妙的概率型数据结构,特点是高效地插入和查询。它是一个 bit 向量或者说 bit 数组。 核心思想: BloomFilter的准确性尽管BloomFilter已经尽可能的减小hash碰撞的概率了,但是,并不能彻底消除,因此正如上面提到的:如果对应的bit位值都为1,那 阅读全文
posted @ 2019-03-29 10:01 facker1 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 在多台服务器需要对某一个共享资源进行多线程同步访问的时候,就需要分布式锁 分布式锁具备的条件: 1、在分布式系统环境下,一个方法在同一时间只能被一个机器的一个线程执行; 2、高可用的获取锁与释放锁; 3、高性能的获取锁与释放锁; 4、具备可重入特性; 5、具备锁失效机制,防止死锁; 6、具备非阻塞锁 阅读全文
posted @ 2019-03-29 09:49 facker1 阅读(572) 评论(0) 推荐(0) 编辑