javaedge_社区达人页

关注公众号:JavaEdge,后台回复面试,领取更多大厂求职资源。曾在百度、携程、华为等大厂搬砖,专注Java生态各种中间件原理、框架源码、微服务、中台等架构设计及落地实战,只生产硬核干货!

暂无精选文章
暂无更多信息

2023年05月

  • 05.06 15:56:15
    发表了文章 2023-05-06 15:56:15

    分布式复制系统设计-总结

    复制或多副本技术的目的: 高可用 即使某台器(或多台机器,或整个IDC)故障,系统也能保持正常运行 连接断开与容错 允许应用程序在网络中断时继续工作 低延迟 将数据放置在距离用户较近地,以更快交互 可扩展性 采用多副本,大幅提高系统的读吞吐量
  • 05.05 21:32:54
    发表了文章 2023-05-05 21:32:54

    JVM运行状态评估及优化

    估算系统QPS,每个请求会创建多少对象,占多少内存,机器配置选型,年轻代应该给多少内存,YGC触发频率,对象进入老年代的速率,老年代应该给多少内存,Full GC触发的频率。这些都是根据代码可大概合理预估的。
  • 05.05 21:23:14
    发表了文章 2023-05-05 21:23:14

    并发性,时间和相对性(2)

    该算法可确保不会发生数据丢弃,但客户端要做额外工作:若多个操作并发,则客户端必须通过合并并发写入的值来继承旧值。
  • 05.05 21:22:17
    发表了文章 2023-05-05 21:22:17

    并发性,时间和相对性(1)-确定前后关系

    若两个操作同时发生,则称为并发,但事实上,操作是否在时间上重叠并不重要。由于分布式系统复杂的时钟同步问题,现实中很难严格判断两个事件是否同时发生。
  • 05.05 21:20:48
    发表了文章 2023-05-05 21:20:48

    最后写入胜利(丢弃并发写入)

    实现最终收敛的一种方案,每个副本总存储最新值,允许覆盖并抛弃旧值。假定每个写请求都最终同步到所有副本,只要确定哪个写入是最新,则副本就能最终收敛到相同值。
  • 05.05 21:19:24
    发表了文章 2023-05-05 21:19:24

    多数据中心操作和检测并发写入

    多数据中心操作 无主复制也适用于多数据中心操作,因其旨在更好的容忍并发写冲突、网络中断和延迟尖峰等。
  • 05.05 21:18:21
    发表了文章 2023-05-05 21:18:21

    无主复制系统(3)-Quorum一致性的局限性

    若有n个副本,且配置w和r,使得w + r > n w + r> nw+r>n,期望可以读到一个最新值。因为成功写入的节点集合和读取的节点集合必有重合,这样读取的节点中至少有一个具有最新值,如图-11。
  • 05.05 21:17:30
    发表了文章 2023-05-05 21:17:30

    无主复制系统(2)-读写quorum

    图-10中,三副本若有两个以上完成处理,写即可认为成功了。若三副本中只有一个完成写入,会怎样?到底几个副本完成才能认为写成功?
  • 05.05 21:16:16
    发表了文章 2023-05-05 21:16:16

    无主复制系统(1)-节点故障时写DB概述

    单、多主复制的思路都是:客户端向某主节点发写请求,而DB系统负责将写请求复制到其他副本。
  • 05.05 21:15:12
    发表了文章 2023-05-05 21:15:12

    多主复制下处理写冲突(4)-多主复制拓扑

    复制的拓扑结构描述了写请求从一个节点传播到另一个节点的通信路径。若有两个主节点,如图-7,只有一个合理拓扑结构:M1必须把他所有的写同步到M2,反之亦然。当有两个以上M,各种不同拓扑都可能的。如图-8说明了一些例子。
  • 05.05 21:13:53
    发表了文章 2023-05-05 21:13:53

    多主复制下处理写冲突(3)-收敛至一致的状态及自定义冲突解决逻辑

    主从复制模型的数据更新符合顺序性原则:若同一字段有多个更新,则最后一个写操作决定该字段的终值。
  • 05.05 21:12:42
    发表了文章 2023-05-05 21:12:42

    多主复制下处理写冲突(1)-同步与异步冲突检测及避免冲突

    多主复制的最大问题:可能发生写冲突,这是必须要解决的。
  • 05.05 21:11:28
    发表了文章 2023-05-05 21:11:28

    多主复制的适用场景(2)-需离线操作的客户端和协作编辑

    3.1.2 需离线操作的客户端 应用在断网后仍需继续工作。 如手机、PC和其他设备上的日历应用。无论设备当前是否连网,都需随时查看
  • 05.05 21:10:28
    发表了文章 2023-05-05 21:10:28

    多主复制的适用场景(1)-多IDC

    之前都是单主的主从复制架构,主从复制有个明显缺点:只有一个主节点,而所有写都必须通过它1。万一和主节点之间的网络中断而导致无法连接到主节点,主从复制方案就影响所有DB写入操作。
  • 05.05 21:08:53
    发表了文章 2023-05-05 21:08:53

    复制延迟案例(1)-最终一致性

    该案例违反因果律。 想象先生和夫人之间的对话: Mr Mrs,你能看到多远未来? Mrs 通常约10s,Mr.
  • 05.05 21:07:02
    发表了文章 2023-05-05 21:07:02

    数据复制系统设计(3)-配置新的从节点及故障切换过程详解

    1.3 配置新的从节点 有时需考虑新增一个从节点: 提高容错能力 或替换失败的副本节点
  • 05.05 21:05:34
    发表了文章 2023-05-05 21:05:34

    数据复制系统设计(2)-同步复制与异步复制

    复制的重要可选项: 同步复制,synchronously 异步复制,asynchronously
  • 05.05 21:03:48
    发表了文章 2023-05-05 21:03:48

    分布式系统的一致性与共识(1)-综述

    分布式系统中的许多事情可能出错,最简单方法是让整个服务失效,并向用户显示错误消息。若无法接受,就得找到容错方法:即使某些内部组件出现故障,服务也能正常运行。
  • 05.05 21:02:49
    发表了文章 2023-05-05 21:02:49

    精通Java事务编程(9)-总结

    事务作为抽象层,允许应用忽略DB 内部一些复杂并发问题和某些硬件、软件故障,简化应用层的处理逻辑:事务中止(transaction abort),而应用仅需重试。对复杂访问模式,事务可大大减少需要考虑的潜在错误情景数量。
  • 05.05 21:01:54
    发表了文章 2023-05-05 21:01:54

    精通Java事务编程(8)-可串行化隔离级别之可串行化的快照隔离

    本系列文章描述了DB并发控制的黯淡: 2PL虽保证了串行化,但性能和扩展不好 性能良好的弱隔离级别,但易出现各种竞争条件(丢失更新,写倾斜,幻读
  • 05.05 20:59:55
    发表了文章 2023-05-05 20:59:55

    精通Java事务编程(7)-可串行化隔离级别之两阶段锁定(2PL,two-phase locking)

    近30年,DB只有一种广泛使用的串行化算法:两阶段加锁 1 2PL不是2PC 请注意,虽然两阶段锁定(2PL)听起来非常类似于两阶段提交(2PC),但是完全不同概念
  • 05.05 20:58:31
    发表了文章 2023-05-05 20:58:31

    精通Java事务编程(6)-可串行化隔离级别之真串行

    RC 和 快照隔离 级别可防止某些竞争条件,但并非全部。一些棘手案例,如写偏斜 和 幻读,会发现可悲情况: 隔离级别难理解,且不同DB实现不一(如RR含义天差地别) 若检查应用层代码很难判断特定隔离级别下是否安全,尤其是大型系统,无法预测各种并发 无检测竞争条件的好工具。理论上,静态分析可能有所帮助,但更多技术还没法实际应用。并发问题测试也很难,一切取决于时机
  • 05.05 20:56:31
    发表了文章 2023-05-05 20:56:31

    精通Java事务编程(5)-写倾斜与幻读

    多个事务并发写相同对象时,会出现脏写、更新丢失两种竞争条件。为避免数据不一致,可: 借助DB内置机制 或通过显式加锁
  • 05.05 20:54:26
    发表了文章 2023-05-05 20:54:26

    精通Java事务编程(4)-弱隔离级别之防止更新丢失

    RC和快照隔离级别主要都是为解决 只读事务遇到并发写时可以看到什么(虽然中间也涉及脏写),还没触及另一种情况:两个写事务并发,而脏写只是写并发的特例。
  • 05.05 20:52:57
    发表了文章 2023-05-05 20:52:57

    精通Java事务编程(3)-弱隔离级别之快照隔离和可重复读

    表面看,RC已满足事务所需的一切特征:支持中止(原子性),防止读取不完整的事务结果,并防止并发写的混乱。这点很关键!为我们的开发省去一大堆麻烦。
  • 05.05 20:51:10
    发表了文章 2023-05-05 20:51:10

    精通Java事务编程(2)-弱隔离级别之已提交读

    若两个事务不触及相同数据,即无数据依赖关系,则它们能安全并行运行。只有当: 某事务读取由另一个事务同时修改的数据时 或两个事务同时修改相同数据
  • 05.05 20:49:19
    发表了文章 2023-05-05 20:49:19

    精通Java事务编程(1)-深入理解事务

    苛刻的数据存储系统中,很多可能出错的case: 数据库软件、硬件可能随时失效(包括正在执行写操作的过程中) 应用程序可能随时崩溃(包括一系列操作的中间某步) 网络中断可能会意外切断数据库与应用的连接,或数据库之间的连接。 多个客户端可能同时写入DB,导致数据覆盖 客户端可能读到无意义的、部分更新的数据 客户端之间由于边界条件竞争所引入的各种奇怪问题
  • 05.05 20:46:30
    发表了文章 2023-05-05 20:46:30

    Mac程序坞只显示正在运行的应用图标

    Mac程序坞只显示正在运行的应用图标
  • 05.05 20:45:30
    发表了文章 2023-05-05 20:45:30

    数据系统分区设计 - 请求路由

    现已将数据集分布多个节点,但当客户端要发送请求时,如何知道应该连接哪个节点?若分区再平衡,分区和节点的映射也随之变化。
  • 05.05 20:44:01
    发表了文章 2023-05-05 20:44:01

    数据系统分区设计 - 分区再平衡(rebalancing)

    随业务井喷,DB出现变化: 查询负载增加,需更多CPU处理负载 数据规模增加,需更多磁盘和内存来存储 节点可能故障,需要其他节点接管失效节点
  • 05.05 20:41:59
    发表了文章 2023-05-05 20:41:59

    数据系统分区设计 - 分区与二级索引

    目前的分区方案都依赖KV数据模型。KV模型简单,都是通过K访问记录,自然可根据K确定分区,并将读写请求路由到负责该K的分区。
  • 05.05 20:39:55
    发表了文章 2023-05-05 20:39:55

    系统设计之分区策略

    对大数据集或非常高吞吐量,仅复制还不够,还需将数据拆分成为分区(partitions),也称分片(sharding)1。
  • 05.05 20:36:50
    发表了文章 2023-05-05 20:36:50

    MybatisPlus的updateById

    根据id更新 当我就是不想用lambda构造器和条件构造器时,我可以按 id 来更新数据
  • 05.05 20:35:49
    发表了文章 2023-05-05 20:35:49

    系统设计之图状数据模型

    多对多关系是不同数据模型之间的重要区别特征。若数据大多是一对多(树结构数据)或记录之间无关系,则文档模型最合适。但若多对多关系的数据很常见,关系模型能处理简单的多对多,但随数据之间关联复杂度增加,将数据建模转化为图模型更自然。
  • 05.05 20:31:12
    发表了文章 2023-05-05 20:31:12

    系统架构设计(3)-可扩展性

    即使系统现在可靠,不代表将来一定可靠。发生退化的最常见原因是负载增加:并发用户从最初的10,000 增长到 100,000或系统目前处理数据量超出之前很多倍。
  • 05.05 20:26:45
    发表了文章 2023-05-05 20:26:45

    一看就懂的适配器设计模式

    一般客户端通过目标类的接口访问它所提供的服务。有时,现有类可以满足客户端类的需要,但所提供接口不一定是客户端所期望的,可能因为现有类中方法名与目标类中定义的方法名不一致。
  • 05.05 20:11:49
    发表了文章 2023-05-05 20:11:49

    大厂的优惠券系统是如何设计的?

    1 Scenario 场景 电商系统的促销手段(Electronic Commerce Systems): 优惠券 拼团 砍价 老带新
  • 05.05 20:00:30
    发表了文章 2023-05-05 20:00:30

    IDEA告警详解:Optional.isPresent can be replaced with functional-style expression

    类似 if(Optional.isPresent()) 的条件语句,可以被重写成函数式风格。
  • 05.05 19:59:02
    发表了文章 2023-05-05 19:59:02

    MySQL语法查找非空(NULL)的元素

    # 不会报错,但不会有可用数据返回 select name from clase where address != null
  • 05.05 19:57:14
    发表了文章 2023-05-05 19:57:14

    大数据开发,如何发掘数据的关系?

    数据之中蕴藏关系,数据量足够大,这种关系越逼近真实世界客观规律。 网页之间链接关系蕴藏着网页重要性排序关系,购物车商品清单蕴藏着商品关联关系,通过对这些关系的挖掘,可帮助我们更清晰世界规律,并利用规律提高生产效率,改造世界。
  • 05.05 19:52:25
    发表了文章 2023-05-05 19:52:25

    解密双十一、618电商大促数据大屏指标实现原理

    数据分析,大数据应用的一个主要场景,通过数据分析指标监控企业运营状态,及时调整运营和产品策略。大数据平台上运行的绝大多数大数据计算都是关于数据分析的,各种统计、关联分析、汇总报告,都需要大数据平台。
  • 05.05 19:49:40
    发表了文章 2023-05-05 19:49:40

    大数据技术学习带来的思考

    大数据技术可分类如下: 存储 计算 资源管理
  • 05.05 19:47:36
    发表了文章 2023-05-05 19:47:36

    不讲废话,全程硬核,处理结构化数据的终极解决方案

    现代Java应用架构越来越强调数据存储和处理分离,以获得更好的可维护性、可扩展性以及可移植性,比如火热的微服务就是一种典型。这种架构通常要求业务逻辑要在Java程序中实现,而不是像传统应用架构中放在数据库中。
  • 05.05 19:42:15
    发表了文章 2023-05-05 19:42:15

    Java 并发编程实战-创建和执行任务的最佳实践

    若无法通过并行流实现并发,则必须创建并运行自己的任务。运行任务的理想Java 8方法就是CompletableFuture。 Java并发的历史始于非常原始和有问题的机制,并且充满各种尝试的优化。本文将展示一个规范形式,表示创建和运行任务的最简单,最好的方法。
  • 05.05 19:37:10
    发表了文章 2023-05-05 19:37:10

    查看Mac上已连接WiFi的密码?

    系统会弹出提示框,让你输入本地用户的密码,输入之后回车即可。 现在密码已经被复制到剪贴板了,随便打开一个可以输入文本内容的文本框,使用快捷键“Command+V”就可以看到WiFi密码!
  • 05.05 19:35:30
    发表了文章 2023-05-05 19:35:30

    Timestamp.valueOf API 使用详解

    将使用 JDBC 时间戳转义格式的 String 对象转换为 Timestamp 值。
  • 05.05 19:34:30
    发表了文章 2023-05-05 19:34:30

    线上异常日志没有堆栈信息

    只能在本地调试查找异常位置,但是在本地调试过程中却可以打印异常堆栈的。后来继续查找之前的日志,之前的某段时间这个地方是存在异常堆栈信息的。
  • 05.05 19:33:29
    发表了文章 2023-05-05 19:33:29

    Arrays.asList() vs Collections.singletonList()

    看了 IDEA 的告警: 与 Collections.singletonList 比,使用 Arrays.asList 来生成一个list是否更有优势?后者还能使得返回的list不可变。
  • 05.05 19:31:48
    发表了文章 2023-05-05 19:31:48

    IDEA告警:Unnecessary unboxing ‘xxx.intValue()‘

    显式编码拆箱已包装的原始数值。在Java5及以上的版本,拆箱是不必要的,可以安全地删除。那么 JDK5 到底做了啥
  • 发表了文章 2025-04-18

    释放数据潜力:利用 MCP 资源让大模型读懂你的服务器

  • 发表了文章 2025-02-11

    免费+数据安全!手把手教你在PC跑DeepSeek-R1大模型,小白也能秒变AI大神!

  • 发表了文章 2025-02-11

    DeepSeek-R1论文细节时间线梳理

  • 发表了文章 2025-02-11

    三分钟让Dify接入Ollama部署的本地大模型!

  • 发表了文章 2025-02-11

    Java工程师如何理解张量?

  • 发表了文章 2025-01-02

    【阿里云云服务诊断】调研报告

  • 发表了文章 2024-11-01

    ES常见Index API操作最佳实践!

  • 发表了文章 2024-10-31

    Elasticsearch 复制模型揭秘:如何保持数据一致性?

  • 发表了文章 2024-10-30

    set 方法是坏味道?

  • 发表了文章 2024-10-29

    Java8函数式接口Function<T, R> 的意义和应用场景

  • 发表了文章 2024-10-28

    为什么“低代码”是未来趋势?

  • 发表了文章 2024-10-27

    全面理解Maven Compiler Plugin-Maven编译插件

  • 发表了文章 2024-10-26

    不懂数据分析思维?怪不得你一直被淘汰!

  • 发表了文章 2024-10-25

    Java 中线程和纤程Fiber的区别是什么?

  • 发表了文章 2024-10-24

    真没想到!虚拟线程竟然这样提高程序效率!

  • 发表了文章 2024-10-23

    颠覆编程!通义灵码、包阅AI、CodeGeeX三大AI助手解锁无限潜力!

  • 发表了文章 2024-10-22

    Redis Quicklist 竟让内存占用狂降50%?

  • 发表了文章 2024-10-21

    别再用老旧架构了!单元化构建超强弹性和容错系统!

  • 发表了文章 2024-10-20

    单元化架构,分布式系统的新王!

  • 发表了文章 2024-10-19

    Java21虚拟线程:我的锁去哪儿了?

正在加载, 请稍后...
滑动查看更多
  • 回答了问题 2020-05-12

    Java 为什么不支持多继承? #Java

    因为 c++里类的多继承问题太多,前面两个也都说了,但为了持有这个特性,更简单的接口来了
    踩0 评论0
正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息