Poseidon. Wh
码龄5年
关注
提问 私信
  • 博客:4,232
    4,232
    总访问量
  • 10
    原创
  • 395,907
    排名
  • 1
    粉丝
  • 0
    铁粉

个人简介:认认真真做事,踏踏实实做人!

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2020-04-19
博客简介:

weixin_47202589的博客

查看详细资料
个人成就
  • 获得2次点赞
  • 内容获得0次评论
  • 获得2次收藏
创作历程
  • 1篇
    2021年
  • 9篇
    2020年
成就勋章
TA的专栏
  • Spring
    1篇
  • 分布式
    6篇
  • 并发编程
    3篇
  • 内推
  • Redis
    1篇
  • Mysql
创作活动更多

超级创作者激励计划

万元现金补贴,高额收益分成,专属VIP内容创作者流量扶持,等你加入!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Logan分布式改造&OSS上传优化

Logan分布式改造&OSS上传优化背景logan是美团开源的一个日志回捞系统,日志文件在默认在本地存储,到上报用户增多时,单机性能到达瓶颈,需要升级架构,改造为分布式。问题日志文件的共享防止重复解析日志文件解决方案日志文件存储方式采用对象存储OSS解析日志文件增加redis分布式锁详情客户端上报的日志分为两种,1是手动回捞的日志,2是客户端奔溃上报日志。日志文件是加密的压缩文件,上传到服务端以后,需要进行解压解密,然后上传存储到oss。日志文件解密解压过程,是以‘\1’
原创
发布博客 2021.05.28 ·
411 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Sychronized图解锁的升级(二)

Sychronized图解锁的升级(二)Mark Work状态变化锁的升级在Java SE 1.6中,锁一共有4种状态,级别由低到高依次:无锁状态、偏向锁状态、轻量级锁、重量级锁。锁只能升级不能降级,目的是为了提高获得锁和释放锁的效率。偏向锁:始终是同一个线程访问同步块轻量级锁:没有资源竞争,多个线程交替访问同步块重量级锁:有资源竞争,多个线程同时访问同步块偏向锁的获得和撤销轻量级锁及膨胀流程图...
原创
发布博客 2020.11.22 ·
112 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Zookeeper分布式锁实现

分布式锁原理图Code 实现Lock.javapublic interface Lock { void getLock(); void unLock();}AbstractLock.javapublic abstract class AbstractLock implements Lock{ @Override public void getLock() { //竞争锁 if(tryLock()){
原创
发布博客 2020.09.10 ·
112 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Synchronized解析(一)

基本使用Synchronized关键字是jdk内置的解决并发问题的锁。jdk1.6以后进行了优化,增加了偏向锁、轻量锁、重量锁。用法:修饰普通方法修饰静态方法修饰代码块举例:修饰普通方法public class SychMethod { public synchronized void method1(){ System.out.println("sych method1 start"); try { System.out
原创
发布博客 2020.09.02 ·
152 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Zookeeper集群搭建(docker-compose)

初识ZookeeperZookeeper提供了一个高性能、高可用,且具备严格的顺序访问控制能力的分布式协调服务。简单的数据结构,树形结构,类型Linus文件系统。顺序访问,对于每一个读请求,zk会分配一个全局唯一的递增编号。高性能,数据存储于内存(笔者认为就是一个内存型树形数据结构数据库)。常见场景数据发布订阅负载均衡命名服务Master选举集群管理配置管理分布式队列分布式锁进入正题集群搭建环境搭建准备3台虚拟机,安装好docker-compose,拉取zookeeper
原创
发布博客 2020.08.03 ·
635 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Redis Lua脚本使用(分布式锁)

Lua脚本Lua由标准C编写而成,代码简洁优美,几乎在所有操作系统和平台上都可以编译,运行。一个完整的 Lua解释器不过200k,在目前所有脚本引擎中,Lua的速度是最快的。这一切都决定了Lua是作为嵌入式 脚本的最佳选择。Redis中使用Lua脚本的好处多个请求合并成一个发送,减少请求次数redis将一个lua脚本作为一个整体操作,提供了在redis中的原子操作客户端发送的脚本在redis中永久存在,这样其他客户端可以复用脚本速度快、可移植、源码小巧Lua脚本使用(spring-boot
原创
发布博客 2020.07.29 ·
399 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

Spring-bean总流程

原创
发布博客 2020.07.27 ·
125 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

2PC和3PC分布式事务

两阶段提交(2PC)优点:尽量保证了数据的强一致性,各大主流数据库本身支持(XA协议)缺点:单点问题:阶段一完成以后,事务管理器宕机,导致无法进行阶段二,资源管理器一直处于阻塞状态。同步阻塞:阶段一完成以后,所有的资源管理器都属于阻塞状态,直到事务提交或回滚才能释放资源。数据不一致:在第二阶段中,事务管理器发送commit指令,由于网络等原因,部分资源管理器没有收到指令,导致数据不一致。总结:2PC由于锁定资源时间长,对性能影响大,基本不适用分布式事务问题三阶段提交(3PC)
原创
发布博客 2020.07.22 ·
265 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

redis配置中心原理篇

redis配置中心原理篇实现思路所有的配置数据(xx.properties,xx.yml)都存储在环境变量Environment中,更改配置其实就是更改Environment中的属性值。在单例bean中的@Value注解配置的属性值如何实现动态更新?单例bean只创建了一次,其余取值都是从singleObjects缓存中拿取。如何解决这个问题?当然可以用多例,我们也可以自定义Scope。更新完Environment环境变量以后,刷新带有我们自定义Scope的BeanDefinition
原创
发布博客 2020.07.22 ·
872 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

基于redis分布式配置中心

基于redis分布式配置中心基于redis分布式配置中心常见的配置中心有spring-cloud、dubbo、zk、nacos等,都需要引入第三方中间件,如果项目比较小,只是为了实现配置中心而引入中间件,有点得不偿失,增加维护成本;redis在大多数引用中都有使用,基于这一背景产生了此项目。通过redis hash,PubSub实现动态更新@Vaule,Environment等配置属性值功能。项目介绍采用spring-boot-stater方式接入,实现了低耦合,便于开发管理。应用启动自动加载配
原创
发布博客 2020.07.22 ·
1150 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏