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

    EVM 设计原理

    EVM 设计原理 以太坊可以抽象的分成两部分,一部分是状态,另外一部分是用于改变状态的 EVM。 data: 一个不限制大小的字节数组,用来指定消息调用的输入数据 请注意,这是最开始的设计思路,后面经过诸多的 EIP 后,有些改变,更详细的内容可见 理解交易[12]。

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

    Kafka 设计原理

    本文主要简单介绍Kafka的设计原理。 group Zookeeper:保存着集群broker、topic、partition等meta数据;另外,还负责broker故障发现,partition leader选举,负载均衡等功能 三、Kafka设计原理 如果有partition或者Consumer的增减,为了保证均衡消费,需要实现Consumer Rebalance,分配算法如下: broker对Consumer设计原理: 对于每个Consumer 3.4 Replication设计 作为消息中间件,数据的可靠性以及系统的可用性,必然依赖数据副本的设计。 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
  • 来自专栏JavaEdge

    Ehcache缓存设计原理

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

    88030发布于 2021-02-23
  • 来自专栏一枝花算不算浪漫的专栏

    JetCache设计原理浅析

    1、目录 JetCache介绍 上帝视角:如何设计一个缓存组件? SpringCache VS JetCache JetCache基本使用 JetCache部分源码分析 2、JetCache介绍 3、如何设计一个缓存组件? #- redis://127.0.0.1:7001 #- redis://127.0.0.1:7002 5.2、JetCache使用示例 6、JetCache原理 Cache:缓存接口,定义基本方法 AbstractCache:抽象类,缓存接口的继承者,提供基本实现,具体实现交由不同的子类 LinkedHashMapCache:基于LinkedHashMap设计的简易内存缓存 CaffeineCache:基于Caffeine工具设计的内存缓存 RedisCache:Redis实现,使用Jedis客户端 RedisLettuceCache:Redis实现,使用Lettuce客户端

    2K10编辑于 2022-09-28
  • 来自专栏Spark学习技巧

    HBase原理设计

    所以,HBase在表的设计上会有很严格的要求。 原理 前面介绍了HBase的一般架构,我们知道了HBase有ZK、Master和RS等组成,本节我们来介绍下HBase的基本原理,从数据访问、RS路由到RS内部缓存、数据存储和刷写再到region的合并和拆分等等功能 HBase设计 HBase是一个分布式数据库,其性能的好坏主要取决于内部表的设计和资源的分配是否合理。 列簇设计 HBase的表设计时,根据不同需求有不同选择,需要做在线查询的数据表,尽量不要设计多个列簇,我们知道,不同的列簇在存储上是被分开的,多列簇设计会造成在数据查询的时候读取更多的文件,从而消耗更多的 Region设计 一般地,region不宜设计成很大,除非应用对阶段性性能要求很多,但是在将来运行一段时间可以接受停服处理。

    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逻辑架构设计

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

    Redis缓存设计原理

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

    46620发布于 2021-02-23
  • 来自专栏JavaEdge

    Ehcache缓存设计原理

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

    1.2K00发布于 2021-02-03
  • 来自专栏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年设计发明。 关键思想:为大数据处理过程中的两个主要处理操作提供一种抽象机制 MapReduce中的Map和Reduce操作的抽象描述 MapReduce借鉴了函数式程序设计语言Lisp中的思想,定义了如下的Map和 4.MapReduce的主要设计思想和特征 1、向“外”横向扩展,而非向“上”纵向扩展(Scale “out", not “up”) 即MapReduce集群的构筑选用价格便宜、易于扩展的大量低端商用服务器 MapReduce设计为面向大数据集批处理的并行计算系统,所有计算都被组织成很长的流式操作,以便能利用分布在集群中大量节点上磁盘集合的高传输带宽。

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

    RabbitMQ设计原理解析

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

    81120发布于 2021-10-29
  • 来自专栏后端进阶

    图解 DataX 核心设计原理

    基于我在项目中对 DataX 的实践过程,给大家分享我所理解的 DataX 核心设计原理设计理念 异构数据源离线同步是将源端数据同步到目的端,但是端与端的数据源类型种类繁多,在没有 DataX 之前,端与端的链路将组成一个复杂的网状结构,非常零散无法将同步核心逻辑抽象出来,DataX 的理念就是作为一个同步核心载体连接连接各类数据源 架构设计 用过 IDEA 的小伙都知道,IDEA 有很多非常棒的插件,用户可根据自身编程需求,下载相关的插件,DataX 也是使用这种可插拔的设计,采用了 Framework + Plugin 的架构设计

    5.2K20发布于 2020-09-08
  • 来自专栏硬件大熊

    NFC天线工作原理设计

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

    6.1K31编辑于 2022-06-23
  • 来自专栏中间件兴趣圈

    Sentinel 集群限流设计原理

    3、探究集群限流实现原理 ---- 在探究集群限流实现原理之前先来回顾一下单机限流的执行流程图。 ? 3.2 集群限流模式实现原理 image.png FlowSlow FlowSlot 的核心处理逻辑主要是调用 FlowRuleChecker 的 canPassCheck 方法,正如上面看到的一样,根据配置规则 接下来将分别从 DefaultClusterTokenClient、DefaultTokenService 分别探究集群限流相关的实现原理与细节,更好的指导我们如何使用集群限流功能。 集群限流的基本实现原理就介绍到这里了。 4、总结 ---- 集群限流的基本原理接介绍到这里了,与单机限流模式最大的区别就是集群限流模式的需要引入 TokenService,提供许可的发放服务,该服务可以嵌入应用节点,也可以独立于应用之外。

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

    权益设计原理的证明

    这些加密经济学网络有许多特点——基于 ASIC 的工作量证明,基于 GPU 的工作量证明,朴素权益证明,权益委托证明,可期的 Casper 权益证明——而且不可避免的是每种特点都有其各自底层的原理。 中本聪协议、社会共识、股东投票共识,每种原理都引出其各自的结论集和就各自而言意义非凡的价值体系——尽管当把它们作比较时肯定会受到批评。 Casper 共识也有原理基础,虽然到目前为止,这一原理基础比较长篇累牍。 就权益证明协议存在的原因以及如何设计的问题而言,我、Vlad 、Dominic 和其他人各持己见,但这里我想解释一下我的想法来源。 我将列出一些观点并得出结论。 然而,(1)通过灵巧的协议设计,他们凭借这种操纵赚得额外利润的能力会尽可能地受到限制,更为重要的是(2)如果他们试图阻止新的验证人加入 或开展 51% 的攻击,那么社区就可以简单地协调硬分叉,并删除违规验证人的存款

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

    Spring Cloud Hystrix设计原理

    作为这种特征的引申,Netflix公司在分布式微服务架构的践行下,将其保护服务的稳定性而设计的客户端熔断和断路器的解决方案,称之为Hystrix。 ? Hystrix虽然官方社区不再维护,但是其客户端熔断保护,断路器设计理念,有非常高的学习价值,为我们在服务保护的设计上,提供了非常好的设计思路;除了官方不再维护之外,hystrix目前对于一般的分布式服务调度 Hystrix工作原理 如下图所示,Hystrix的工作流程上大概会有如下9个步骤,下文将详细介绍每个流程: ? 断路器工作原理 ? 本文不是介绍sentinel的重点,关于sentinel的设计原理和使用方式,将另起博文介绍,有兴趣的同学可以先关注下我。

    1.3K30发布于 2019-05-25
  • 来自专栏大数据技术博文

    Kafka概述与设计原理

    Kafka背景介绍 Kafka基本架构组件 Kafka设计原理 Kafka用途 一:Kafka背景介绍 Kafka是一种高吞吐量的,分布式,快速、可扩展的,分区和可复制,基于发布/订阅模式的消息系统,由 kafka的设计目的是提供一个发布订阅解决方案,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 Kafka分布式发布订阅设计图 二 :Kafka基本架构组件 1. Topic : topic[主题,类别,话题],我们可以理解为是一种队列,每条发送消息都从属于一种类别,这种类别在kafka中被设计为一个topic,比如:用户信息类的消息的topic,我们定义为user-topic 它们之间的关系如下图所示: 三 :Kafka设计原理 We designed Kafka to be able to act as a unified platform for handling all

    60240编辑于 2022-04-18
  • 来自专栏Spring Cloud设计原理

    Spring Cloud OkHttp设计原理

    Spring Cloud 框架最底层核心的组件就是服务调用方式,一般Spring Cloud框架采用的是HTTP的调用框架,本文将在 Spring Cloud应用场景下,介绍组件OkHttp3的设计原理 至于feign的工作原理,请参考我的另一篇博文: Spring Cloud Feign设计原理. 至于Ribbon的工作原理,请参考我的另一篇博文: Spring Cloud Ribbon设计原理. 本文将深入OkHttp的底层设计原理,通过分析整理出它的最佳打开方式。 2. 什么是OkHttp,它有什么特点? Okhttp3的设计原理 本章节将详细介绍OkHttp3底层的设计原理,并结合设计原理,总结在使用过程中应当注意的事项。

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