logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

雪花算法snowflake分布式id生成原理详解,以及对解决时钟回拨问题几种方案讨论

雪花算法的原理很简单,主要由时间戳+机器id+序列号生成64bit的ID,整体趋势递增,且全局唯一,性能也不错。每种组成标识的bit都可以自定义,灵活性很高。因为雪花算法强依赖机器时钟,就难以避免时钟回拨问题,解决的方式很多,无非从避免和缓解两个角度出发。

微信网页版登录爬虫小案例

微信登录爬虫小案例,使用的抓包工具是fiddlerimport requestsimport refrom PIL import Imageimport urllib3urllib3.disable_warnings()from bs4 importBeautifulSoupimportjson#1.获取uuid为扫码的链接寻找参数#2.获取二维码#3.扫...

#fiddler
ZooKeeper运维——数据备份与恢复(事务日志+快照日志,万字总结,你想要的都有)

事务日志是增量数据,快照日志是某个时刻全量数据,合二为一可以最大限度恢复数据。通过日志文件恢复数据,取最新的快照日志文件反序列化生成一个 DataTree,然后用事务日志对这棵 DataTree做数据修正。

文章图片
#zookeeper
【开源周荐】分布式配置管理神器Qihoo360/QConf入门指北(部署、配置、使用、架构原理)

QConf使用zk服务器存储所有的配置信息,配置名为zk的节点名,配置项的值为zk的节点值。利用zk的监听回调机制,注册感兴趣的事件监听,实现配置及时更新和同步。无锁化读写,共享缓存,消息队列、多语言SDK,神呀!

ZooKeeper运维——数据备份与恢复(事务日志+快照日志,万字总结,你想要的都有)

事务日志是增量数据,快照日志是某个时刻全量数据,合二为一可以最大限度恢复数据。通过日志文件恢复数据,取最新的快照日志文件反序列化生成一个 DataTree,然后用事务日志对这棵 DataTree做数据修正。

文章图片
#zookeeper
WebSocket通信原理和在Tomcat中实现源码详解(万字爆肝)

WebSocket的出现不是空穴来风,起初在HTTP/1.1基础上通过轮询和长连接达到信息实时同步的功能,但是这并没有跳出HTTP/1.1自身的缺陷。HTTP/1.1明显的两个缺陷:消息头冗长且为文本传输,请求响应模式。为此,WebSocket诞生了,跳出HTTP/1.1,建立一个新的真正全双工通信协议。

文章图片
#websocket
Tomcat的启动与关闭:详解启动类Bootstrap和Catalina,彻底搞懂catalina.home和catalina.base的区别和作用范围

Bootstrap作为一个启动引导类,通过加装org.apache.catalina.startup.Catalina,对Catalina发号施令,其目的是保证了Catalina和Bootstrap的隔离和实现细节不可见,其次二者可以单独打包,像组件一样进行组装和拆除。

Java双亲委派模型:为什么要双亲委派?如何打破它?破在哪里?

1. 双亲委派就是类加载器之间的层级关系,加载类的过程是一个递归调用的过程,首先一层一层向上委托父类加载器加载,直到到达最顶层启动类加载器,启动类加载器无法加载时,再一层一层向下委托给子类加载器加载。2. 双亲委派的目的主要是为了保证`java`官方的类库`\lib`和扩展类库`\lib\ext`的加载安全性,不会被开发者覆盖。...

文章图片
ZooKeeper运维——集群动态迁移与扩缩容(不停机+不丢失)

zk集群的动态迁移与扩缩容需要做到两个不:不停机!不丢失!

文章图片
#zookeeper#运维
redis分布式锁实现方案深入探讨(锁重试、锁续租、Redis Module、Redisson、RedLock)

codis 没有pub/sub功能,如果想使用监听+远程唤醒的功能,需要用redis cluster用zk和etcd实现的分布式锁,都可以使用watcher机制。但是redis cluster、zk、etcd v2 的发布订阅都会存在惊群效应,一个事件变更,如果有大量的客户端监听,需要一个个远程通知,对这些集群的负载影响很大。etcd v3,实现了类似java的AQS的clh,有多个监听会形成一个

文章图片
#redis#lua#etcd
到底了