标签目录:摩登3风情

摩登3官网注册_万字长文:助你攻破JAVA NIO技术壁垒

本文来源:https://honeypps.com/java/java-nio-quick-start/ 现在使用NIO的场景越来越多,很多网上的技术框架或多或少的使用NIO技术,譬如Tomcat,Jetty。学习和掌握NIO技术已经不是一个JAVA攻城狮的加分技能,而是一个必备技能。 再者现在互联网的面试中上点level的都会涉及一下NIO或者AIO的问题(AIO下次再讲述,本篇主要讲述NIO),掌握好NIO也能帮助你获得一份较好的offer。驱使博主写这篇文章的关键是网上关于NIO的文章并不是很多,而且案例较少,针对这个特性,本文主要通过实际案例主要讲述NIO的用法,每个案例都经过实际检验。博主通过自己的理解以及一些案例希望能给各位在学习NIO之时多一份参考。博主能力有限,文中有不足之处欢迎之处。 概述 NIO主要有三大核心部分:Channel(通道),Buffer(缓冲区), Selector。传统IO基于字节流和字符流进行操作,而NIO基于Channel和Buffer(缓冲区)进行操作,数据总是从通道读取到缓冲区中,或者从缓冲区写入到通道中。Selector(选择区)用于监听多个通道的事件(比如:连接打开,数据到达)。因此,单个线程可以监听多个数据通道。 NIO和传统IO(一下简称IO)之间第一个最大的区别是,IO是面向流的,NIO是面向缓冲区的。Java IO面向流意味着每次从流中读一个或多个字节,直至读取所有字节,它们没有被缓存在任何地方。此外,它不能前后移动流中的数据。如果需要前后移动从流中读取的数据,需要先将它缓存到一个缓冲区。NIO的缓冲导向方法略有不同。数据读取到一个它稍后处理的缓冲区,需要时可在缓冲区中前后移动。这就增加了处理过程中的灵活性。但是,还需要检查是否该缓冲区中包含所有您需要处理的数据。而且,需确保当更多的数据读入缓冲区时,不要覆盖缓冲区里尚未处理的数据。 IO的各种流是阻塞的。这意味着,当一个线程调用read() 或 write()时,该线程被阻塞,直到有一些数据被读取,或数据完全写入。该线程在此期间不能再干任何事情了。NIO的非阻塞模式,使一个线程从某通道发送请求读取数据,但是它仅能得到目前可用的数据,如果目前没有数据可用时,就什么都不会获取。而不是保持线程阻塞,所以直至数据变的可以读取之前,该线程可以继续做其他的事情。非阻塞写也是如此。一个线程请求写入一些数据到某通道,但不需要等待它完全写入,这个线程同时可以去做别的事情。线程通常将非阻塞IO的空闲时间用于在其它通道上执行IO操作,所以一个单独的线程现在可以管理多个输入和输出通道(channel)。 Channel 首先说一下Channel,国内大多翻译成“通道”。Channel和IO中的Stream(流)是差不多一个等级的。只不过Stream是单向的,譬如:InputStream, OutputStream.而Channel是双向的,既可以用来进行读操作,又可以用来进行写操作。 NIO中的Channel的主要实现有: FileChannel DatagramChannel SocketChannel ServerSocketChannel 这里看名字就可以猜出个所以然来:分别可以对应文件IO、UDP和TCP(Server和Client)。下面演示的案例基本上就是围绕这4个类型的Channel进行陈述的。 Buffer NIO中的关键Buffer实现有:ByteBuffer, CharBuffer, DoubleBuffer, FloatBuffer, IntBuffer, LongBuffer, ShortBuffer,分别对应基本数据类型: byte, char, double, float, int, long, short。当然NIO中还有MappedByteBuffer, HeapByteBuffer, DirectByteBuffer等这里先不进行陈述。 Selector Selector运行单线程处理多个Channel,如果你的应用打开了多个通道,但每个连接的流量都很低,使用Selector就会很方便。例如在一个聊天服务器中。要使用Selector, 得向Selector注册Channel,然后调用它的select()方法。这个方法会一直阻塞到某个注册的通道有事件就绪。一旦这个方法返回,线程就可以处理这些事件,事件的例子有如新的连接进来、数据接收等。 FileChannel 看完上面的陈述,对于第一次接触NIO的同学来说云里雾里,只说了一些概念,也没记住什么,更别说怎么用了。这里开始通过传统IO以及更改后的NIO来做对比,以更形象的突出NIO的用法,进而使你对NIO有一点点的了解。 传统IO vs NIO 首先,案例1是采用FileInputStream读取文件内容的: public static void method2(){ InputStream in = null; try{ in = new BufferedInputStream(new FileInputStream("src/nomal_io.txt")); byte [] buf = new byte[1024]; int bytesRead = in.read(buf); while(bytesRead != -1) { for(int i=0;i System.out.print((char)buf[i]); bytesRead = in.read(buf); } }catch (IOException e) { e.printStackTrace(); }finally{ try{ if(in != null){ in.close(); } }catch (IOException e){ e.printStackTrace(); } } } 输出结果:(略) 案例是对应的NIO(这里通过RandomAccessFile进行操作,当然也可以通过FileInputStream.getChannel()进行操作): public static void method1(){ RandomAccessFile aFile = null; try{ aFile = new RandomAccessFile("src/nio.txt","rw"); FileChannel fileChannel = aFile.getChannel(); ByteBuffer…

摩登3主管554258:_精讲MySQL事务日志:redo log 和 undo log

来源:https://blog.csdn.net/demonson/article/details/104369733 innodb事务日志包括redo log和undo log。redo log是重做日志,提供前滚操作,undo log是回滚日志,提供回滚操作。 undo log不是redo log的逆向过程,其实它们都算是用来恢复的日志: 1.redo log通常是物理日志,记录的是数据页的物理修改,而不是某一行或某几行修改成怎样怎样,它用来恢复提交后的物理数据页(恢复数据页,且只能恢复到最后一次提交的位置)。 2.undo用来回滚行记录到某个版本。undo log一般是逻辑日志,根据每行记录进行记录。 1.redo log 1.1 redo log和二进制日志的区别 二进制日志相关内容,参考:MariaDB/MySQL的二进制日志。 redo log不是二进制日志。虽然二进制日志中也记录了innodb表的很多操作, 也能实现重做的功能,但是它们之间有很大区别。 二进制日志是在 存储引擎的上层产生的,不管是什么存储引擎,对数据库进行了修改都会产生二进制日志。而redo log是innodb层产生的,只记录该存储引擎中表的修改。 并且二进制日志先于redo log被记录。具体的见后文group commit小结。 二进制日志记录操作的方法是逻辑性的语句。即便它是基于行格式的记录方式,其本质也还是逻辑的SQL设置,如该行记录的每列的值是多少。而redo log是在物理格式上的日志,它记录的是数据库中每个页的修改。 二进制日志只在每次事务提交的时候一次性写入缓存中的日志”文件”(对于非事务表的操作,则是每次执行语句成功后就直接写入)。而redo log在数据准备修改前写入缓存中的redo log中,然后才对缓存中的数据执行修改操作;而且保证在发出事务提交指令时,先向缓存中的redo log写入日志,写入完成后才执行提交动作。 因为二进制日志只在提交的时候一次性写入,所以二进制日志中的记录方式和提交顺序有关,且一次提交对应一次记录。而redo log中是记录的物理页的修改,redo log文件中同一个事务可能多次记录,最后一个提交的事务记录会覆盖所有未提交的事务记录。例如事务T1,可能在redo log中记录了 T1-1,T1-2,T1-3,T1* 共4个操作,其中 T1* 表示最后提交时的日志记录,所以对应的数据页最终状态是 T1* 对应的操作结果。而且redo log是并发写入的,不同事务之间的不同版本的记录会穿插写入到redo log文件中,例如可能redo log的记录方式如下:T1-1,T1-2,T2-1,T2-2,T2*,T1-3,T1* 。 事务日志记录的是物理页的情况,它具有幂等性,因此记录日志的方式极其简练。幂等性的意思是多次操作前后状态是一样的,例如新插入一行后又删除该行,前后状态没有变化。而二进制日志记录的是所有影响数据的操作,记录的内容较多。例如插入一行记录一次,删除该行又记录一次。 1.2 redo log的基本概念 redo log包括两部分:一是内存中的日志缓冲(redo log buffer),该部分日志是易失性的;二是磁盘上的重做日志文件(redo log file),该部分日志是持久的。 在概念上,innodb通过 force log at commit机制实现事务的持久性,即在事务提交的时候,必须先将该事务的所有事务日志写入到磁盘上的redo log file和undo log file中进行持久化。 为了确保每次日志都能写入到事务日志文件中,在每次将log buffer中的日志写入日志文件的过程中都会调用一次操作系统的fsync操作(即fsync()系统调用)。因为MariaDB/MySQL是工作在用户空间的,MariaDB/MySQL的log buffer处于用户空间的内存中。要写入到磁盘上的log file中(redo:ib_logfileN文件,undo:share tablespace或.ibd文件),中间还要经过操作系统内核空间的os buffer,调用fsync()的作用就是将OS buffer中的日志刷到磁盘上的log file中。 也就是说,从redo log buffer写日志到磁盘的redo log file中,过程如下:  在此处需要注意一点,一般所说的log file并不是磁盘上的物理日志文件,而是操作系统缓存中的log file,官方手册上的意思也是如此(例如:With a value of 2, the contents of the InnoDB log buffer are written to the log file after each transaction commit and  the log file is flushed to disk approximately once per second)。 但说实话,这不太好理解,既然都称为file了,应该已经属于物理文件了。所以在本文后续内容中都以os buffer或者file system buffer来表示官方手册中所说的Log file,然后log file则表示磁盘上的物理日志文件,即log file on disk。…

摩登3新闻554258:_大厂也在用的6种数据脱敏方案,别做泄密内鬼

最近连着几天晚上在家总是接到一些奇奇怪怪的电话,“哥,你是 xxx 吧,我们这里是 xxx 高端男士私人会所…”,握草,我先是一愣,然后狠狠的骂了回去。一脸傲娇的转过头,面带微笑稍显谄媚:老婆你听我说,我真的啥也没干,你要相信我! 啪~ 搞事情啊 过后揉揉脸细想想,肯定是哪个不道德的网站,又把我的个人信息给卖了,现在的人上网都处于一个裸奔的状态,个人信息已不再属于个人,时下这种事好像也见怪不怪了,不过,出现这种事大多是有内鬼。 停止交易,有内鬼 而作为开发者的我们,能做的就是尽量避免经我们手的用户数据泄露,那今天就来讲讲互联网中内部防止隐私数据泄露的手段-数据脱敏。 什么是数据脱敏 先来看看什么是数据脱敏?数据脱敏也叫数据的去隐私化,在我们给定脱敏规则和策略的情况下,对敏感数据比如 手机号、银行卡号 等信息,进行转换或者修改的一种技术手段,防止敏感数据直接在不可靠的环境下使用。 像政府、医疗行业、金融机构、移动运营商是比较早开始应用数据脱敏的,因为他们所掌握的都是用户最核心的私密数据,如果泄露后果是不可估量的。 数据脱敏的应用在生活中是比较常见的,比如我们在淘宝买东西订单详情中,商家账户信息会被用 * 遮挡,保障了商户隐私不泄露,这就是一种数据脱敏方式。 淘宝详情 数据脱敏又分为静态数据脱敏(SDM)和 动态数据脱敏(DDM): 静态数据脱敏 静态数据脱敏(SDM):适用于将数据抽取出生产环境脱敏后分发至测试、开发、培训、数据分析等场景。 有时我们可能需要将生产环境的数据  copy 到测试、开发库中,以此来排查问题或进行数据分析,但出于安全考虑又不能将敏感数据存储于非生产环境,此时就要把敏感数据从生产环境脱敏完毕之后再在非生产环境使用。 这样脱敏后的数据与生产环境隔离,满足业务需要的同时又保障了生产数据的安全。 数据脱敏过程 如上图所示,将用户的真实 姓名、手机号、身份证、银行卡号 通过 替换、无效化、乱序、对称加密 等方案进行脱敏改造。 动态数据脱敏 动态数据脱敏(DDM):一般用在生产环境,访问敏感数据时实时进行脱敏,因为有时在不同情况下对于同一敏感数据的读取,需要做不同级别的脱敏处理,例如:不同角色、不同权限所执行的脱敏方案会不同。 注意:在抹去数据中的敏感内容同时,也需要保持原有的数据特征、业务规则和数据关联性,保证我们在开发、测试以及数据分析类业务不会受到脱敏的影响,使脱敏前后的数据一致性和有效性。。 数据脱敏方案 数据脱敏系统可以按照不同业务场景自行定义和编写脱敏规则,可以针对库表的某个敏感字段,进行数据的不落地脱敏。 脱敏系统 数据脱敏的方式有很多种,接下来以下图数据为准一个一个的演示每种方案。 原始数据 1、无效化 无效化方案在处理待脱敏的数据时,通过对字段数据值进行 截断、加密、隐藏 等方式让敏感数据脱敏,使其不再具有利用价值。一般采用特殊字符(*等)代替真值,这种隐藏敏感数据的方法简单,但缺点是用户无法得知原数据的格式,如果想要获取完整信息,要让用户授权查询。 截断方式 比如我们将身份证号用 * 替换真实数字就变成了 “220724 ****** 3523″,非常简单。 隐藏方式 2、随机值 随机值替换,字母变为随机字母,数字变为随机数字,文字随机替换文字的方式来改变敏感数据,这种方案的优点在于可以在一定程度上保留原有数据的格式,往往这种方法用户不易察觉的。 我们看到 name 和 idnumber 字段进行了随机化脱敏,而名字姓、氏随机化稍有特殊,需要有对应姓氏字典数据支持。 随机值 3、数据替换 数据替换与前边的无效化方式比较相似,不同的是这里不以特殊字符进行遮挡,而是用一个设定的虚拟值替换真值。比如说我们将手机号统一设置成 “13651300000”。 数据替换 4、对称加密 对称加密是一种特殊的可逆脱敏方法,通过加密密钥和算法对敏感数据进行加密,密文格式与原始数据在逻辑规则上一致,通过密钥解密可以恢复原始数据,要注意的就是密钥的安全性。 对称加密 5、平均值 平均值方案经常用在统计场景,针对数值型数据,我们先计算它们的均值,然后使脱敏后的值在均值附近随机分布,从而保持数据的总和不变。 原始数据 对价格字段 price 做平均值处理后,字段总金额不变,但脱敏后的字段值都在均值 60 附近。 平均值 6、偏移和取整 这种方式通过随机移位改变数字数据,偏移取整在保持了数据的安全性的同时保证了范围的大致真实性,比之前几种方案更接近真实数据,在大数据分析场景中意义比较大。 比如下边的日期字段create_time中 2020-12-08 15:12:25 变为 2018-01-02 15:00:00。 取整 数据脱敏规则在实际应用中往往都是多种方案配合使用,以此来达到更高的安全级别。 总结 无论是静态脱敏还是动态脱敏,其最终都是为了防止组织内部对隐私数据的滥用,防止隐私数据在未经脱敏的情况下从组织流出。所以作为一个程序员不泄露数据是最起码的操守。 长按订阅更多精彩▼ 免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

摩登3内部554258_京东Flink优化与技术实践

分 享嘉宾: 付海涛 京 东 高级技术专家 编辑整理:赵明明 出品平台:DataFunTalk 导读:Flink是目前流式处理领域的热门引擎,具备高吞吐、低延迟的特点,在实时数仓、实时风控、实时推荐等多个场景有着广泛的应用。京东于2018年开始基于Flink+K8s深入打造高性能、稳定、可靠、易用的实时计算平台,支撑了京东内部多条业务线平稳度过618、双11多次大促。本次讲演将分享京东Flink计算平台在容器化实践过程中遇到的问题和方案,在性能、稳定性、易用性等方面对社区版Flink所做的深入的定制和优化,以及未来的展望和规划。主要内容包括: 实时计算演进 Flink容器化实践 Flink优化改进 未来规划 01 实时计算引进 1.发展历程 最初大数据的模式基本都是T+1,但是随着业务发展,对数据实时性的要求越来越高,比如对于一个数据,希望能够在分钟级甚至秒级得到计算结果。京东是在2014年开始基于Storm打造第一代流式计算平台,并在Storm的基础上,做了很多优化改进,比如基于cgroup实现对worker使用资源的隔离、网络传输压缩优化、引入任务粒度toplogy master分担zk压力等。到2016年,Storm已经成为京东内部流式处理的最主要的计算引擎,服务于各个业务线,可以达到比较高的实时性。 随着业务规模的不断扩大,Storm也暴露出许多问题,特别是对于吞吐量巨大、但是对于延迟不是那么敏感的业务场景显得力不从心。于是,京东在2017年引入了Spark Streaming流式计算引擎,用于满足此类场景业务需要。 随着业务的发展,不光是对于数据的延迟有很高要求,同时对于数据的吞吐处理能力也有很高的要求,所以迫切需要一个兼具低延迟和高吞吐能力的计算框架,于是在2018年我们引入了Flink。在Flink社区版的基础上,我们从性能、稳定性、易用性还有功能等方面,都做了一些深入的定制和优化。同时我们基于k8s实现了实时计算全面的容器化,因为容器化有很多的优点,它可以做到很好的资源隔离,同时它有一个很强的自愈能力,另外它很容易实现资源的弹性调度。同时我们基于Flink打造了全新的SQL平台,降低用户开发实时计算应用的门槛。 到2020年,基于Flink和k8s实时计算平台已经做的比较完善了。过去流式处理是我们关注的重点,今年我们也开始逐渐的支持批处理,朝着批流一体的方向演进。另外AI是目前比较火的一个方向,对于AI来说,它的实时化也是一个重要的研究方向。所以我们的实时计算平台将会朝着批流一体和AI的方向进行发展。 2.平台架构 上面是京东实时计算平台JRC的整体架构,整个架构以定制化改造后的Flink为核心,Flink运行在K8S上,状态存储在HDFS集群上,通过Zookeeper保证集群的高可用。支持流式源JDQ(京东基于Kafka深入定制实现的实时数据总线)和Hive,数据主要写入JimDB(京东内存数据库)、ES、Hbase和京东OLAP。计算平台支持SQL和普通JAR包两种方式的作业,具有配置、部署、调试、监控、和日志处理等功能。 3. 业务场景 京东Flink服务于京东内部非常多的业务线,有70多个一级部门在使用,主要应用场景包括实时数仓,实时大屏,实时推荐,实时报表,实时风控和实时监控,当然还有其他一些应用场景。对数据计算实时性有一定要求的场景,一般都会使用Flink进行开发。 4. 业务规模 京东Flink集群目前由5000多台物理机组成,它服务了京东内部70多个一级业务部门,目前线上的流计算任务大概有3000多个,数据的处理能力可以达到每分钟数十亿甚至更高。 02 Flink容器化实践 1.容器化历程 京东从2018年开始进行计算引擎的容器化改造,2019年初已经实现计算单元全部容器化,2020年进行了容器化方案升级,使用native k8s实现计算资源的弹性扩容。容器化改造的好处是提升了资源使用率,提高了研发效率,增强了业务稳定性,减少了运维部署成本。 2.容器化方案 旧的容器化方案是基于k8s Deployment部署的Standalone Session集群,它需要事先预估出集群所需资源,比如需要的JobManager和TaskManager的资源规格和个数。然后JRC平台通过K8S客户端向K8S Master提出请求,创建JobManager的Deployment和TaskManager的Deployment。其中使用ZK保证高可用,使用Hdfs实现状态存储,使用Prometheus实现监控指标的上传,结合Grafana实现指标的直观展示。集群使用ES存储日志,方便日志的查询。 3.容器化遇到的问题&对策 容器化过程中可能遇到很多问题: ① JM/TM故障自动恢复 应用部署在容器中,当应用出现异常时,如何发现应用或者异常的情况呢?比如可以使用存活探针,编写检测脚本定期读取应用的心跳信息。当检测到Pod处于不健康状态时,可以采用k8s的重启机制来重启不健康的容器。 ② 减少Pod异常对业务影响 在k8s中由于硬件异常、资源过载、Pod不健康等问题会导致Pod被驱逐或自动重启,Pod重启时势必会影响到该Pod上分布计算任务的正常运行。这个时候可以考虑采用适当的重启策略、改造内核等方案来减少对任务影响。比如京东实现了JM Failover优化,当Pod异常引起JM Failover时采用的是任务不恢复、重建任务状态恢复的方式,可以一定程度上减少Pod重启对业务带来的影响。 ③ 性能问题 在容器环境下,JVM对cpu和内存的感知会有一定的问题,在Java8版本中,一些参数就要进行显式的设置。对于机器性能差异或热点等问题导致部分Pod计算慢的问题,可以考虑进行针对性优化(比如实现基于负载的数据分发)或处理(比如检测到计算慢的Pod将其驱逐到负载较低的机器)。此外,对于使用容器网络的情况下,可能会带来一定的网络性能损耗,此时可以根据情况选择使用主机网络避免网络虚拟化带来的开销,或者选择更高性能的网络插件。 ④ 重要业务稳定性 如何保证业务的稳定性是一个需要重点考虑的问题。除了保证系统各个环节的高可用外,还可以根据业务情况考虑使用其它合理的方案,例如业务分级管理,独立资源池,多机房互备等。 4.容器化方案升级(Native k8s) 原有容器化方案存在一定的问题: 资源需要提前分配 无法实现资源弹性伸缩 极端场景下Pod不能正常拉起,影响任务恢复 重要业务稳定性 容器化升级的解决方案是采用Native K8s的方式。由JRC平台先向K8S Master发出请求,创建JobManager的Deployment;然后在用户通过Rest服务提交任务后,由JobMaster通过JDResourceManager 向JRC平台发出请求,然后JRC平台向 K8s Master 动态申请资源去创建运行TaskManager 的Pod。 此处,通过引入JRC平台与K8s交互,屏蔽了不同容器平台的差异,解耦了镜像与平台集群配置&逻辑变化。另外,为了兼容原有Slot分配策略,在提交任务时会预估出任务所需资源并一次性申请,之后采用等待一定时间后进行slot分配的方式达到兼容目的。 03 Flink优化改进 主要做了以下四个方面的优化: 性能 稳定性 易用性 功能扩展 下边分几个重要的点进行讲解: 1.预览拓扑 预览拓扑主要是为了解决业务的一些痛点:比如任务调优繁琐、SQL任务无法指定并行度、任务需要的额Slot数不清楚、并行度调整后网络buffer不足等。在Flink任务调试阶段,对任务并行度、Slot分组、Chaining策略的调整是个反复的过程,如果把参数写到命令行就太繁琐了。而基于预览拓扑就可以很方便地对这些参数进行配置。 预览拓扑基本的实现方案如上图:用户提交JAR包后可根据JAR包生成对应的拓扑图,之后用户根据拓扑图可以进行在线调整,最后自动将修改后的配置和原来的JAR包一起进行任务提交。 预览拓扑机制使得不修改程序多次提交任务调优成为可能,但是如何保证前后两次提交生成算子稳定的对应关系呢?解决方案的关键是保证算子有稳定的唯一身份标识,具体算法是:如果算子指定了uidHash就用uidHash,如果算子指定了uid就使用uid,否则就从source开始广度优先遍历,利用算子在graph中的位置生成一个稳定hash值。 2.背压量化 第二个重要的优化是背压量化。 在Flink开发的时候,主要有两种方式: ①通过Flink UI背压面板观察是否背压。使用这种方式在某些场景比较方便,但是它存在几个问题: 在有些场景下采集不到背压 对于历史背压情况无法跟踪 背压影响不直观 大并行度时背压采集压力 ②通过任务背压相关指标进行观察和分析,通过将指标定期采集并存储起来,可以进行实时或历史的背压分析。但是它也有一些不足的地方: 不同Flink版本中指标含义有一定差异 分析背压有一定门槛,需要对于指标含义有深入理解,联合进行分析 背压未量化,对业务影响程度不够直观 京东的解决方案是采集背压发生的位置、时间和次数指标,并对这些指标进行上报存储。同时对量化的背压指标结合运行时拓扑,可以精确反映发生背压现场的情况。 3.HDFS优化 随着业务数量的增多,HDFS集群的压力就会变得很大。这会直接导致RPC响应时间变慢,造成请求堆积,同时大量小文件也会对NN内存造成很大压力。对此京东尝试的解决方案有4方面:限制checkpoint最小间隔,时间最小设置在1min左右可以满足大部分业务需求;进行小文件合并;降低cp创建和删除时的hdfs rpc请求;HDFS集群多ns分散均衡压力。 4.网络分发优化 在实践过程中我们发现,即使业务使用了rebalance并且对任务进行了打散分布,但是由于机器处理能力和负载的差异,会导致任务各个并行度不同程序的背压表现,严重影响了任务的性能。为此,我们开发了基于负载的动态rebalance,在数据进行分发时优先选择下游负载最小的channel进行分发。 经测试,在特定场景下性能能够提升近一倍。 5.ZK防抖 目前一般都是使用ZK集群实现Flink集群的高可用,但是当网络抖动、机器繁忙、ZK集群暂时无响应或运维机器的时候,都可能会导致任务重启。 任务重启的原因是由于在这些场景发生时,Curator会将状态设置为suspended,并且Curator认为suspended为Error状态,从而会释放leader,Flink发现notleader后会revokeLeadership,从而造成任务重启。 一个可行的解决办法是升级Curator的版本,同时将connectionStateErrorPolicy设置为SessionConnetionStateErrorPolicy。 6.日志分离 目前我们一个集群是支持跑多个任务的,这时日志会出现的问题是:任务的日志和集群Framework日志混在一起,同时集群的多个任务日志也是混在一起的,不太方便用户查看日志,快速定位问题。 为了解决这个问题,首先要弄清楚目前Flink加载日志框架的基本机制:为了避免跟业务Job中可能包含的日志框架的依赖、配置文件产生冲突,Flink日志相关类的加载都代理给TaskManager框架的类加载器,也就是Parent Classloader,而框架加载的这些类都是从Flink安装包的lib目录下加载的。对于日志配置文件,Flink通过 JVM 启动参数来指定配置日志配置文件路径。 日志分离的解决方案是:将日志相关jar包加入到各个task自己classloader(user classloader)的类路径中;同时确保使用user classloader加载日志类和加载自己的日志配置; 另外对于使用了Flink框架的类(比如PrintSinkFunction),日志不能做到很好的分离,可以考虑使用logback MDC机制。 04 未来规划…

摩登3平台登录_安森美半导体:工业机器视觉细分领域的隐形冠军

文章来源:中国工控网 众多周知,在汽车半导体领域,安森美半导体堪称大牛,你或许不知道的是,在工业细分领域,安森美半导体亦为翘楚。 在2020年9月25日举行的安森美半导体智能感知策略及方案在线媒体交流会上,中国工控网获悉,据欧洲第三方调研公司Yole Development数据显示,安森美半导体在工业机器视觉领域的市场份额排名第一。 致力于推动高能效电子的创新,安森美半导体提供全面的高能效联接、感知、电源管理、模拟、逻辑、时序、分立及定制器件阵容,使客户能够减少全球的能源使用。安森美半导体市场范围非常广泛,核心市场主要是在汽车、工业、通信、消费类和计算。 “我们最大的市场份额集中在汽车、工业和通信。”说,“这些行业有几个非常重要的共同点,一是对产品性能要求非常高;二是对产品质量和可靠性要求非常高;三是对产品长期供货的持续性要求非常高。而这正是安森美半导体的优势所在。” 智能感知部(ISG)关注三大市场 安森美半导体主要分为三个产品部门,分别是电源方案部(PSG)、先进方案部(ASG)和智能感知部(ISG)。设立于2014年的智能感知部(ISG)年轻且活跃,是安森美半导体目前成长速度最快的部门。 “汽车、机器视觉和边缘人工智能是智能感知部主攻的三个市场方向。”易继辉说,汽车行业虽属传统行业,但近年来得益于电力化、智能化,汽车行业焕发新生。 为了打造更加安全、舒适的智能汽车,各类感知产品应用需求激增。“安森美半导体在汽车智能感知方面成长速度远比汽车行业本身发展速度快得多,就是因为汽车采用新技术的速度非常快。” 同样,在工业4.0时代,历史悠久的机器视觉在自动化、人工智能等技术的加持下不断产生新的发展动力和活力。 特别是在中国市场,越来越多的制造企业考虑采用机器视觉帮助生产线实现检查、测量和自动识别等功能,以提高效率并降低成本,从而实现生产效益最大化。 机器视觉作为新兴技术被寄予厚望,被认为是自动化行业一个具备光明前景的细分市场。 从全球范围看,由于下游消费电子、汽车、半导体、医药等行业规模持续扩大,全球机器视觉市场规模呈快速增长趋势,2017年已突破80亿美元,并预计到2020年全球市场规模将达到125亿美元,2025年将超过192亿美元。 相较于前两者,边缘人工智能属于行业“新兵”,但潜力无限。“边缘人工智能主要是由人工智能、5G、IoT等新技术导入后开发出新的应用,发展非常迅速,经常隔几天、隔几个礼拜,就会有新客户打电话来说他们有新的想法和应用,希望得到帮助。”易继辉举例道。 在上述核心市场,安森美半导体智能感知部都做了长时间的投入和布局,包括图像感知,多光谱、高光谱的感知,激光雷达感知、毫米波雷达感知、传感器融合此类深度感知。这些都在推动人工智能和第四次工业革命的进步。 工业人工智能应用,图像传感器是关键 随着智能制造的逐步深入推进,工业机器视觉、机器人、人工智能技术发展迅速,图像传感器是助其发展的关键技术。 工业人工智能应用的发展给图像传感器带来了更高的挑战,包括推动了后者在全局快门性能、高速拍摄、大分辨率、使用不可见光谱区域和三维体积深度提供的信息进行关键推断,以及神经网络处理的发展。 易继辉举例说,平板检测是整个工业机器视觉行业中,对图像传感器最有挑战性的应用,从1K、2K、4K一直到8K,像素要求逐渐提高。 具体来讲,平板检测过程分两步: 第一步是暗检测,上电前主要检测一些指纹、划痕和其他物理上的问题; 第二步是上电以后,检测发光源。 LED有一个亮板在后面作为发光源,而OLED,特别是AMOLED(Active Matrix OLED)的每个像素都是一个单独发光源,像素和像素之间发光的强度和色彩的均匀度,都要能够很准确地侦测出来,这就对图像传感器的要求非常高。 “过去检测LED面板上的1颗像素,对应需要9颗像素(3×3),OLED则对应需要16颗(4×4),甚至25颗(5×5)像素。平板检测对图像传感器的像素要求越来越高,从4,500万到1.5亿像素,甚至超过2亿像素。”易继辉说。 易继辉以为例,阐述图像传感器技术发展路线图。 首先,图像传感器的分辨率在逐年提升,从过去的200万像素、500万像素、800万像素、1200万像素,逐步升级到现在超过2000万像素。 其次,噪声导数相当于图像质量,在同样大小的尺寸下的图像传感器逐年随着像素的增大,图像质量也在不断提高。 此外,带宽也是逐年提高。比如,一个29×29mm2标准的工业用摄像头,十年前可能只是200万像素,后来逐渐增加到300万、500万、1200万,今年已经能够用到1600万像素。 全局快门,在高速运动下使图像不会有拖影;内校正,像素内的校正,以前都是在系统里通过软件校正,现在直接做到硬件里,像素内部去做图像校正; 工艺节点,从110纳米到65纳米,再到45纳米,甚至更小,充分利用了摩尔定律的优势,即成本、尺寸、耗电量都在逐年下降; 背照式,在同样尺寸下分辨率越来越高,像素尺寸可能越来越小,感光量、感光度,特别是暗光下,性能可能就会降低,背照式就是用来提高感光能力; 堆栈架构,以后就不光是两维空间了,而是三维、堆栈式、两次堆栈、三次堆栈都有可能实现。 以后不光把模拟和数字信号放在第二层,甚至于人工智能一些算法放在第三层里,整个图像传感器就是高智能化的图像传感器。 可以预见,图像传感器的开发正在从仅提供RGB和二维坐标信息转移到新的更丰富的形式。图像传感器可提供更多类型的数据,无论是深度数据,还是增加的光谱信息,以及人工智能合并这些数据集并实现高级决策,从而使系统能够通过新的测量和决策机会提供更快、更准确的结果。 作为工业机器视觉的领导厂商,安森美半导体会以,应对工业人工智能应用挑战并推进智能制造的创新。   免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

摩登3平台注册登录_意法半导体的STM32CubeIDE开发环境新增FreeRTOS™线程感知调试功能

中国,2021年1月4日——意法半导体STM32CubeIDE开发环境新增对FreeRTOS™线程感知调试的支持,让用户能够更快、更轻松地完成项目开发任务。今天的嵌入式系统因集成了网络安全、无线连接、图形用户界面和多工作模式等各种复杂先进功能而变得日益复杂,支持高效RTOS开发有助于解决这个复杂问题。 通过最新的软件更新,意法半导体将2017年收购的Atollic公司的 AtollicTrueStudio®for STM32 软件的主要先进功能成功转入STM32CubeIDE开发环境。STM32CubeIDE进一步扩展了软件功能,并可以直接访问STM32CubeMX配置功能,简化项目设置。用户可以从完整的STM32产品组合中选择目标微控制器,配置GPIO端口、时钟树、外设和引脚分配,快速分析功耗,选择中间件软件栈,并为目标配置生成初始化代码。 除简化微控制器配置外,STM32CubeIDE C / C ++开发平台还能加快代码生成、代码编译和调试,适用于从简单的裸机到多线程OS的各类系统。用户可以查看CPU内核寄存器、存储器和外设寄存器,实时查看变量和串行线数据,并使用构建和堆栈分析器排除故障,掌握项目状态和存储器要求。 STM32Cube IDE是免费使用,基于Eclipse®/ CDT开发框架、GCC工具链和GNU调试器GDB,支持所有的主要的桌面系统。用户可以选用意法半导体的ST-LINK和SEGGER J-Link调试探针,Eclipse®IDE有大量的插件可以选用。

摩登3注册登录网_实至名归!英威腾网能荣获“医疗行业数据中心优秀解决方案奖”

日前,“区块链技术与数字经济发展峰会暨2020智能数据中心建设与运营论坛”在北京盛大召开。英威腾网能荣获“2019-2020年度医疗行业数据中心优秀解决方案奖”。 据悉,本届大会以“‘链’接万物、‘区’动创新、逆势发展、转危为机”为主题,从多角度、多层面解读区块链技术在生态环境、基础设施、金融服务、知识产权、产业升级、数据中心、安全态势、人工智能等方面的应用与发展。同时,表彰在新基建时代中提供优秀的技术、产品、方案的行业厂商,以及在数据中心规划、建设、方案及服务等方面做出突出贡献的行业厂商和运营商。 作为值得信赖的数据中心解决方案提供商,英威腾网能抓紧发展机遇,近年来在数据中心解决方案领域持续加大投入力度,研制开发出了英智、威智、腾智微模块数据中心、高效节能大功率UPS电源系统(该产品荣获2018年度广东省科技进步二等奖,深圳市科技进步一等奖)等核心关键产品及解决方案,并能根据不同侧端用户特点,提供针对性的系统解决方案。 凭借扎实的综合实力,英威腾网能微模块数据中心一体化解决方案在医疗领域得到广泛应用,成功服务于黑龙江省肿瘤医院、珠海市第二人民医院、淮南新华医院、山西肿瘤医院、白水县中医医院、哈尔滨医科大学附属第三医院、云南中医药学院第二附属医院等多家知名医院,为医疗体系推进信息化建设,改善服务流程、改变管理模式、提高患者满意度等提供了科技保障。另外还推出了应对医院数据中心特性的解决方案,为各类精密医疗设备正常运转及医院各项业务的高效开展保驾护航。 获得该奖是对英威腾网能坚持创新工作的莫大鼓舞。英威腾网能将持续创新,砥砺前行,用更优质、高效、智能、环保的产品方案,为客户创造更大价值。

摩登3注册开户_传荣耀与高通恢复合作:可用骁龙5G芯片!

出品 21ic中国电子网 付斌整理 网站:21ic.com 荣耀被华为出售两个月后,浴火重生的荣耀在未来发展上有个更多的选择。 有媒体传出消息显示,因为荣耀不在美国实体清单的范围内,所以在于美国供应链企业合作无需审批。 另外,供应链传出消息显示,目前荣耀已在推进采用高通5G芯片的研发工作。知名博主@数码闲聊站表示,去年底跟荣耀那边聊天了解到他们在跟高通洽谈合作。目前看来进展还是很顺利的,不过新机没那么快,应该还是开案研发阶段,期待一下荣耀调的高通吧。 11月17日,华为官方与深圳市智信新信息技术有限公司发出声明表示,正式决定整体出售荣耀业务。另外,赵明正式认证为荣耀终端有限公司CEO。 在高通发布骁龙888之际,高通公司总裁安蒙(Cristiano Amon)也首次公开对荣耀的出现表态,“对于市场上出现一个新的参加者,高通是非常高兴的,能给市场带来更多消费的潜力,消费者也会喜欢。我很喜欢中国手机市场的活力,也希望荣耀能带来更多的好产品。但现在一切都刚刚开始,我们之间也会展开对话。” 另外,安蒙还确认拿到了向华为供货4G芯片、计算芯片、WiFi产品的许可,虽然5G是目前主流,但重启4G或能帮助华为维持中低端手机市场运转。他强调,将继续等待,希望有朝一日能与华为在5G旗舰产品上有业务往来。 有消息人士透露,高通与荣耀的谈判进展非常乐观,双方已接近达成供应合作。另据消息,至少有8000名以上华为供应链员工加入了新荣耀,包括华为原研发体系的骨干。但对于具体人数和新产品研发进展,荣耀方面并未回应。 12月6日,荣耀内部粉丝沟通会上,赵明表示,荣耀未来将推出超级旗舰,荣耀也会有荣耀的“Mate和P”系列,荣耀会走出属于荣耀的科技发展的道路和技术演进的方向。 值得一提的是,近日荣耀商城官方宣布,荣耀官方自营商城将于1月12日正式上线,荣耀品牌相关的购物和服务也将迁移至新商城。 根据官方介绍,荣耀独立后的首款新机荣耀V40系列,也将于1月12日正式发布,目前已在京东商城上架预约,包括V40、V40Pro、V40Pro+三款型号。 推荐阅读: 谷歌ARM靠边站!Linux内核贡献,华为反超Intel全球第一 又一项目被曝光!“芯片烂尾”何时休? 华为麒麟9010被曝光,3nm制程工艺!有望与苹果同台竞技! 免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

摩登3注册登录网_防伪税控系统跨行监管稀土资源 航天信息全力推进汉字防伪技术升级

近年来,随着我国金税工程的不断深化,我国税收控管能力不断增强,税收征管水平不断提高,虚开增值税专用发票等违法犯罪活动得到了有效遏制,但也仍有少数不法分子利用现有防伪税控系统只加密发票七要素的局限性,通过伪造发票、篡改发票信息等手段,非法谋利。为了有效防范新型涉税违法案件(“雷霆一号”)的发生,国家金税工程主要承担者航天信息股份有限公司在原有增值税防伪税控系统上实现了发票信息的汉字防伪。 新系统在原有发票七要素防伪的基础上增加了对购销企业名称等票面重要信息的防伪。自2010年12月启动试运行工作以来,为满足不同行业的需求,并进一步提升识别通过率,航天信息专门组建了技术研发团队,持续推进汉字防伪技术的升级研发。在增值税防伪税控系统基础上,依托发票汉字防伪技术,针对稀土行业的特殊字符展开防伪攻关,对稀土企业开具的稀土发票进行有效的开具管理与开票数据的分析监管,为我国以税务信息化手段跨界资源监管提供了可行性的有效助力。 防堵发票漏洞 作为金税工程的主要组成部分之一,航天信息增值税防伪税控系统是为控管增值税,扼制利用发票偷税、骗税,防止税收流失而研制的。自研发成功以来,目前该系统已成功覆盖350多万户增值税纳税企业,以及全国各级国税单位,不仅为国家税收征管提供了有效技术保障,同时也为国家税收持续增收作出了重要贡献。但是,由于近年来不法分子偷税、漏税的手段越来越复杂,越来越多样化,该系统也逐渐显现出一定的局限性,需要加强防伪手段,从而有效打击日趋多样化的偷、漏税行为,保障国家税收不流失。 为了加强增值税发票票面信息的防伪特性,有效防范不法分子篡改企业名称、商品名称等汉字信息虚开增值税专用发票的犯罪活动,航天信息在原有增值税防伪税控系统上实现了发票信息的汉字防伪。新系统采用数字密码和二维码技术,利用可以存储更多信息量的二维码替代了原来的字符密文,并在加密发票七要素信息的基础上实现了对购销方企业名称等信息的加密、扌艮税采集和解密认证。自2010年试运行以来,该系统凭借防伪能力强、防伪信息量大、兼容性好等三大特点使发票防伪更上一层楼,更进一步地从税收和发票源头上防范了偷、漏税等行为的发生。 跨界稀土资源监管 稀土是我国最丰富的战略资源,它是很多高精尖产业所必不可少的原料。长期以来,由于稀土品种的复杂多样性,针对其的监管往往存在漏洞和不足。为了加强对稀土企业的监管,促进稀土行业持续健康发展,我国政府鉴于航天信息增值税汉字防伪税控系统能够采集销货方纳税人名称、购货方纳税人名称、货物名称等众多发票开票明细的特性以及试运行以来取得的显著成效,决定将我国境内12个省1000多个从事稀土开采、冶炼、分离的企业及稀土商贸企业(以下简称稀土企业)全部纳入稀土行业监管范围。以增值税专用发票为基础,掌握稀土行业开采、分离冶炼产品的销售数量,通过稀土专用发票采集相关数据、查询、统计、分析并导出相关数据,供相关部门加强行业监管时使用。 自2012年6月1日稀土增值税专用发票正式开具以来,目前已成功覆盖稀土产品及应税劳务共计368个品名。通过增值税汉字防伪税控系统在稀土行业的应用我们可以看到,该系统的应用不仅为加强稀土资源监管提供了有效的技术手段,对稳定稀土市场、遏制私挖、盗采等行为具有重要意义,同时也为国家监管重点行业与重点物资提供了良好的借鉴。

摩登3测试路线_基于物联网的智能饮水机的设计

引 言 目前市场上的普通饮水机在使用过程中,其智能性和安全保障等方面都存在明显缺陷。经调查表明,目前我国饮水机保有量约 1 亿台,年增 30 多万台,而普通饮水机每年的耗电量在 200 多度以上,那么全国每年将在这方面损失 260 多亿度电[1]。 为了进一步了解当前饮水机的智能功能,特对市面上饮水机的主要品牌如美的、安吉尔、沁园、浪木等进行调研 [2]。发现目前市场上的饮水机一般具备防干烧,儿童锁功能,少部分饮水机具备智能感应功能,但将这些功能集于一身的饮水机却还未发现。市场上四个主要品牌的功能对比见表1 所列。 目前,普通饮水机存在重大安全隐患,如干烧、阴阳水混合等。为解决目前普通饮水机存在的问题,本文设计出了基于物联网的智能饮水机,旨在通过信息化手段,利用物联网、传感器技术进行智能算法分析,通过单片机对保温桶隔热板进行开关智能化控制,使加热桶与外界环境隔热。此智能饮水机不仅降低了耗电量,避免了饮水机干烧存在的安全隐患, 还可以有效解决饮用水反复加热、阴阳水混合等问题,对人体的健康和财产安全具有深远影响。 随着物联网技术的不断发展,已广泛应用到各个领域。水, 是生命之源。所以,饮用水对人体健康起到了关键作用。日常饮水机中的水反复加热会产生大量亚硝酸盐,大大增加了患癌症的几率。本文利用物联网和传感器技术实现了对饮水机的智能控制。解决了饮水机中的饮用水反复加热、阴阳水混合、耗电量大等问题。 1 基于物联网的智能饮水机设计方案 饮水机的智能化设计基于物联网设计理念,将水位传感器、水温传感器与单片机完美结合,该饮水机可以实现智能控制和人为控制,主要实现对水温的设置、水位检测、显示等功能,当水位达到某特定值时,水位传感器感应探头便将感知到的信息反馈给单片机,单片机通过控制电磁阀实现对保温桶饮用水进入的智能化控制。饮水机结构框图如图 1 所示。 1.1 基于物联网的智能饮水机的总体设计方案 该智能饮水机的设计主要实现对饮水机保温桶中饮用水的智能化控制,通过水位传感器进行检测,达到特定水位时响应,并将采集到的信息数据反馈给单片机,通过单片机中的继电器发送信息对保温桶中的隔热挡板进行智能化控制,以实现对饮用水进入保温桶的智能化控制。涉及的硬件有单片机开发板、水位传感器、性能良好的隔热挡板等,可利用水位传感器实现对隔热挡板的闭合控制。智能饮水机工作流程图如图 2 所示。 (1) 利用水位传感器进行判断(设上水位感应探头为 P1, 下水位感应探头为P2),将采集到的水位信息反馈给单片机。 (2) 单片机将接收到的水位数据进行分析判断,若水位低于P1且低于P2,则通过继电器将隔热挡板打开,饮水机中的水流入加热桶中,当水位达到 P1时,挡板关闭。 1.2 智能饮水机主要设备 该智能饮水机软硬件相结合,通过水位传感器感知,将信息反馈给单片机,单片机通过继电器控制挡板的开关控制水流入加热桶。 该智能饮水机的设计不仅成本低,还体现出了节能环保的设计理念。整个系统主要由隔热挡板、水位传感器、单片机、电磁阀等组成。饮水机结构示意图如图 3 所示。 为减少饮水机加热的次数,就需要隔热挡板具有良好的 为了精确感知水位,及时将水位信息反馈给单片机,本设计选用DF-96A 水位传感器。该传感器采用集成电路,并结合加热桶上、下水的水位分级提升进行设计,具有上下水位联合控制及缺水保护等功能,其负载电流为 5 A。 为保证单片机能及时控制继电器,以控制隔热挡板的开关,本设计采用STC89C52 单片机。STC89C52 单片机不仅功耗低,具有高性能 CMOS 8 位微控制器,还具有 8 K 可编程Flash 存储器。 1.3 关键技术的实现 本设计除了拥有良好的硬件系统外,还与软件相结合, 实现软硬件之间的互补,以更好地实现智能化控制。本设计将所有控制程序写入STC89C52 单片机。 用一个函数来接收水位传感器反馈的值。 将所得值传给另一个处理函数,由函数分析返回的值是否符合函数要求,若符合,则进行下一步分析,若不符合, 则丢掉。 返回值符合要求后,将返回值与标准值对比,判断加热桶中是否需要水。由于继电器与水位传感器相连,当水位传感器返回值符合标准后,单片机便控制继电器打开隔热挡板, 水流入加热桶内,否则隔热挡板关闭。 2 结 语 随着人们生活水平的提高,饮水机已成为家庭生活中不可缺少的一部分。但普通饮水机在水质保鲜、耗电量、智能控制等方面存在明显不足,对人类健康有潜在危害。本文提出的基于物联网的智能饮水机,通过传感器进行智能控制,不仅饮水机的耗电量明显降低,还可保证人们喝上安全放心的饮用水,为创建新型环保城镇,实施可持续发展,共建和谐社会起到了推动作用。