首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏深入浅出区块链技术

    EVM 设计原理

    EVM 设计原理 以太坊可以抽象的分成两部分,一部分是状态,另外一部分是用于改变状态的 EVM。 data: 一个不限制大小的字节数组,用来指定消息调用的输入数据 请注意,这是最开始的设计思路,后面经过诸多的 EIP 后,有些改变,更详细的内容可见 理解交易[12]。 8E%9F%E7%90%86/%E5%88%9D%E6%AD%A5%E7%90%86%E8%A7%A3%E4%BB%A5%E5%A4%AA%E5%9D%8A%E8%99%9A%E6%8B%9F%E6%9C 90%88%E7%BA%A6%E5%88%86%E6%9E%90%E5%9F%BA%E7%A1%80/%E6%99%BA%E8%83%BD%E5%90%88%E7%BA%A6%E5%AE%A1%E8%AE %A1.md#%E6%B7%B1%E5%85%A5%E5%AD%97%E8%8A%82%E7%A0%81%E5%88%86%E6%9E%90 [14] 中文翻译版本: https://github.com

    80510编辑于 2023-01-09
  • 来自专栏社区的朋友们

    Kafka 设计原理

    本文主要简单介绍Kafka的设计原理。 group Zookeeper:保存着集群broker、topic、partition等meta数据;另外,还负责broker故障发现,partition leader选举,负载均衡等功能 三、Kafka设计原理 举例,分段后的一个数据文件的offset是从20开始,那么offset为25的Message在index文件中的相对offset就是25-20 = 5。 如果有partition或者Consumer的增减,为了保证均衡消费,需要实现Consumer Rebalance,分配算法如下: broker对Consumer设计原理: 对于每个Consumer 3.6 HA基本原理 broker HA broker集群信息由Zookeeper维护,并选举出一个controller。

    6.5K77发布于 2017-08-21
  • 来自专栏Java工程师成长之路

    Eureka设计原理

    Eureka设计原理 1.1. 前言 目前我越来越关注技术原理层面的东西,开始考虑中间件设计背后,要考虑哪些因素,为什么要这样设计,有什么优化的地方,这次来讨论Eureka 1.2. 设计问题 设计一个注册中心,需要考虑什么东西?一步步来 首先注册中心的作用是用来存储各个服务器的地址端口等信息,所以需要考虑如何存储 存储就需要考虑是主动去拉还是各系统自己推送地址信息过来? Eureka采用的是ConcurrentHashMap来存储注册表信息,没错就是这玩意,我一开始看到也很吃惊,不是吃惊它什么巧妙的设计,我觉得让一个刚入行的菜鸟来做存储,可以也做成这样,只不过可能用的HashMap 注册延迟原理 同样的上面的机制,导致了服务注册到可使用完毕需要更多的延迟,这些延迟在什么地方呢? 这又导致了一次延迟 而如果用Ribbon请求,它首先请求的是Eureka Client缓存的注册表,这个缓存更新同样要30秒,这样就导致了最大可能造成2分钟左右的延迟 这里我要着重强调,Eureka为什么要这么设计

    1.2K21发布于 2019-08-21
  • 来自专栏一枝花算不算浪漫的专栏

    JetCache设计原理浅析

    1、目录 JetCache介绍 上帝视角:如何设计一个缓存组件? SpringCache VS JetCache JetCache基本使用 JetCache部分源码分析 2、JetCache介绍 3、如何设计一个缓存组件? 4、SpringCache VS JetCache 5、JetCache基本使用 5.1 JetCache配置信息 jetcache: statIntervalMinutes: 60 areaInCacheName #- redis://127.0.0.1:7001 #- redis://127.0.0.1:7002 5.2、JetCache使用示例 6、JetCache原理 CaffeineCache:基于Caffeine工具设计的内存缓存 RedisCache:Redis实现,使用Jedis客户端 RedisLettuceCache:Redis实现,使用Lettuce客户端

    2K10编辑于 2022-09-28
  • 来自专栏JavaEdge

    Ehcache缓存设计原理

    纯Java开源缓存框架,配置简单、结构清晰、功能强大,是一个非常轻量级的缓存实现,Hibernate里面就集成了相关缓存功能。

    88430发布于 2021-02-23
  • 来自专栏Spark学习技巧

    HBase原理设计

    原理 前面介绍了HBase的一般架构,我们知道了HBase有ZK、Master和RS等组成,本节我们来介绍下HBase的基本原理,从数据访问、RS路由到RS内部缓存、数据存储和刷写再到region的合并和拆分等等功能 HBase设计 HBase是一个分布式数据库,其性能的好坏主要取决于内部表的设计和资源的分配是否合理。 的设计至关重要,一般我们建议rowkey的开始部分以hash或者MD5进行散列,尽量做到rowkey的头部是均匀分布的。 列簇设计 HBase的表设计时,根据不同需求有不同选择,需要做在线查询的数据表,尽量不要设计多个列簇,我们知道,不同的列簇在存储上是被分开的,多列簇设计会造成在数据查询的时候读取更多的文件,从而消耗更多的 5,Hbase源码系列之源码前奏hbase:meta表相关详细介绍

    1.8K100发布于 2018-01-31
  • 来自专栏大数据技术博文

    Kafka设计原理

    可实时进行消息的处理计算 日志处理 Application 批量,异步发送日志/行为数据 流式处理 可以流式读取数据,支持Storm/Spark/Kafka Steaming 消息得生产实例&原理 (一) 生产者-发送/发布消息的一端 消息的生产&原理(二) 消息的生产&原理(三) 消息的消费实例&原理(一) 消息的消费实例&原理(二) 消费规则: 一个Partition只能被同一个ConsumerGroup partition数,可能会消费多个Partition 同一个partition保证是有序消费的 0.9之前consumer依赖zk,0.9之后直接链接kafka的Coordinator 消息的消费&原理 leader挂掉之后,通过选举选择follower中一个作为leader[去中心化] ZK中通过ISR维护着所有Follower,Follower通过Tcp与ZK保持心跳 副本因子 KAFKA逻辑架构设计

    31610编辑于 2022-04-18
  • 来自专栏JavaEdge

    Redis缓存设计原理

    hash槽,也就是说当前Redis Cluster支持的最大节点数就是4096 Redis Cluster使用的分布式算法也很简单:crc16( key ) % HASH_SLOTS_NUMBER 整体设计可总结为

    47220发布于 2021-02-23
  • 来自专栏code秘密花园

    从构建进程间缓存设计 谈 Webpack5 优化和工作原理

    让我们把目光先聚焦到即将破土而出的 Webpack 5 上,尽管国内外已经有抢鲜试水的尝试,其中也不乏@张立理的文章:Webpack 5 升级实验,讲述升级路径和体会,但是尚没发现从技术原理角度的设计解析 整篇文章将会设计大量 Webpack 实现原理和体系设计,阅读需要一定的前置知识和理解成本。 Webpack 5 新的设计提案 了解了上述知识,我们继续探讨已有方案的缺陷以及 Webpack 5 持久化缓存设计的“台前幕后”。 Webpack 5 令人期待的持久缓存优化了整个构建流程,原理依然还是那一套:当检测到某个文件变化时,根据依赖关系,只对依赖树上相关的文件进行编译,从而大幅提高了构建速度。 对于 Webpack 5 持久化缓存来说,对于 CI/CD 过程以及跨系统场景,也应该有合理的控制和设计

    98120发布于 2020-03-19
  • 来自专栏JavaEdge

    Ehcache缓存设计原理

    纯Java开源缓存框架,配置简单、结构清晰、功能强大,是一个非常轻量级的缓存实现,Hibernate里面就集成了相关缓存功能。

    1.2K00发布于 2021-02-03
  • 来自专栏小工匠聊架构

    Spring5 - 核心原理

    文章目录 核心原理解析 核心原理解析 周末梳理了下Spring Framework的核心原理, 详细请参考: 在Processon上,直达地址: https://www.processon.com

    31740发布于 2021-09-08
  • 来自专栏java思维导图

    《Spring设计思想》AOP设计思想与原理

    Spring AOP的工作原理 1. Java程序运行在JVM中的特征 当我们在某个类Foo中写好了一个main()方法,然后执行java Foo,你的Java程序之旅就开启了,如下: ? 弄清楚这个问题,你不得不了解设计模式中的代理模式了。下面我们先来了解一下引入了代理模式的Java程序执行流是什么样子的。 3. 关于代理模式 代理模式属于Java代码中经常用到的、也是比较重要的设计模式。代理模式可以为某些对象除了实现本身的功能外,提供一些额外的功能,大致作用如下图所示: ? Spring AOP的工作原理 前面已经介绍了AOP编程首先要选择它感兴趣的连接点----即切入点(Point cut),那么,AOP能对切入点做什么样的编程呢?

    1.3K10发布于 2018-12-24
  • 来自专栏JavaEdge

    Guava Cache缓存设计原理

    WeakReference引用内 缓存的Value被封装在WeakReference或SoftReference引用内 统计缓存使用过程中命中率、异常率、未命中率等统计数据 Guava Cache的架构设计源于 "; } }); System.out.println(result); } 总结 Guava Cache基于ConcurrentHashMap的优秀设计借鉴 write链和access链的设计,能更灵活、高效的实现多种类型的缓存清理策略,包括基于容量的清理、基于时间的清理、基于引用的清理等。

    1.3K20发布于 2021-02-23
  • 来自专栏华章科技

    MapReduce 原理设计思想

    2.构建抽象模型-Map和Reduce 借鉴函数式设计语言Lisp的设计思想 —函数式程序设计(functional programming)语言Lisp是一种列表处理 语言(List processing ),是一种应用于人工智能处理的符号式语言,由MIT的人工智能专家、图灵奖获得者John McCarthy于1958年设计发明。 —Lisp定义了可对列表元素进行整体处理的各种操作,如: 如:(add #(1 2 3 4) #(4 3 2 1)) 将产生结果: #(5 5 5 5) —Lisp中也提供了类似于Map和Reduce 的操作 如: (map ‘vector #+ #(1 2 3 4 5) #(10 11 12 13 14)) 通过定义加法map运算将2个向量相加产生结果#(11 13 15 17 19 = (String)itr.next(); System.out.print(word+ “: ”+ (Integer)ht.get(word)+“; ”); } 输出:good: 5;

    1.6K20发布于 2018-08-16
  • 来自专栏编程一生

    RabbitMQ设计原理解析

    为什么使用MQ 流量削峰 这个跟很火的小吃店门口的排队原理是一样的。实时调用就好像是大家蜂拥而至,如果系统处理能力不够,就会让店家手忙脚乱,说不定会在冰激凌上浇上可乐。 RocketMQ是国货,用Java语言实现,在设计时参考了Kafka,单机吞吐量达到十万级别,分布式架构可用性高,消息可以0丢失,扩展性高。 这是因为Kafka的设计上消息只用存一份,通过游标,发送后不立即删除消息。多个消费者组可以互不影响的消费。这是Kafka的一大改进。 内部原理 大家面试时有没有被问过:Kafka怎么保证消息能且仅能收到一次?这是个埋坑题,是与面试官斗智斗勇的开始。

    81520发布于 2021-10-29
  • 来自专栏硬件大熊

    NFC天线工作原理设计

    继公众号之前推送过的《NFC芯片选型及基本电路框架》之后,本篇文字聊聊NFC天线工作原理及其设计,由于篇幅有限,该内容分两篇文字进行阐述 传统天线通过向空中辐射电磁波来传输电磁信号,为了能把电磁信号辐射到空中 使用仿真软件,可得天线各参数如下的关系: 对于整体NFC设计,为考量EMC滤波电路、匹配电路的设计,我们需要确定天线的等效电感、电阻、电容、Q值。对于参数的测量可借助网络分析仪—— 1. 必须从自谐振频率转化为工作频率): 天线等效总电阻: 最终简化的天线等效谐振电路为如下模型: 由此计算出: 根据如上4个步骤,天线的参数(Rpant、Cant、Lant)已经测试、计算完毕,该等效的电路参数将用于设计匹配电路 关于匹配电路的设计,我们下一篇作讲解

    6.1K31编辑于 2022-06-23
  • 来自专栏后端进阶

    图解 DataX 核心设计原理

    基于我在项目中对 DataX 的实践过程,给大家分享我所理解的 DataX 核心设计原理设计理念 异构数据源离线同步是将源端数据同步到目的端,但是端与端的数据源类型种类繁多,在没有 DataX 之前,端与端的链路将组成一个复杂的网状结构,非常零散无法将同步核心逻辑抽象出来,DataX 的理念就是作为一个同步核心载体连接连接各类数据源 架构设计 用过 IDEA 的小伙都知道,IDEA 有很多非常棒的插件,用户可根据自身编程需求,下载相关的插件,DataX 也是使用这种可插拔的设计,采用了 Framework + Plugin 的架构设计 5、Transformer DataX 的 transformer 模式同时还提供了强大的数据转换功能,DataX 默认提供了丰富的数据转换实现类,用户还可以根据项目自身需求,扩展数据转换。 ? 举个公平分配策略的例子: 假设 A 库有表 0、1、2,B 库上有表 3、4,C 库上有表 5、6、7,如果此时有 4 个 TaskGroup,则 assign 后的结果为: taskGroup-0:

    5.3K20发布于 2020-09-08
  • 来自专栏中间件兴趣圈

    Sentinel 集群限流设计原理

    3、探究集群限流实现原理 ---- 在探究集群限流实现原理之前先来回顾一下单机限流的执行流程图。 ? 接下来将分别从 DefaultClusterTokenClient、DefaultTokenService 分别探究集群限流相关的实现原理与细节,更好的指导我们如何使用集群限流功能。 image.png Step5:当前许可数不足的情况,并且该请求为高优先级的处理逻辑: 获取当前等待的TPS(即1s为维度,当前等待的请求数量) 如果当前等待的TPS低于可借用未来窗口的许可阔值时,可通过 集群限流的基本实现原理就介绍到这里了。 4、总结 ---- 集群限流的基本原理接介绍到这里了,与单机限流模式最大的区别就是集群限流模式的需要引入 TokenService,提供许可的发放服务,该服务可以嵌入应用节点,也可以独立于应用之外。

    5.6K52发布于 2020-05-07
  • 来自专栏AI研习社

    权益设计原理的证明

    Casper 共识也有原理基础,虽然到目前为止,这一原理基础比较长篇累牍。 就权益证明协议存在的原因以及如何设计的问题而言,我、Vlad 、Dominic 和其他人各持己见,但这里我想解释一下我的想法来源。 我将列出一些观点并得出结论。 然而,(1)通过灵巧的协议设计,他们凭借这种操纵赚得额外利润的能力会尽可能地受到限制,更为重要的是(2)如果他们试图阻止新的验证人加入 或开展 51% 的攻击,那么社区就可以简单地协调硬分叉,并删除违规验证人的存款 一次成功的攻击可能花费 5 千万美元,但是清除这次攻击的过程却不会那么繁琐。 我们是否给予 ETH 每年 1% 的发行利率,并获得 5 千万美元的成本来强制实施补救性硬分叉或零年发行率,并获得 500 万美元的成本来强制实施补救性硬分叉?

    66920发布于 2018-09-25
  • 来自专栏Spring Cloud设计原理

    Spring Cloud Hystrix设计原理

    Hystrix虽然官方社区不再维护,但是其客户端熔断保护,断路器设计理念,有非常高的学习价值,为我们在服务保护的设计上,提供了非常好的设计思路;除了官方不再维护之外,hystrix目前对于一般的分布式服务调度 Hystrix工作原理 如下图所示,Hystrix的工作流程上大概会有如下9个步骤,下文将详细介绍每个流程: ? 断路器工作原理 ? ---- 5. Spring Cloud 下 Hystrix使用要注意的问题 Hystrix配置无法动态调节生效。 本文不是介绍sentinel的重点,关于sentinel的设计原理和使用方式,将另起博文介绍,有兴趣的同学可以先关注下我。

    1.3K30发布于 2019-05-25
领券