首页 文章 精选 留言 我的

精选列表

搜索[分布式锁],共10000篇文章
优秀的个人博客,低调大师

Hunt Cache 0.6.0 发布,D 语言分布式缓存框架

Hunt Cache 是一个支持二级缓存的 D 语言缓存框架,现在支持的缓存后端有 Redis、Memcache、Memory、RocksDB。 新的改进: 基于高性能的 Radix 算法作为 Memory 驱动的实现 使用全新的 Hunt Redis 作为 Redis 缓存后端 支持 Redis Cluster 集群缓存 在 Redis 驱动可以指定 DB 修复问题.. 示例代码: import hunt.cache; import hunt.logging; struct User { int id; string name; int age; } void main() { auto cache = CacheFactory.create(); // 定义缓存主键 string key = "userinfo"; User user; user.id = 1; user.name = "zoujiaqing"; user.age = 100; // 设置缓存 cache.set(key, user, 10); // 获取缓存的值绑定指定类型对象 User u = cache.get!User(key); logDebug(u.name); }

优秀的个人博客,低调大师

Apache Kafka 2.3.1 发布,分布式消息发布订阅系统

Apache Kafka 2.3.1 发布了,此版本主要更新内容如下: 新特性 [KAFKA-8952] - jackson-databind-2.9.9 的漏洞发现 改进 [KAFKA-8676] - 避免停止不必要的连接器和任务 Bug [KAFKA-5998] - /.checkpoint.tmp 找不到异常 [KAFKA-6290] - Kafka Connect 类型转换应支持逻辑类型 [KAFKA-6605] - Flatten SMT 无法正确处理为空的字段 [KAFKA-7157] - Connect TimestampConverter SMT 不处理空值 [KAFKA-7941] - 由于代理不可用,当获取偏移量失败时,Connect KafkaBasedLog 工作线程终止 [KAFKA-8053] - 当主题不存在时,kafka-topics.sh 会给出令人困惑的错误消息 [KAFKA-8262] - Flaky Test MetricsIntegrationTest#testStreamMetric [KAFKA-8412] - 在关闭 producer 之前进行刷新时,关闭时仍会引发 nullpointer 异常 [KAFKA-8523] - 遇到逻辑删除事件时,InsertField 转换失败 [KAFKA-8530] - 使用者应在 OffsetFetch 中处理授权错误 [KAFKA-8550] - 连接器验证因使用别名转换器而失败 …… 详情可查看更新说明。

优秀的个人博客,低调大师

NSQ 1.2.0 发布,实时分布式消息传递平台

NSQ 是无中心设计、节点自动注册和发现的开源消息系统。可作为内部通讯框架的基础,易于配置和发布。NSQ 1.2.0 已经发布,如下: 升级 nsqd:删除了对 v0.3.8 及更早版本中使用的旧元数据方案的支持(你不能直接从 0.3.8 升级到 v1.2.0,而是通过 v1.0.0-compat 或 v1.1.0) 使用 Go 模块管理依赖项:dep 目前仍有支持,但不建议使用 特性 nsqd: 添加--max-channel-consumers 添加--min-output-buffer-timeout 限制使用者可以请求的超时时间(默认值 --max-output-buffer-timeout 提高到30秒) 添加标志以调整默认值--output-buffer-timeout 为 Authd 请求添加随机负载平衡 在 Authd 请求中包括客户端 TLS cert CommonName 添加参数到 /stats 端点以允许跳过每个客户端状态 将生产者客户端 tcp 连接添加到 stats nsq_to_file: 在大多数日志消息中包括topic/channel 添加--log-level和--log-prefix 大重构,更健壮的文件切换、同步和错误处理 支持使用 --work-dir 的单独工作目录 新标志 --sync-interval nsq_to_http:添加--header nsqadmin:添加--base-path 修复 nsqd: 关闭不发送“magic”标题的连接 nsqd、nsqlookupd、nsqadmin:重构日志级别,一般重构以更好地退出所有致命错误 nsqadmin:切换到像 nsqd 和 nsqadmin 那样使用 JudWhite/go-svc、修复客户端计数和信道总消息率、Elint 报告修复/清理 详情见更改日志: https://github.com/nsqio/nsq/releases/tag/v1.2.0

优秀的个人博客,低调大师

大白话讲解分布式里面的cap原则

什么叫做cap Cap分别指可用性,分区容错性,一致性 分区容错性 如下图中,G1 和 G2 是两台跨区的服务器。G1 向 G2 发送一条消息,G2 可能无法收到。系统设计的时候,必须考虑到这种情况。一般来说,分区容错无法避免,因此可以认为 CAP 的 P 总是成立。所以在cap原则里面,分区容错性是必须要有的 一致性 一致性的意思是,写操作之后的读操作,必须返回该修改后的值。举例来说,某条记录是 v0,然后客户端向 G1 发起一个写操作,将其改为 v1,但是此时注意G2里面的记录还是v0,而不是v1,就像下面这样 然后当用户向G1获取记录的时候,返回就是v1,就像下面这样,这样是没有问题的 但是如果用户向G2服务器获取记录的时候,此时记录还是v0,这就有问题了,因为用户在两个服务获取的记录数据不同,这就是不一致性,怎么解决不一致性呢:我们可以在我们可以在 G1 写操作时,锁定 G2 的读操作和写操作。只有G1完成写操作并且把修改数据同步到G2之后,G2服务器才能重新开放读写操作 为什么可用性和一致性无法都使用 如下图,如果保证 G2 的一致性,那么 G1 必须在写操作时,锁定 G2 的读操作和写操作。只有G1和G2把修改后的数据同步后,才能让G2服务开放读写操作。但是在G2服务器锁定期间,G2 服务器是不能进行读写操作的,所以此时可用性是不可能实现的。 然后如果保证 G2 的可用性,那么势必不能锁定 G2的读写操作,所以刺死一致性不成立。 综上所述,G2 无法同时做到一致性和可用性。系统设计时只能选择一个目标。如果追求一致性,那么无法保证所有节点的可用性;如果追求所有节点的可用性,那就没法做到一致性。 可用性 可用性意思是只要收到用户的请求,服务器就必须给出回应。 为什么可用性和一致性无法都使用 如下图,如果保证 G2 的一致性,那么 G1 必须在写操作时,锁定 G2 的读操作和写操作。只有G1和G2把修改后的数据同步后,才能让G2服务开放读写操作。但是在G2服务器锁定期间,G2 服务器是不能进行读写操作的,所以此时可用性是不可能实现的。 然后如果保证 G2 的可用性,那么势必不能锁定 G2的读写操作,所以刺死一致性不成立。 综上所述,G2 无法同时做到一致性和可用性。系统设计时只能选择一个目标。如果追求一致性,那么无法保证所有节点的可用性;如果追求所有节点的可用性,那就没法做到一致性。 我们在开发过程中cap原则,我们应该怎么选择呢 我们一般都是保证一致性和分区容错性,而舍弃可用性,因为你想啊,一致性对比可用性,还是一致性重要吧,特别是涉及到重要的数据,就比如钱,商品数量,商品价格,如果这些数据你保证可用性,那么就会出现不同时间的访问可能造成数据的不(因为每一次访问的时候可能会访问到不同的服务器),这就大发了,支付宝每一次访问的钱金额不同,你说要命不要命 但是也有使用可用性,而放弃一致性的,举例来说,发布一张网页到 CDN,多个服务器有这张网页的副本。后来发现一个错误,需要更新网页,这时只能每个服务器都更新一遍。一般来说,网页的更新不是特别强调一致性。短时期内,一些用户拿到老版本,另一些用户拿到新版本,问题不会特别大。当然,所有人最终都会看到新版本。所以,这个场合就是可用性高于一致性。 所以cap原则里面到底怎么选,看情况而定 在开发中我们经常遇到zookeeper是使用分区容错性和一致性,而springcloud里面的ribbon的重试机制是保证可用性和分区容错性 原文链接

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册