Pengchen's Blog
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于

Java并发——管程模型

最近在翻操作系统的资料的时候,看到信号量和管程,联想到JDK的实践,记录一下管程的一些思想。操作系统的话,南大蒋炎炎老师的课不错,有时间实践完,后续全面记录一下心得。 管程(Monitor)是一种用于同步并发程序中线程访问共享资源的机制,它提供了对临界区的自动管理,避免了线程之间的竞争条件。不同的管程模型在处理同步和线程唤醒方面有差异,主要有三种经典模型:Hasen 模型、Hoare 模型 和 M
2024-10-22
并发编程
#并发 管程

分布式文件系统——FastDFS和HDFS的一些比较

最近发现很多开发很喜欢问分布式存储相关的问题,下面简单记录下目前我自己使用比较多的两种开源分布式文件系统。 适用场景FastDFS 和 HDFS 是常用的分布式文件系统组件,它们各自具有不同的设计理念和应用场景。以下是两者的对比分析,以及简单的代码使用示例。 1. FastDFS优点: 高效的文件上传和下载:FastDFS 适用于文件大小较小且需要高效上传/下载的场景,尤其是需要文件的快
2024-10-16
分布式文件存储
#FastDFS HDFS

TBB和Java并行库的一些对比

最近看到TBB的一些资料,然后自然而然地想到了java的一些并行库,就记录了两者的一些简单的比对。 在 C++ 中,Intel TBB(Threading Building Blocks)提供了一套高效的并行编程模型,而在 Java 中,也有丰富的并发库供开发者使用,比如 ForkJoinPool、CompletableFuture、Stream.parallel() 等。通过对这两者的功能进行比
2024-10-16
C++
#C++ Java

DDD的一些随笔感想V

紧接着上一篇,这篇主要结合事件驱动架构和 Saga 模式进一步探索。 事件驱动架构和Saga模式的结合能够充分利用两者的优点,提供了一种高效、松耦合且具有最终一致性的分布式事务处理方式。结合这些架构,可以在微服务系统中处理复杂的业务逻辑和跨服务事务,确保系统具有弹性、扩展性和可维护性。 1. 事件驱动架构与Saga模式的结合思路事件驱动架构通过发布和订阅事件来实现服务之间的异步通信,而Saga模式
2024-10-15
架构
#架构设计 DDD

DDD的一些随笔感想IV

紧接着上一篇,这篇主要讲解Saga模式。 Saga模式是一种用于处理分布式系统中长事务(Long-Running Transactions)的模式。它通过将一个大事务拆分成一系列小的局部事务(Local Transactions),每个局部事务都是独立提交的。如果某个局部事务失败,系统会通过补偿操作来回滚之前已成功的事务,确保系统达到最终一致性。 Saga模式主要用于解决分布式事务中的一致性问题,
2024-10-15
架构
#架构设计 DDD

DDD的一些随笔感想III

紧接着上一篇,这篇主要讲解事件驱动架构。 事件驱动架构(Event-Driven Architecture, EDA)是一种以事件为中心的系统架构模式,常用于构建松耦合、可扩展且响应迅速的系统。事件驱动架构尤其适合分布式系统和微服务架构,因为它能够在服务之间建立异步通信,避免服务之间的强耦合,同时保证系统的扩展性和可维护性。 1. 事件驱动架构的核心概念在事件驱动架构中,系统内的操作和状态变化都通
2024-10-15
架构
#架构设计 DDD

DDD的一些随笔感想II

紧接着上一篇,这篇主要讲解聚合。 聚合(Aggregate)是领域驱动设计(DDD)中的核心概念之一,它用于组织和管理业务模型中的复杂性。聚合在DDD中起着重要作用,帮助我们以分层的方式处理业务逻辑,同时保证数据的一致性和完整性。聚合的设计和管理对于保证微服务架构中的稳定性至关重要。 1. 聚合的定义聚合是领域中的一组相关对象,它们一起处理某个业务场景中的操作。聚合具有以下特征: 聚合根(Agg
2024-10-15
架构
#架构设计 DDD

DDD的一些随笔感想I

最近经常遇到开发谈起DDD的架构设计思想,我翻阅了一些资料后,自己总结了一下。 领域驱动设计(DDD, Domain-Driven Design)是一种设计复杂软件系统的方法,通过将业务领域的知识和技术紧密结合,来指导微服务架构的设计。DDD尤其适合处理复杂、多变的业务系统,在微服务架构中应用也非常广泛。以下是DDD的核心思想、如何在微服务设计中应用,以及代码示例和实际落地的考虑。 1. DDD的
2024-10-15
架构
#架构设计 DDD

雪花算法及其问题

最近看书的发现一些有意思的问题,记录几篇博客。 时钟回拨问题雪花算法(Snowflake Algorithm)是一种分布式ID生成算法,通常使用时间戳作为ID的一部分来保证唯一性。然而,时钟回拨问题会导致时间戳出现错误,进而产生重复的ID或ID顺序错乱。这通常发生在系统时间被手动修改、网络时钟同步失败等情况下。为了避免时钟回拨导致的问题,有几种常见的解决方案: 抛出异常或阻塞等待 当检测到时钟
2024-10-15
算法
#雪花算法

hexo博客搭建和文件删除备份

hexo博客搭建和文件删除备份痛苦的事件​ 最近有些时间,更新一下荒废的博客,没想到hexo本地的博客源文件之前被误删除了。查了网上很多资料,还写了脚本爬网页转md,都没有办法解决,最后还是乖乖的复制html然后转到md,耗时两三天,终于解决了问题。不过,还是丢失了几篇文章,还有一些文章的格式短时间内,也没办法恢复了。 ​ 最新的博客,更新了主题,没有继续使用next,使用了flu
2024-10-14
Blog
#Blog
12345…20

搜索

Hexo Fluid