zookeeper 是 kafka 不可分割的一部分,可见其重要程度,所以我们有必要了解一下 zookeeper 在 kafka 中的具体工作内容。 而且,这也是面试时经常问的。...记录 ISR ISR(in-sync replica) 是 partition 的一组同步集合,就是所有 follower 里面同步最积极的那部分。...一条消息只有被 ISR 中的成员都接收到,才被视为“已同步”状态。 只有处于 ISR 集合中的副本才有资格被选举为 leader。...zookeeper 记录着 ISR 的信息,而且是实时更新的,只要发现其中有成员不正常,马上移除。...2. consumer offset kafka 老版本中,consumer 的消费偏移量是默认存储在 zookeeper 中的。
而资源分配的体现就要用到一个抽象概念“容器”(Container)表示,Container将内存、 CPU、磁盘、网络等资源封装在一起,这样可以起到限定资源边界的作用。...比如给你一个Container的资源,里面包含3个G的内存,1G硬盘。当销毁 你的Container时,连带的内存,硬盘都没有了。
当应用程序对集群资源需求时,ResourceManager是Yarn集群主控节点,负责协调和管理整个集群(所有NodeManager)的资源。
NodeManager:马克-to-win @ 马克java社区:NodeManager管理一个YARN集群中的每一个节点。比如监视资源使用情况( CPU,内存,硬盘,网络),跟踪节点健康等。
ApplicationMaster:马 克-to-win @ 马克java社区:想了解ApplicationMaster,我们需要了解一下它工作的过程。...用户向YARN集群提交应用程序时:(包含ApplicationMaster程序,ApplicationMaster启动命令,用户自己的程序)后, ApplicationMaster向资源调度器申请执行任务的资源容器...Container,运行用户自己的程序任务job(我们可以用浏览器看yarn 里的job进展),监控整个任务的执行,跟踪整个任务的状态,处理任务失败以异常情况。
trim()的作用是去掉字符串两端的多余的空格,注意,是两端的空格,且无论两端的空格有多少个都会去掉,当然中间的那些空格不会被去掉,如: String s = " a s f g "; String...s1 = s.trim(); 那么s1就是"a s f g",可见,这和上面所说的是一样的。...trim()不仅可以去掉空格,还能去掉其他一些多余的符号,这些符号分别是: \t \n \v \f \r \x0085 \x00a0 ?...\u2028 \u2029 翻译过来分别是:水平制表符,换行符,垂直制表符,换页符,回车,后面的这几个除了问号外,其他的都是转义符形式写法。
在Linux内核中,进程管理涉及到许多复杂的数据结构和机制,其中active_mm是与内存管理相关的一个关键概念。理解active_mm需要先了解与之相关的一些基本内核结构和概念。...active_mm active_mm字段存在于Linux内核的task_struct结构体中,用于处理内核线程的内存管理问题。...active_mm 的用途 active_mm的主要用途是确保内核线程能够正常运行,即使它们没有自己的mm_struct。...以下是一些具体场景和用途: 上下文切换: 当内核从一个进程切换到另一个进程时,会保存和恢复相应的mm_struct。...总结 在Linux内核中,active_mm是一个重要的机制,确保内核线程能够正常运行和管理内存,即使它们没有自己的mm_struct。
URL 是我们进行网络活动中很重要的概念,一个URL中可以包含域名,路径和参数等, 一个典型的 URL https://www.example.com/fruits.html?...google#apple 这其中包含了 协议: https 域名: www.example.com 路径文件名: fruits.html 参数: from=google 片段: apple #片段是什么 URL...中的 # 指的是一个片段 URL 片段 往往用来告知浏览器约定的一个滑动位置 如果一个 URL 指向了一个文档,那么片段指向的就是文档的某个内容区间。...作用范围 会被本地浏览器处理 不会被服务器端接收处理 所以 www.example.com/fruits.html#apple www.example.com/fruits.html#orange 对应的情况是...# 还能怎么用 考虑到在浏览器可以获取片段信息,我们可以利用 Javascript做一些事情 网页应用可以使用片段来实现参数控制,做到不刷新页面,展示不同的内容 如下为 JavaScript获取片段的示例代码
题目描述 这是 LeetCode 上的「11. 盛最多水的容器」,难度为 Medium。 给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。...然后再记录枚举过程中的最大面积即可: class Solution { public int maxArea(int[] height) { int n = height.length...首先无论是 i 指针往右移动还是 j 指针往左移动都会导致 w 变小,所以想要能够枚举到更大的面积,我们应该让 h 在指针移动后变大。...不妨假设当前情况是 height[i] 的高度为 height[i]),然后分情况讨论: 让 i 和 j 两者高度小的指针移动,即 i 往右移动: 移动后,i 指针对应的高度变小...复杂度为 空间复杂度: 最后 这是我们「刷穿 LeetCode」系列文章的第 No.11 篇,系列开始于 2021/01/01,截止于起始日 LeetCode 上共有 1916 道题目,部分是有锁题
当我们在传统格式的 csproj 项目文件中安装 NuGet 包后,有时会在项目文件中发现空的 NuGetPackageImportStamp 节点。...空的 NuGetPackageImportStamp 节点只会出现在传统的 csproj 文件中。...NuGetPackageImportStamp 在传统 csproj 文件中是这样的: 1 2 3 4 5 6 7 是两个文件的变化,一个是 packages.config 文件。 1 2 3 4 的 Visual Studio 版本中,会随机写下一段字符串;在新的版本中,它是个空字符串。
很多从事前端工作的人都知道,中央事件总线可以作为简单的组件进行数据之间的传递,从而解决组件与组件之间的通信难题。...如果将其封装成一个vue的插件,就可以在所有的组件之间任意使用而不需要导入事件总线了,是不是很方便呢?那么在vue中如何使用中央事件总线?一起来看看下文是如何介绍的。...在vue中如何使用中央事件总线?...完成之后就可以实现最简单的实际应用问题。需要注意的是,事件总线需要手动清除,否则就会一直存在,原本只需要执行一次获取的操作会存在多次操作,这个问题对于项目开发来说是比较严重的。 vue是做什么的?...上文中为大家介绍了在vue中如何使用中央事件总线的相关问题,希望能够给各位前端及开发人士提供参考。
volatile关键字到底是干什么的?(新手可略过) 我们先简要了解一下java虚拟机的内存模型。...如果一个变量有volatile(易变的意思)修饰词,这意味着当有一个线程修改了这个变量,系 统会把工作内存当中的变化强制立刻反应在主存当中。其他线程要想读这个变量,也会被强迫读变化了的新值。...volatile其实就保证了此变量无论怎么变, 任何线程看都是最新的。当两个线程,根据一个共同的信号,做互动时,一定要加volatile,保证这个信号是最新的。...volatile,有人说能够控制程序的语句有序性,但jvm并不能保证在所有的平台上都能够做到这一点,所以我的书中 就不赘述了。...既然volatile控制程序语句的有序性不能保证所有的平台都正确运行,基于它的技术“双重检查锁”创建单态对象也就变得不可靠了,本书也 就不覆盖了。
注意力是指人的心理活动指向和集中于某种事物的能力。比如说,你将很长的一句话人工从一种语言翻译到另一种语言,在任何时候,你最关注的都是当时正在翻译的词或短语,与它在句子中的位置无关。...如果不引入注意力机制,模型只能以单个隐藏状态单元,如下图中的S,去捕获整个输入序列的本质信息。这种方法在实际应用中效果很差,而且输入序列越长,这个问题就越糟糕。 ?...图1:仅用单个S单元连接的序列转换模型 注意力机制在解码器(Decoder)运行的每个阶段中,通过回顾输入序列,来增强该模型效果。...图2:引入注意力机制的序列转换模型 注意力机制的引入增加了网络结构的复杂性,其作为标准训练模型时的一部分,通过反向传播进行学习。这在网络中添加模块就能实现,不需要定义函数等操作。...下图的例子,是将英语翻译成法语。在输出翻译的过程中,你可以看到该网络“注意”到输入序列的不同部分。 ?
6.总结性深一层次综合剖析接口概念【新手可忽略不影响继续学习】 通过以上的学习, 我们知道,所有定义在接口中的常量都默认为public、static和final。...所有定义在接口中的方法默认为public和abstract。马克-to-win:当时Sun公司为什么要把java的接口设计发明成这样?
此处有一个例外,由于CSS有很多属性,也许有些属性是你完全不知道的,那么你用这种注释是正常的。...或者也许这段注释是指某行已经被删除的代码或引入其他文件中的代码?若想要彻底弄清楚这个注释的作用,唯一的方法就是翻遍整个git记录了吧。...最棒的是,因为没有大段大段的文本去解释bug,所以它并不会打乱代码逻辑,同时也告诉我们哪里可以获取更多信息。若使用项目与事务跟踪工具如JIRA,那么可以直接在注释中与编号关联起来。...当然,不是每个打补丁的代码都要这样注释,但若bug不是那么容易发现,而且与浏览器怪癖有关,那么还是这样注释吧。 好:指令式注释 一些工具如KSS , 会在CSS文件中创建一些样式规范。...而我贴出Robert Martin关于注释的话时,似乎应该解释一下,但我没有那么做。因为我认为这是一句容易理解的话,若你还在代码中到处写注释,那么请先思考是否合理。
又因为我们在老的业务里给的是12位,出现过存储的字段过长而导致未能存储的问题。但是解决这个问题的方法是在业务逻辑层做check 然后进行截取(目前我的做法)。因为本来超过了就是不对的,所以这样处理。...于是又讨论到了varchar在MySQL中的存储方式。,以证明增加长度所占用的空间并不大。那么我们就看看varchar在mysql中到底是如何存储的。 ?...varchar类型在mysql中是如何定义的? 先看看官方文档: ? ?...为此相比CHAR字符数据而言,其能够比固定长度类型占用更少的存储空间。不过在实际工作中,由于某系特殊的原因,会在这里设置例外。...所以没能验证成功,本以为是因为innoDB 中索引的字段长度不能超过767个字节,如果是按照预先给的长度的话肯定会创建失败的。
比如下面是其中一个xx类的规则,它在线上已有的判断逻辑是:>=4时命中拒绝,否则未命中通过。...制定策略方案 制定策略优化的方案是一个分析的过程,确定好之后需将策略用代码在当前离线分析环境下执行。...效果测算 效果测试主要是评估,调整前后策略对于“通过率、逾期率”的变化影响。理论上来说,做规则阈值收紧的D类调优后,通过率和逾期率会同步下降,如何去评估调优后的效果呢?...此外还要注意,如果是日常策略调整(微调),业务上不允许大幅度的下降通过率,这会直接导致业务不稳定;如果是做大规模的收紧调整,通过率下降幅度较大的情况,则需要更详细的效果测算。...按照“其他成本(资金成本、人力成本、投放成本、运营成本、数据成本等)+风险损失成本>=利息+罚息”的公式,如果策略收紧调整后,增加拒绝的客群中,成本总和超过了收益总和,则认为策略是有效的。
在企业中,一个需求从产生到完成生命周期是什么样的。...在实际工作中,项目的根据大小还有背景不同、整个生命周期也会有一些差别。大体分为:计划、设计、开发、测试、维护等步骤,我们就以一个需求的生命周期来分析。...拿到需求后,是要做一个用户相关的系统,我给他起个名字就叫《用户中心》管理系统。需求首先是分析需求,这个系统作为用户管理,其中肯定要有用户的登录、用户添加、用户删除、用户查询等。...测试分为自测和提测,当然对于一些小公司划分的就没有这么细了,都是由于全干工程师一人搞定。代码评审也就是工友们一块审核代码规范,比如你的代码模块拆分,可以增强代码的可维护性。...部署上线一般是项目开发中的最后一步,运维人员会将项目部署到用户可以访问的服务器,正式开始使用。
本篇来介绍下风控中的拒绝回捞策略,内容节选自《100天风控专家》第65期。 1. 什么是拒绝回捞? 拒绝回捞是指 “被拒绝的客户重新通过的过程”。 广义理解上等同于做A类调优,涵盖各类调优方法。...狭义理解上,是决策流程中的一个回捞动作,或者回捞节点,如下图所示。 从图形化更形象的角度解释,相当于在已经策略规则拒绝客户中上再切出一刀进行通过,且通过的大部分需为好客户。 2....1)什么是明显的好客户特征呢? 可以参考白名单的筛选规则,比如,客户是公务员、事业单位或者500强集团企业员工;再比如客户公积金缴存基数大于xxx,等等。...比如下面示例中,被政策和黑名单命中的客户会直接拒绝,不进行任何回捞动作,因为这个两个属于原则性的底线,因此在配置决策流程上需注意不可对此类客户回捞。 2)确定需回捞对象,要对哪些拒绝客户回捞?...这个需要结合业务考虑,比如可以只对信用规则拒绝的客户回捞,也可以只对欺诈规则拒绝客户回捞,或者同时都回捞,不同的回捞对象对应的回捞节点位置不同。 以上来自东哥原创课程中的节选。
如果是中小学这么做挺好的,但是到了大学阶段,这样就有点不负责任了(害人)啊…… 黑板板书单位时间能写多少字,信息密度极低。...大学是锻炼人自主学习的最后4年时光(学士学位),事无巨细的代做,让学生彻底丧失独立思考能力,大学4年,一无所获。 当然还有更烂的,那就是读PPT。 如上都不是指导,而且经过如上方式也就是“学过”。...手把手教,其实就是高级版“代做”而已。 真正能让学生成长的是给定一个好的方向,让学生自己去探索并收获成果,而非带着学生刷题。 其实真正掌握任何一门技术或者科学都是需要实践的,也就是做过。...ROS包管理器是一个非常强大的工具,可以帮助你在ROS系统中轻松地安装、升级和卸载软件包。 使用ROS包管理器的便捷技巧: 使用rosdep命令来安装和更新软件包及其依赖项。...异常处理:代码中的try-except语句使得节点在发生ROS中断时可以正常退出,避免了程序崩溃,体现了哲学中的稳健性和应对突发情况的能力。