`

备注标签博文篇

阅读更多

备注标签博文篇,记录随手比较重要一点的事情,URL备注,重要的信息备注,评论页.

自己看的,本篇博文谢绝评论,谢谢合作!

 

HTTP2, SPDY 是什么?如何部署 SPDY?

http://www.geekpark.net/news/158198

 

HTTP/2 及 HTTP/3特性

https://github.com/ljianshu/Blog/issues/57

 

Keep-Alive

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Keep-Alive

 

HTTP Keep-Alive是什么?如何工作?

http://www.nowamagic.net/academy/detail/23350305

 

TCP/IP TIME_WAIT状态原理

https://elf8848.iteye.com/blog/1739571

 

HTTP/1.x 的连接管理

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Connection_management_in_HTTP_1.x#%E5%9F%9F%E5%90%8D%E5%88%86%E7%89%87

 

关于HTTP/1.1管道化的问答(翻译)

https://jiaolonghuang.github.io/2015/08/16/http-pipelining/

 

CSS Sprite (雪碧图)

https://www.jianshu.com/p/2cac8fbe341b

 

What is "inlining" in HTTP?

https://www.quora.com/What-is-inlining-in-HTTP

 

SPDY 是什么?如何部署 SPDY?

http://www.geekpark.net/news/158198

 

spdy-whitepaper

http://dev.chromium.org/spdy/spdy-whitepaper

 

TCP-IP详解:超时重传机制

https://blog.csdn.net/wdscq1234/article/details/52476231

 

TCP 的那些事儿

https://coolshell.cn/articles/11564.html

 

TCP 的那些事儿

https://coolshell.cn/articles/11609.html

 

Google QUIC 协议:从 TCP 到 UDP 的 Web 平台

https://infoq.cn/article/quic-google-protocol-web-platform-from-tcp-to-udp

 

领域驱动设计学习之路—DDD的原则与实践

https://www.cnblogs.com/edisonchou/p/edc_ddd_foundation_study_part1.html

 

Docker技术笔记:Ubuntu安装Docker CE

https://yq.aliyun.com/articles/632359

 

反爬虫: Redis通过LUA脚本, 记录IP在一段时间内频繁访问页面检测

https://www.cnblogs.com/yanghuahui/p/3697996.html

分享到:
评论
61 楼 greatwqs 2019-04-15  
HTTP/1.x & HTTP/2 及 HTTP/3

HTTP/1.x的缺陷
1. HTTP/1.0传输数据时,每次都需要重新建立连接, 服务器开销大
2. HTTP/1.1虽然加入keep-alive可以复用一部分连接,但域名分片等情况下仍然需要建立多个connection
HTTP/1.x的问题,引入雪碧图、将小图内联、使用多个域名等等的方式来提高性能。不过这些优化都绕开了协议,人为优化。HOLB(队头阻塞)问题

SPDY & HTTP/2
目标是在用户和网站间只用一个连接(TCP connection)。
1.二进制传输
流 & 消息 & 帧
2.多路复用, 一个connection 多流并行 帧乱序 帧首部流标识重新组装 31bit的优先值
3. Header 压缩, 改变传输
4. ServerPush
缺陷
TCP丢包问题, 在出现丢包的情况下,整个 TCP 都要开始等待重传

HTTP/3
UDP协议 & QUIC协议

https://github.com/ljianshu/Blog/issues/57
60 楼 greatwqs 2019-04-04  
深入浅出RxJava(一:基础篇)
https://blog.csdn.net/lzyzsd/article/details/41833541

深入浅出RxJava(二:操作符)
https://blog.csdn.net/lzyzsd/article/details/44094895

深入浅出RxJava三--响应式的好处
https://blog.csdn.net/lzyzsd/article/details/44891933

深入浅出RxJava四-在Android中使用响应式编程
https://blog.csdn.net/lzyzsd/article/details/45033611
58 楼 greatwqs 2019-03-08  
GSLB概要和实现原理
https://chongit.github.io/2015/04/15/GSLB%E6%A6%82%E8%A6%81%E5%92%8C%E5%AE%9E%E7%8E%B0%E5%8E%9F%E7%90%86/
57 楼 greatwqs 2018-08-31  
四种Reference
WeakReference, 当所引用的对象在 JVM 内不再有强引用时, GC 后 weak reference 将会被自动回收
WeakHashMap 使用 WeakReference 作为 key, 一旦没有指向 key 的强引用, WeakHashMap 在 GC 后将自动删除相关的 entry
SoftReference 会尽可能长的保留引用直到 JVM 内存不足时才会被回收(虚拟机保证), 这一特性使得 SoftReference 非常适合缓存应用
PhantomReference 时的第二个参数 ReferenceQueue(事实上 WeakReference & SoftReference 也可以有这个参数),唯一的用处就是跟踪 referent  何时被 enqueue 到 ReferenceQueue 中.

http://www.iteye.com/topic/401478
56 楼 greatwqs 2018-08-31  
ThreadLocal 原理
1. 每个Thread实例内部,有二个ThreadLocalMap的K-V容器实例(分别对应threadLocals及inheritableThreadLocals), 容器的元素数量,即为Thread实例里的ThreadLocal实例个数
2. ThreadLocalMap里的每个Entry的Key与ThreadLocal实例的HashCode相关(这样,多个ThreadLocal实例就不会搞混)
3. 每个ThreadLocal实例使用set赋值时,实际上是在ThreadLocalMap容器里,添加(或更新)一条Entry信息
4. 每个ThreadLocal实例使用get取值时,从ThreadLocalMap里根据key取出value
https://www.cnblogs.com/yjmyzz/p/threadlocal-demo.html

ThreadLocal.ThreadLocalMap 中 Entry 对应的Key是WeakReference<ThreadLocal<?>>
的一些问题, 内存泄露问题
https://juejin.im/entry/5af3028e6fb9a07ac85a6a24
http://blog.xiaohansong.com/2016/08/06/ThreadLocal-memory-leak/
http://redhat.iteye.com/blog/1057974
55 楼 greatwqs 2018-08-22  
ThreadPoolExecutor 工作线程回收需要满足三个条件:
1)  参数allowCoreThreadTimeOut为true
2)  该线程在keepAliveTime时间内获取不到任务,即空闲这么长时间
3)  当前线程池大小 > 核心线程池大小corePoolSize。

ThreadPoolExecutor 线程回收策略:
1. executor.allowCoreThreadTimeOut(true);
2. executor.shutdown();

https://www.cnblogs.com/pengineer/p/5011965.html
54 楼 greatwqs 2018-08-14  
Redis Cluster集群 动态扩容
已经是三主三从, 添加为7006主, 7007从

1. 配置 新增的2台Redis服务器, 并启动;
redis-server ../redis-cluster/7006/redis.conf

2. 将7006主节点加入到Cluster集群
ruby redis-trib.rb add-node 192.168.127.130:7006 192.168.127.130:7000
查看
cluster nodes

3. 为7006Master主节点分配数据Slots
ruby redis-trib.rb reshard 192.168.127.130:7000
为了平均Slot, 可以移动 16384 / 4 个Slot, 所有节点一起来移动;

4. 查看 & 动态增加Slave从服务器节点
cluster nodes
ruby redis-trib.rb add-node 192.168.127.130:7007 192.168.127.130:7000
[root@linux redis]# redis-cli -c -h 192.168.127.130 -p 7007  //登陆7007
192.168.127.130::7007>cluster replicate 71ecd970838e9b400a2a6a15cd30a94ab96203bf(主节点的ID,这里是7006)
OK

删除文中包含.
https://www.cnblogs.com/PatrickLiu/p/8473135.html
53 楼 greatwqs 2018-05-15  
常用限流方案的设计和实现:

通过限制单位时间段内调用量来限流
通过限制系统的并发调用程度来限流
使用漏桶(Leaky Bucket)算法来进行限流
使用令牌桶(Token Bucket)算法来进行限流
https://blog.csdn.net/manzhizhen/article/details/52606732
52 楼 greatwqs 2018-05-01  
redis 分布式锁
public class RedisTool {

    private static final String LOCK_SUCCESS = "OK";
    private static final String SET_IF_NOT_EXIST = "NX";
    private static final String SET_WITH_EXPIRE_TIME = "PX";

    /**
     * 尝试获取分布式锁
     * @param jedis Redis客户端
     * @param lockKey 锁
     * @param requestId 请求标识
     * @param expireTime 超期时间
     * @return 是否获取成功
     */
    public static boolean tryGetDistributedLock(Jedis jedis, String lockKey, String requestId, int expireTime) {

        String result = jedis.set(lockKey, requestId, SET_IF_NOT_EXIST, SET_WITH_EXPIRE_TIME, expireTime);

        if (LOCK_SUCCESS.equals(result)) {
            return true;
        }
        return false;

    }

    private static final Long RELEASE_SUCCESS = 1L;

    /**
     * 释放分布式锁
     * @param jedis Redis客户端
     * @param lockKey 锁
     * @param requestId 请求标识
     * @return 是否释放成功
     */
    public static boolean releaseDistributedLock(Jedis jedis, String lockKey, String requestId) {

        String script = "if redis.call('get', KEYS[1]) == ARGV[1] then return redis.call('del', KEYS[1]) else return 0 end";
        Object result = jedis.eval(script, Collections.singletonList(lockKey), Collections.singletonList(requestId));

        if (RELEASE_SUCCESS.equals(result)) {
            return true;
        }
        return false;

    }
}


https://www.cnblogs.com/linjiqin/p/8003838.html
http://redisdoc.com/string/set.html
51 楼 greatwqs 2018-04-12  
查看端口号占用的进程ID

1、lsof -i:端口号
lsof -i 用以显示符合条件的进程情况
2、netstat -tunlp|grep 端口号
netstat -tunlp用于显示tcp,udp的端口和进程等相关情况
49 楼 greatwqs 2017-09-20  


脏读(Drity Read)
某个事务已更新一份数据,另一个事务在此时读取了同一份数据,由于某些原因,前一个RollBack了操作,则后一个事务所读取的数据就会是不正确的。
不可重复读(Non-repeatable read):
一个事务的两次查询之中数据不一致,这可能是两次查询过程中间插入了一个事务更新的原有的数据。
幻读(Phantom Read):
一个事务的两次查询中数据笔数不一致,例如有一个事务查询了几列(Row)数据,而另一个事务却在此时插入了新的几列数据,先前的事务在接下来的查询中,就会发现有几列数据是它先前所没有的。

MySQL事务隔离级别为Repeatable Read(可重读)http://xm-king.iteye.com/blog/770721
48 楼 greatwqs 2017-08-30  
NGINX域名访问转移,所有访问www.bbb.com的页面全部跳转到h5.aaa.com页面
# h5.aaa.com | www.bbb.com
server {
    listen       80;
    server_name  h5.aaa.com www.bbb.com ;
    #www.bbb.com redirect to h5.aaa.com(destination) on 20170830
    #access_log  logs/h5/host.access.log  main;
    if ($host = "www.bbb.com"){
        rewrite ^/(.*)$ http://h5.aaa.com/$1 permanent;
    }
    location / {
        root /home/nginx/wwwroot/h5_aaa_com;
        index index.html;
    }
}
47 楼 greatwqs 2017-02-13  
linux 查看磁盘分区类型:
parted /dev/sda
再输入print list

http://freearth.blog.chinaunix.net/uid-20769015-id-3478861.html
46 楼 greatwqs 2016-10-19  
select id,user,host,db,command,time,state,info 
from   information_schema.PROCESSLIST 
order  by time desc 
limit  1000


查看MySQL的进程, 耗时较长, kill processid( id )
45 楼 greatwqs 2016-09-30  
tomcat 启动很慢: http://wiki.apache.org/tomcat/HowTo/FasterStartUp

针对SecureRandom变慢, tomcat会输出耗时log如下:
org.apache.catalina.util.SessionIdGenerator createSecureRandom
INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [350, 172] milliseconds.

bin/catalina.sh 第一行加上
export CATALINA_OPTS="-Djava.security.egd=file:/dev/./urandom"

ps -ef | grep java
如果成功, 可以在参数中看到 -Djava.security.egd=file:/dev/./urandom
44 楼 greatwqs 2016-09-23  
linux挂载磁盘:

fdisk -l   #列出磁盘
mkfs.ext3 /dev/xvdb   #磁盘ext3格式化, 注意数据保存!
mkdir /data   #创建磁盘挂载目录
mount /dev/xvdb /data #挂载
# 写入磁盘配置,重启系统时自动挂载磁盘
echo '/dev/xvdb   /data   ext3   defaults   0   0' >> /etc/fstab 
chmod 777 /data
df -h     #查看磁盘使用情况
https://bbs.aliyun.com/read/151152.html?spm=5176.bbsr164395.0.0.WugvTF
43 楼 greatwqs 2016-07-02  
一个JAVA对象占用了多少内存?
http://wwwiteye.iteye.com/blog/1985980
42 楼 greatwqs 2014-10-06  
杨卫华:新浪微博技术架构分析

http://tech.sina.com.cn/i/2010-11-16/14434871585.shtml

相关推荐

Global site tag (gtag.js) - Google Analytics