AFD

Spring Cloud Sleuth 分布式服务追踪

一个人想着一个人 提交于 2020-04-13 18:20:38
【今日推荐】:为什么一到面试就懵逼!>>> 随着业务的发展, 系统规模也会变 得越来越大, 各微服务间的调用关系也变得越来越错综复杂。 通常 一 个由客户端发起的请 求在后端系统中会经过多个不同的微服务调用来协同产生最后的请求结果, 在复杂的微服 务架构系统中, 几乎每 一 个前端请求都会形成 一 条复杂的分布式服务调用链路, 在每条链 路中任何 一 个依赖服务出现延迟过高或错误的时候都有可能引起请求最后的失败。这时候, 对于每个请求, 全链路调用的跟踪就变得越来越重要, 通过实现对请求调用的跟踪可以帮 助我们快速发现错误根源以及监控分析每条请求链路上的性能瓶颈等。 针对上面所述的分布式服务跟踪问题, Spring Cloud Sleuth 提供了 一 套完整的解决方 案。 只需在服务 的 pom.xrnl 依赖管理中增加 spring-cloud-s t arter-sleuth 依赖 <dependency> <groupid>org.springframework.cloud</groupid> <artifactid>spring-cloud-starter-sleuth</artifactid> </dependency> 假设我们现在有trace-1、trace-2和 eureka-server三个微服务应用,并且 trace-1、trace-2都关联 eureka

小狗 T12 智能无线吸尘器体验:让打扫这件事简单点

為{幸葍}努か 提交于 2020-04-10 09:09:21
摘要 或许你缺这么一件趁手的无线吸尘器。 比起收拾自己的热情,年轻人收拾房间的动力可能几乎为零,心血来潮的大扫除也并不能维持太久。 除了平时工作太忙以外,没有一件趁手的清扫「兵器」大概就是主要原因。扫把簸箕太难用,市面上的吸尘器快挑花了眼。就在前不久,专业吸尘器品牌小狗吸尘器于 4 月 2 日发布了一款名为小狗 T12 智能无线吸尘器的全新产品。或许它的出现,能帮你让打扫这件事「简单点」。 小狗 T12 智能无线吸尘器包装内包含了主机、金属延长管、双滚电动地刷、电动除螨刷、二合一宽嘴刷、扁吸嘴以及收纳充电座和挂墙充电架。这四款吸头可以应对绝大部分的居家清洁场景,其中双滚电动地刷可以在任何地面环境上使用,不需要根据场景更换刷头。 金属延长管为氧化处理的铝合金材质,连接主机之后的枪式造型结构十分简洁。主机还配备了 OLED 智能显示屏、透明 PC 材质的磁吸式尘杯,机身整体色调保持一致。 吸尘器最重要的当然就是吸力,小狗官方称 T12 智能无线吸尘器的吸入功率高达 170AW,比上代旗舰产品 T10 Plus 同比提升 41.6%,整机过滤系统也能拦截 99.996% 的微尘。值得一提的是,小狗首次将智能理念注入了无线手持吸尘器当中,同时也是小狗 T12 这款新品的主打卖点。从主机顶部 OLED 显示屏后方我们能看到霍尔开关,它有三种模式可供选择,强劲、自动、节能。需要注意的是,小狗

python 3 的解释器

十年热恋 提交于 2020-04-08 18:45:08
前言 文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 作者:Yangtze PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http://t.cn/A6Zvjdun Python解释器 Linux/Unix的系统上,Python解释器通常被安装在 /usr/local/bin/python3.4 这样的有效路径(目录)里。 我们可以将路径 /usr/local/bin 添加到您的Linux/Unix操作系统的环境变量中,这样您就可以通过 shell 终端输入下面的命令来启动 Python 。 在Window系统下你可以通过以下命令来设置Python的环境变量,假设你的Python安装在 C:\Python34 下: 交互式编程 我们可以在命令提示符中输入"Python"命令来启动Python解释器: 执行以上命令后,出现如下窗口信息: 在 python 提示符中输入以下语句,然后按回车键查看运行效果: 以上命令执行结果如下: 当键入一个多行结构时,续行是必须的。我们可以看下如下 if 语句: 脚本式编程 将如下代码拷贝至hello.py文件中: 通过以下命令执行该脚本: 输出结果为: 在Linux/Unix系统中,你可以在脚本顶部添加以下命令让Python脚本可以像SHELL脚本一样可直接执行

Windows下底层数据包发送实战

陌路散爱 提交于 2020-03-09 20:03:27
1、简介   所谓“底层数据包”指的是在“运行”于数据链路层的数据包,简单的说就是“以太网帧”,而我们常用的Socket只能发送“运行”在传输层的TCP、UDP等包,这些传输层数据包已经能满足绝大部分需求,但是有些时候还是需要发送底层数据包的(例如SYN扫描),那么如何发送呢?   本文记录了我试图实现的过程中遇到的一些问题以及解决办法,需要注明:①本文只考虑Windows上的实现 ②本文主要目的是实现发送部分 ③本文假定读者理解网络分层结构和一些基本的网络编程方法 ④本文只是在讨论常规技术,切勿用作不法用途。 2、实现底层数据包发送的简单方法 A)Raw Socket   Raw Socket是实现底层(网络层)数据包最轻松方便的途径,在使用WSASoccket(或socket)创建Socket时,可以用SOCK_RAW将Socket类型设置为Raw: socket = WSASoccket(AF_INET,SOCK_RAW,IPPROTO_IP,NULL, 0 , 0 ) // 创建一个原始套接字   使用IPPROTO_RAW初始化的原始套接字可以直接收发网络层数据包,发送一个TCP包时需要手工构造IP头、TCP头、内容以及各校验和,构造完数据包后,用sendto方法将该包发送(注意到,手工构造的IP包头中已经包含了目的IP地址,所以sendto的目的地址参数是无意义的)

oracle 19c asm filter driver的使用

末鹿安然 提交于 2020-02-28 21:01:30
从 12.1.0.2开始, oracle 提供了一个 afd的东西,来替代 asm lib库和 udev 用于asm磁盘的处理。 也就是说,从12.1.0.2开始,要配置asm,在磁盘上,可以不用去配置 udev ,或者安装 asmlib程序了,直接使用 afd即可搞定,这个afd是随oracle安装程序自带的,不需要到其他地方去下载,关键是使用 afd,启用了 filter后,root用户使用 dd 也不能破坏 disk ,这点不错。下面我们在19c下面来操作一下 : 1.Log in as the root user and set the environment variable $ORACLE_HOME to the location of the Grid home and the environment variable $ORACLE_BASE to a temporary location. su root set ORACLE_HOME=/u01/app/19.1.0/grid set ORACLE_BASE=/tmp You set $ORACLE_BASE to a temporary location to avoid creating diagnostic or trace files in the Grid home before the Oracle

又见删库...

 ̄綄美尐妖づ 提交于 2020-02-27 00:26:35
这两天,香港上市公司微盟(HK2013)因"删库"事件停运,已经过了36小时还在努力抢修数据的工作中。作为一位老DBA,我们一起来回顾和尝试反思下这个事件。 0. 事件回顾 2020.2.23日 18:56,员工通过VPN登入服务器并实施破坏。 2020.2.23日 19时,系统监控报告故障并启动应急方案。 2020.2.24日 微盟公司向警方报案。 2020.2.25日 7时,恢复部分生产环境和数据,并预计到凌晨0点能完成恢复,并向新用户恢复业务,但老用户预计还要到2月28日晚上才能恢复。 1. 为什么会发生"删库" 从官方发布的公告来看,是因为运维部的核心员工刻意进行的破坏,也就是说,这是人为的、恶意的、有计划的破坏行为,而不是我们最常见的误操作或黑客入侵所致。 不过,从我的经验来看,这起事件未必是真的人为破坏,具体分析就不贴了。总之,我对官方的公告存疑。不过也不能改变人为破坏这个事实,就看公安机关怎么定性了。 我们要做的是,进行反思和预防此类事件一再发生,这也是本文的用意。 此外这种意外事故受害的除了公司、员工,更无辜的是客户,我们祝福微盟能救回更多数据,将损失最小化。 2. 事故恢复的速度如何 从上面的回顾时间点来看,我认为恢复的速度并不算快。 我经过侧面了解,这起事件主要的影响是数据库的主备库都被删了,并且执行的是类似"rm -fr /"这样的操作。这种行为

Could not read input channel file descriptors from parcel

萝らか妹 提交于 2020-01-06 16:59:59
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 目录 背景: 卡死/黑屏log信息,原因分析: 背景: 一个盘点扫描的APP,可以离线在线操作,运行平台为PDA,客户在使用过程中反馈经过多次扫描后会出现屏幕卡死/黑屏的情况,但是PDA系统可以正常使用,由此可见是我的APP导致的。客户一次盘点会盘点近千个物品,也就是说会扫描近千次,扫描过程中会有人声提示音播放。收到了客户的反馈后,拿了设备回来自己测,通过几回合的连续扫描后,复现出了这个问题,每回合都是扫到237次就出现黑屏或者报错。拿到了出现问题的log信息,但是一看logcat,很难确定原因,不是常规的代码崩溃。以下看下我拿到的logcat信息 卡死/黑屏log信息,原因分析: 08-25 18:18:58.028 17875-17875/com.pda.wph E/Surface: dequeueBuffer failed (Invalid argument) 08-25 18:18:58.038 17875-17875/com.pda.wph E/ViewRootImpl: Could not lock surface java.lang.IllegalArgumentException at android.view.Surface.nativeLockCanvas(Native Method) at

Android 人脸识别SDK开发

旧街凉风 提交于 2019-12-05 20:52:06
目前我们的应用内使用了 ArcFace 的人脸检测功能,其他的我们并不了解,所以这里就和大家分享一下我们的集成过程和一些使用心得 集成 ArcFace FD 的集成过程非常简单 在 ArcFace FD 的文档上有说明支持的系统为 5.0 及以上系统,但其实在 4.4 系统上也是可以跑的, if (engine == null) { // && Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) { try { engine = new AFD_FSDKEngine(); AFD_FSDKError err = engine.AFD_FSDK_InitialFaceEngine( "XXXX", "XXXX", AFD_FSDKEngine.AFD_OPF_0_HIGHER_EXT, 12, 3); if (err.getCode() != 0) { engine.AFD_FSDK_UninitialFaceEngine(); engine = null; } } catch (Exception e) { e.printStackTrace(); engine = null; } } 我觉得 ArcFace 的优势除了多角度检测之外,另外一个是他的每次检测并不是独立,即这一次的检测结果会指导下一次的检测 (我猜测的->_->