![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
大型网站架构分析
文章平均质量分 61
水田如雅
不生产代码,只是代码的搬运工
展开
-
缓存数据库双写不一致问题处理
我们的数据库操作中,一般会封装同步修改缓存的写法,但是这是一个两步操作,有可能带来缓存数据库数据不一致的问题。使用redisson提供的分布式锁解决参考:基于redis的分布式锁在我们之前加锁的逻辑中,对于读写的一段逻辑进行加锁,但是在高并发的场景中,有可能出现同一时刻,锁竞争过多,有可能有的线程会经历过长时间的等待。解决加锁的这种问题,回顾下我们的java提供的一些线程安全的类,可以为我们提供如下解决思路:数据分段将数据通过不同的一个组值,分成多段进行加锁,减少竞争发生时候,等待的线程数.原创 2021-12-05 14:27:21 · 1365 阅读 · 0 评论 -
基于redis的分布式锁
java使用redisson的客户端 String lockKey = StringUtils.join(new String[]{qid, SafeConverter.toString(resultGroupId)}, ":"); RLock lock = client.getNativeClient().getLock(lockKey); try { lock.lock(); //这里写具体原创 2021-12-05 11:41:23 · 1017 阅读 · 0 评论 -
脚本操作zk
使用[root@localhost bin]# ./zkCli.sh连接本地zk创建create [-s] [-e] path data acl其中,-s是创建顺序或临时结点。默认情况下,不添加代表的是创建持久节点。 例如:create /zk-book 123读取ls 用法:ls path [watch]其中,path表示的是指定数据节点的节点路径。改名了只能看到指定节点下第一级的所有原创 2017-07-25 20:27:01 · 1054 阅读 · 2 评论 -
ZK单机最简配置
修改zk home/conf下的zoo_sample.cfg,重新命名为zoo.cfg。修改配置为:dataDir=/root/data/zookeeper-dataclientPort=2181initLimit=5syncLimit=2server.1=192.168.99.215:2888:3888进入bin目录,执行:./zkServer.sh start原创 2017-07-24 22:42:03 · 607 阅读 · 1 评论 -
Why ZK
ZooKeeper是一个开放源代码的分布式协调服务,由知名互联网公司雅虎创建,是Google Chubby的开源实现。ZooKeeper的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。ZooKeeper是什么ZooKeeper是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸如数据发布/订阅,负载均衡转载 2017-07-23 21:32:43 · 518 阅读 · 1 评论 -
3PC
3PC,是Three-Phase Commit的缩写,即三阶段提交,是2PC的改进版,其二阶段提交协议的“提交事务请求”过程一分为二,形成了由CanCommit,PreCommit,do Commit三个阶段组成的事务处理协议。阶段一:CanCommit1.事务询问:协调者向所有的参与者发送一个包含事务内容的canCommit请求,询问是否可以执行事务提交操作,并开始等待各个参与者的响应。2.转载 2017-07-23 19:44:57 · 897 阅读 · 1 评论 -
2PC
两阶段提交()Two-Phase Commit):是计算机网络尤其是在数据库领域内,为了使基于分布式系统架构下的所有节点在进行事务处理过程中能够保持原子性和一致性而设计的一种算法。通常,二阶段提交协议也被认为是一种一致性协议,用来保证分布式系统数据的一致性。目前,绝大部分的关系型数据库都是采用二阶段提交协议来完成分布式事务处理的,利用该协议能够非常方便地完成所有分布式事务参与者的协调,统一决定事务的转载 2017-07-23 17:39:59 · 745 阅读 · 1 评论 -
并发场景设计测试
场景设计数据库里面导入10w篇文章,然后对文章进行内容分词,采用多线程方式,线程池方式; 达到要求: - 1,性能最大化; - 2,资源收集 批量更新;原创 2017-03-30 23:27:05 · 1668 阅读 · 1 评论 -
微服务架构(Microservice Architect Pattern)综述——什么是微服务架构(读书笔记)
简单定义: 微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间相互协调,相互配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制相互沟通(通常是基于HTTP的RESTFul API),每个服务都围绕着具体的业务进行构建,并且能够被独立的部署到生产环境,类生成环境等。另外,应尽量避免统一的,集中式的服务管理机制,对具体的一个服务而言原创 2016-11-01 22:05:47 · 1593 阅读 · 1 评论 -
单块架构应用及其面临的挑战(读书笔记)
三层架构的出现,解决了系统间调用复杂,职责不清的问题,有效的降低了层与层之间的依赖关系,这是传统三层的优势。 但是虽然三层架构将系统在逻辑上分成了三层,但它并不是物理上的分层。也就是说,对于不同层的代码而言,经理编译,打包,部署之后,所有的代码最终还是运行在同一个进程中。 对于这种功能集中,代码中心化,一个发布包,部署后运行在同一进程中的应用程序,我们称之为单块架构应用。 随着业务原创 2016-10-31 21:29:25 · 784 阅读 · 0 评论