
server相关
seapeak007
这个作者很懒,什么都没留下…
展开
-
TCP: time wait bucket table overflow解决方法
收到一台web服务器告警消息,查看/var/log/message日志信息如下所示:该台服务器每日有3kw的pv,压力有些大。 服务器的TCP连接数,超出了内核定义最大数。修改内容参数 /proc/sys/net/ipv4/tcp_max_tw_buckets1# echo 20000 > /proc/sys/net/ipv4/tcp_max_tw_bucket转载 2017-04-05 09:58:01 · 1655 阅读 · 0 评论 -
[Google Guava] 3-缓存介绍(转)
private static LoadingCache userProfileCache = null; public UserInfo getUserProfile(String uid) throws APIException { if (userProfileCache==null){ userProfileCache //CacheBuilder的构造函数是转载 2017-05-06 13:39:56 · 698 阅读 · 0 评论 -
HttpClient请求外部服务器NoHttpResponseException
针对跟外部对接,使用httpclient进行请求可能会报NoHttpResponseException,原因有可能是当时target服务器负载过大,或者服务端连接空闲自动挂起,或者客户端的http请求机制跟服务端不一致(这次就是这个原因,客户端使用socket的空闲连接,服务器端是短连接)。刚开始发现NoHttpResponseException,网上也查了一些资料,设置HttpClients...原创 2019-04-25 20:00:14 · 4023 阅读 · 0 评论 -
线程之间数据传递ThreadLocal,InheritableThreadLocal,TransmittableThreadLocal
项目中异步处理方法获取用户对象,发现获取不到,发现用户对象是ThreadLocal进行传递,但是异步属于子线程,ThreadLocal对父子线程传递有问题的,后来将对象的传递值改为了TransmittableThreadLocal进行传递。public static TransmittableThreadLocal<Map<String, Object>> trans...原创 2019-06-20 20:45:06 · 2077 阅读 · 0 评论 -
分布式锁的实现
主要是基于redis(利用setnx方法、或者lua脚本)信号变量来控制锁或者MySQL数据库的乐观锁进行处理。一、基于redis的方式的分布式锁setnx(set if not exists)是当不存在时进行设置,如果值已经存在则不进行设置。根据这个特性,如果对要锁定的对象加上key,便可以实现分布式锁。思路是:通过拦截的方式(系统设计),在拦截器中try catch,final...原创 2019-07-30 20:21:15 · 215 阅读 · 0 评论 -
服务器运维整理(笔记)
1、Nignx双机主备(keepalive实现)nginx进程需要与keepalive同生同死,才能保证主备(keepalive是监控的keepalive),脚本保证两个进程同生死。https://blog.youkuaiyun.com/lbr2008/article/details/788117592、redis主从复制+哨兵(sentinel)实现高可用缓存框架3台redis(主从复制)+...原创 2019-08-07 19:50:40 · 629 阅读 · 0 评论