
分布式
文章平均质量分 70
qq_23204557
这个作者很懒,什么都没留下…
展开
-
Orderly Network面试(部分)
在表中设计一个版本字段 version,第一次读的时候,会获取 version 字段的取值。然后对数据进行更新或删除操作时,会执行UPDATE …SET version=version+1 WHERE version=version。线程池里批量运行的任务想停掉,应该怎么做?一个情景题,同一个充值单,两个任务并发对它进行充值,如何防止重复充值?shutdownNow():关闭线程池,不再接受新的任务,并尝试停止正在执行的任务。shutdown():关闭线程池,不再接受新的任务,但会执行完已经提交的任务。原创 2023-06-19 22:25:11 · 563 阅读 · 0 评论 -
长鑫存储面试(部分)
分布式事务Seata XA, AT, TCC, Saga原创 2023-06-13 11:55:22 · 4849 阅读 · 1 评论 -
UUID vs 雪花算法snowflake
UUID组成:简单来说,时间戳+MAC?重复机率/唯一范围:缺点:无顺序雪花算法组成:重复机率/唯一范围:缺点:参考:分布式id生成(UUID、雪花算法snowflake)原创 2021-07-23 13:41:43 · 928 阅读 · 0 评论 -
无端科技面试(部分)
项目的服务之间通过什么协议交互的?1用Eureka有遇到过什么问题吗?往Eureka中注册一台机器,服务消费方会马上发现这台机器吗?为什么?2Hystrix熔断、限流的原理。什么时候用线程池,什么时候用Semaphore?3 大致思想:用线程池粒度大,每次都开启一个单独线程运行,开销更大。而信号量的调用是同步的,也就是说,每次调用都得阻塞调用方的线程,直到结果返回。Netty用的是tcp方式还是http方式?协议是自己定的吗?是怎么定的,包含哪些信息?这个协议有加密方案,或者校验机制吗?Netty处理.原创 2021-05-12 23:17:35 · 629 阅读 · 0 评论 -
平安租赁面试(部分)
阿里我也能连三面,没想到今天被平安的面试官折磨得够呛,各种穷追不舍打破砂锅问到底。然后还说后面不再接受远程面了。真是。。郁闷。什么时候应该把系统拆分为微服务?按代码量?按团队规模?什么情况下会熔断?答案:1,2,34. Is the Circuit Open?When you execute the command, Hystrix checks with the circuit-breaker to see if the circuit is open.If the circuit原创 2021-04-23 18:02:03 · 1298 阅读 · 0 评论 -
Zookeeper的Leader选举
paxos zab原创 2021-03-27 12:02:28 · 347 阅读 · 0 评论 -
如何执行定时任务,以及分布式任务调度
单机:quartz,或spring task,或使用@Scheduled注解。如使用@Scheduled fixedDelay与线程池,可循环执行任务1,2分布式任务调度系统:elastic-job3,xxl-job等elastic-job:基于quartz,由zookeeper进行一致性协调,选举leader。由leader进行任务分片,分片逻辑包括取模等。关于@Scheduled中fixedDelay、fixedRate理解 ↩︎Spring之定时任务实践 ↩︎Elastic-Jo原创 2021-03-25 07:34:33 · 309 阅读 · 0 评论 -
《专题五 容器化微服务》之《第一章 微服务架构 dubbo服务化VS微服务》
文章目录《0.1.1 云课堂微服务背景介绍》《1.1.1 微服务的概念与优势介绍》《1.2.1 微服务与服务化的比较》《1.3.1 云课堂的一个微服务架构案例》《0.1.1 云课堂微服务背景介绍》架构能力:6 54 后端架构演变:14分 微服务拆分:17 50 微服务完善:系统架构:《1.1.1 微服务的概念与优势介绍》微服务架构的不足:《1.2.1 微服务与服务化的比较》为什么需要服务化(SOA):9分 服务化vs微服务:《1.3.1 云课堂的一个微原创 2021-02-08 05:53:00 · 147 阅读 · 0 评论 -
《专题四 服务化改造》之《第四章 【拓展进阶】分布式》之《第八节 分布式链路追踪》
文章目录《4.8.1 分布式链路追踪-01》《4.8.2 分布式链路追踪-02》Zipkin《4.8.3 分布式链路追踪-03》SkyWalking《4.8.1 分布式链路追踪-01》6 55 在单个应用中查看日志的办法:tail -f log 或者 spring boot admin13 15 多种调用链产品:21分 基本原理和接入方式:末尾 简单来说,Zipkin最简单,SkyWalking最强大《4.8.2 分布式链路追踪-02》Zipkin《4.8.3 分布式链原创 2021-02-08 03:39:31 · 197 阅读 · 0 评论 -
《专题四 服务化改造》之《第四章 【拓展进阶】分布式》之《第七节 分布式配置中心》
文章目录《4.7.1 分布式配置中心-01》《4.7.2 分布式配置中心-02》《4.7.3 分布式配置中心-03》apollo《4.7.4 分布式配置中心-04》《4.7.1 分布式配置中心-01》单体系统的配置:19分 自动更新配置20 45 commons-configuration32 13 开源配置中心:《4.7.2 分布式配置中心-02》spring cloud config配置中心+eureka注册中心12 15+ disconf 用到了zo原创 2021-02-07 17:04:50 · 99 阅读 · 0 评论 -
《专题四 服务化改造》之《第四章 【拓展进阶】分布式》之《第六节 分布式事务》
文章目录《4.6.2 分布式事务难点分析》《4.6.4 强事务之Seata两阶段提交AT模式》《4.6.5 强事务之Seata-XA协议》《4.6.6 强事务之Seata-TCC方式》《4.6.8 分布式事务之消息机制》《4.6.9 分布式事务总结》《4.6.2 分布式事务难点分析》分布式一致性:两个节点之间不存在达成共识的确定性算法拜占庭将军问题,比特币:同时需要解决一致性与正确性。分布式事务没有正确性的问题。《4.6.4 强事务之Seata两阶段提交AT模式》SeataAT模式运行机原创 2021-02-05 17:10:55 · 532 阅读 · 0 评论 -
《专题四 服务化改造》之《第四章 【拓展进阶】分布式》之《第四节 Zookeeper核心功能和应用场景》、《第五节 分布式锁》
文章目录《4.4.1 ZooKeeper入门》《4.4.2 ZooKeeper核心概念》《4.4.1 ZooKeeper入门》12 10 zookeeper的应用案例:13 15 zk的同类产品:consul etcd(比zk轻量级) Doozer18分 单机版安装参考以及相关官方文档查阅处:启动服务端:bin/zkServer.sh start用客户端连接:bin/zkCli.sh -server 127.0.0.1:218124 45+ cli操作指南:原创 2021-01-18 01:01:26 · 629 阅读 · 0 评论 -
《专题四 服务化改造》之《第三章 【补充资料】常见消息中间件应用详解》之《第十一节 Rocketmq》
文章目录《3.11.1 rocketmq入门》《3.11.2 rocket集群架构》《3.11.1 rocketmq入门》RocketMQ的特性:NameServer:offset:partition:Tag:key:《3.11.2 rocket集群架构》rocketMQ架构方案:配置与启动:vi bin/runserver.sh如内存不够,请改动JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2gvi bin/原创 2021-01-10 17:44:16 · 310 阅读 · 0 评论 -
《专题四 服务化改造》之《第三章 分布式系统解耦》
《3.1.1 什么是耦合以及耦合带来的问题》31 46 公共库导致的耦合:解耦方案1:公共库进行业务垂直拆分; 解耦方案2:对公共库进行服务化38分 服务化不彻底导致耦合:优化方案: 业务特性代码上浮40 30 不合理同步调用导致的耦合优化方案:通过MQ实现解耦45 30 配置中的ip导致上下游耦合优化方案:用域名代替IP(可使用nginx),或者配置/注册中心...原创 2020-12-28 22:43:39 · 270 阅读 · 2 评论 -
《专题四 服务化改造》之《第一章 分布式系统拆分理论》
目录《1.1.1 分布式系统架构演进之路》《1.2.1 服务化理论知识》《1.3.1 服务化的意义》《1.1.1 分布式系统架构演进之路》23 10 CDN服务器部署在运营商,CDN加速适合于静态资源27 5 适合存储小文件、图片的分布式文件系统: FastDFS、TFS38分 业务拆分:42 30 公共内容服务化;配置中心46 44 两种服务框架: Dubbo、SpringCloud。配置中心有如下方案。其中Dubbo用的是zookeeper系统监控: Zabbix,或者E原创 2020-12-23 21:00:20 · 297 阅读 · 0 评论 -
《专题三分布式系统》之《第二章 【拓展进阶】Nginx》之 第六、八节
《2.6.1 lvs+keepalived+nginx+tomcat实现高性能负载均衡集群-1》《2.6.2 lvs+keepalived+nginx+tomcat实现高性能负载均衡集群-2》10 用lvs实现nginx高可用的集群lvs好像用的DR模式,DR模式可参考LVS-DR原理介绍和配置实践...原创 2020-12-01 22:17:49 · 127 阅读 · 0 评论 -
《专题三分布式系统》之《第四章 拓展进阶(一)——安全防护》
文章目录《4.11.1 常见的安全问题场景》《4.11.2 Hash算法与碰撞》《4.11.3 数字签名、数字证书》非对称加密:数字签名:数字证书《4.11.4 请求重放与中间人攻击》《4.11.5 openId、oauth》《4.11.6 单点登录》《4.11.1 常见的安全问题场景》需要输入输出验证:跨站脚本攻击(CSS or XSS)SQL注入攻击远程命令执行(code execution)目录遍历(Directory traversal)《4.11.2 Hash算法与碰撞》不可逆原创 2020-12-20 23:08:23 · 447 阅读 · 0 评论 -
如何实现粘性Session
nginx+tomcat关于Session的管理此文质量不错,我做个简单总结:nginx默认的负载均衡策略是轮询,其一大缺点是不能产生粘性Session;把nginx的负载均衡策略改为hash,可以产生粘性Session。但如果某tomcat下线,则粘性Session失效了;通过修改tomcat的配置,可以将session共享在redis中。文中最后的方案其实不完美,比如此Session共享机制与tomcat耦合了,如果要迁移到jetty等其它web容器呢?Spring有提供相应方案,不过我还没原创 2020-12-20 21:42:40 · 467 阅读 · 0 评论 -
《专题三分布式系统》之《第四章 数据存储层优化(下)——数据库集群拆分》之 《第十节 Sharding-jdbc数据库操作增强类库》
《4.10.1-Sharding-JDBC概览》8分 架构图:原创 2020-12-19 18:08:03 · 135 阅读 · 1 评论 -
《专题三分布式系统》之《第四章 数据存储层优化(下)——数据库集群拆分》之 《第九节 Mycat数据库集群中间件》
《4.9.1-Mycat入门》15分 Mycat架构:《4.9.2-Mycat读写分离》逻辑概念:schema->table的needAddLimit属性默认为true:14 50 childTable标签,避免跨库join19 40 使用jdbc的话要准备jar包:dataHost中与读写分离、负载均衡相关的几个配置:17 50 balance,负载均衡:18 15 writeType:23分 writeHost与re原创 2020-12-18 02:17:54 · 265 阅读 · 1 评论 -
《专题三分布式系统》之《第四章 数据存储层优化(下)——数据库集群拆分》之 《第八节 数据库中间件设计篇》
《4.8.1-数据库中间件设计核心理念篇》阿里云Mysql性能测试结果 :《4.8.2 数据库中间件设计要点》9 30 水平拆分的分片规则:数据库中间件的两种实现模式:客户端模式:服务端(代理)模式:常用数据库中间件:...原创 2020-12-17 17:22:55 · 111 阅读 · 0 评论 -
《专题三分布式系统》之《第三章 【拓展进阶】Redis》之 《第五节 Redis实战》
《3.5.1 实现定时消息通知》9 20 简单定时任务通知:利用redis的keyspace notifications开启办法:在配置文件中把notify-keyspace-events修改为 “Ex” (键过期事件)我的总结: 用Spring的@Scheduled(需要用@EnableScheduling修饰Springboot的主程序)周期性set带过期时间的键, 这里它相当于消息发布者。而实现了KeyExpirationEventMessageListener的类会在键过期时调用onMes原创 2020-12-10 21:10:10 · 146 阅读 · 2 评论 -
《专题三分布式系统》之《第三章 集中式缓存Redis》之 《第三节 Redis底层原理分析》
《3.3.1 redis数据结构原理(1) – string,hash,list》19:35 用Redis实现分布式排他锁。https://redis.io/commands/set页的下部有详细说明《3.3.2 redis数据结构原理(2) – set,zset,stream》20:00 redis的zset的数据结构:跳表(skiplist)+hash。可参考blog.youkuaiyun.com/zjwendy/article/details/90173855做范围查找时,平衡树(如AVL,红黑树原创 2020-12-08 02:21:53 · 333 阅读 · 0 评论 -
《专题三分布式系统》之《第二章 集群部署负载均衡》之《第二节 Nginx入门》
《2.2.1 Nginx负载均衡》nginx作为负载均衡的原因:网络io模式为epoll,高并发;零拷贝,内存消耗少;配置简单10:40 反向代理的作用:1,保证内网的安全;2,负载均衡4种负载均衡的方案:轮询,即round robin;最少连接,web请求会被转发到连接数最少的服务器;15:55 ip_hash,用ip地址哈希,实现用户粘性;基于权重weight14:35 共享session的方案:保存在redis/mysql中,key是用户账号名,value是会话信息。一原创 2020-11-10 19:07:07 · 111 阅读 · 0 评论 -
好文转载 深入学习Redis(5):集群
深入学习Redis(5):集群节选:带虚拟节点的一致性哈希分区该方案在一致性哈希分区的基础上,引入了虚拟节点的概念。Redis集群使用的便是该方案,其中的虚拟节点称为槽(slot)。槽是介于数据和实际节点之间的虚拟概念;每个实际节点包含一定数量的槽,每个槽包含哈希值在一定范围内的数据。引入槽以后,数据的映射关系由数据hash->实际节点,变成了数据hash->槽->实际节点...转载 2019-11-29 16:54:47 · 145 阅读 · 0 评论 -
zookeeper协调分布式事务
Zookeeper 的一个作用就是担任分布式事务中的协调者角色,2PC(可参考高级数据库课程第19章分布式事务的内容)参考来源1:详解分布式协调服务 中的“协调分布式事务”;它最初应该参考自ZooKeeper Recipes and Solutions中的“Two-phased Commit”其实要保证分布式系统数据一致性,不一定要用分布式事务,参考保证分布式系统数据一致性的6种方案...原创 2019-10-28 01:44:25 · 1230 阅读 · 0 评论 -
zookeeper的一致性
https://juejin.im/post/5c3e93baf265da616f703287:如果客户端想要将数据存储在ZooKeeper集合中,则会将znode路径和数据发送到服务器。连接的服务器将该请求转发给leader,然后leader将向所有的follower重新发出写入请求。如果只有大部分节点成功响应,而写入请求成功,则成功返回代码将被发送到客户端。 否则,写入请求失败。绝大多数节点...原创 2019-11-29 07:09:32 · 118 阅读 · 0 评论