
编程语言
文章平均质量分 88
程序员阿轩
Java领域:架构干货分享:互联网分析
展开
-
15分钟教你快速学会!JVM内存区域异常分析
Java虚拟机在执行java程序时会把它所管理的内存会分为若干个不同的数据区域,不同的区域在内存不足时会抛出不同的异常。接下来将对各区域分别进行分析介绍,内容包括触发各区域OutOfMemoryError异常的代码,以及对其进行排查判定的过程。还会初步涉及几个与内存相关的最基本虚拟机参数。1、Java堆溢出Java堆用于存储对象实例,只要不断创建对象并保证对象不会被回收,那么当对象数量到达最大堆的容量限制后就会产生堆内存溢出异常。测试代码如下:/** * 探究Java堆溢出 * VM Args原创 2021-05-18 16:58:29 · 314 阅读 · 6 评论 -
超硬核!MySQL优化从执行计划开始(explain超详细)
前言小伙伴一定遇到过这样反馈:这页面加载数据太慢啦,甚至有的超时了,用户体验极差,需要赶紧优化;反馈等同于投诉啊,多有几次,估计领导要找你谈话啦。于是不得不停下手里头的活,赶紧进行排查,最终可能是程序处理的问题、也可能是并发量大导致排队问题、也可能是SQL查询性能导致等;而在很多时候,SQL查询缓慢是最直接拖慢系统的罪魁祸首,同样是实现一个功能,有的小伙伴毫秒级呈现效果,有的却要好几秒,而调优需要的花费时间不容小觑,最终可能就体现到个人业务能力上和形象上:哇,真牛逼,分分钟搞定; 菜鸟,居然写出原创 2021-03-22 20:13:57 · 232 阅读 · 0 评论 -
保姆级教程!手把手带你用数据库中间件Mycat+SpringBoot完成分库分表
一、背景随着时间和业务的发展,数据库中的数据量增长是不可控的,库和表中的数据会越来越大,随之带来的是更高的磁盘、IO、系统开销,甚至性能上的瓶颈,而一台服务的资源终究是有限的,因此需要对数据库和表进行拆分,从而更好的提供数据服务。当用户表达到千万级别,在做很多操作的时候都会很吃力,所以当数据增长到 1000 万以上就需要分库分表来缓解单库(表)的压力。二、什么是分库分表简单来说,就是指通过某种特定的条件,将我们存放在同一个数据库中的数据分散存放到多个数据库(主机)上面,以达到分散单台设备负载原创 2021-03-20 21:58:44 · 283 阅读 · 0 评论 -
Java树结构实际应用(平衡二叉树/AVL树),讲得透透的
1、 看一个案例(说明二叉排序树可能的问题)给你一个数列{1,2,3,4,5,6},要求创建一颗二叉排序树(BST), 并分析问题所在. 左边 BST 存在的问题分析:1) 左子树全部为空,从形式上看,更像一个单链表.2) 插入速度没有影响3) 查询速度明显降低(因为需要依次比较), 不能发挥 BST的优势,因为每次还需要比较左子树,其查询速度比单链表还慢4) 解决方案-平衡二叉树(AVL)2、 基本介绍1) 平衡二叉树也叫平衡二叉搜索树(Self-balancin原创 2021-03-16 17:26:09 · 408 阅读 · 0 评论 -
腾讯高工保姆级“Java成长手册”,层层递进,全是精华
好像在当今这个社会,什么事物都会分成不同的层级,不管是物件还是人,虽然当今这个时代,是一个人人平等的时代,但是现实中还是有着各种不同的层级。作为程序员的我们,也同样是一样的,有的是在小公司的,有的是在外包公司,有的是在BAT这样的一线大厂,在大厂也会对程序员进行分级,P6、P7、P8...等等,这些层级就好像代表着程序员自身技术能力的分级。努力的人一直在往前,就像打怪升级一样的,安于现状的人,就一直停留在现在这个层级中,原地踏步。今天给大家分享的这份腾讯高工手写的“Java成长手册”,每一...原创 2021-03-12 17:17:32 · 574 阅读 · 2 评论 -
面试必备的计算机网络核心知识点,全都梳理好了,去怼面试官吧
目录1. OSI参考模型与TCP/IP参考模型 2. TCP的三次握手2.1 传输控制协议TCP简介:2.2 TCP报文头:2.3 三次握手3. TCP的四次挥手3.1 四次挥手的过程3.2 为什么会有TIME_WAIT状态?3.3 为什么需要四次挥手才能断开连接?4. TCP和UDP的区别4.1 UDP特点4.2 TCP和UDP区别:5. HTTP详解5.1 协议简介5.2 HTTP主要特点5.3 请求/响应的步骤5.4 在浏览器地址栏键...原创 2021-03-11 16:47:51 · 434 阅读 · 0 评论 -
最全的教程了!分布式任务调度解决方案XXL-JOB快速搭建
目录1. XXL-JOB简介 2. XXL-JOB搭建2.1 准备工作2.1.1 下载源码 2.2 搭建调度中心 2.2.1 配置调度中心2.2.2 启动调度中心 2.3 搭建“执行器” 2.3.1 新建执行器项目2.3.2 添加相关依赖和配置执行器2.3.3 编写执行器3. 测试3.1 新增执行器3.2 新增任务3.2.1 新增任务3.2.2 配置属性3.3 启动任务测试1. XXL-JOB简介XXL-JOB是一个分布式任务调度平台原创 2021-03-10 22:24:10 · 793 阅读 · 1 评论 -
一步步带你搭建Elasticsearch环境,还看不懂?
目录1.1 Elasticsearch安装 1.1.1 Elasticsearch安装 1.1.2 Elasticsearch目录结构 1.1.3 Elasticsearch插件安装 1.1.4 Elasticsearch多实例启动 1.2 Kibana安装 1.2.1 Kibana安装 1.2.2 Kibana插件安装 1.3 Logstash安装 1.3.1 Logstash安装 1.3.2 Logstash导入数据 磨刀不误砍柴工,要学习Elas...原创 2021-03-09 17:57:21 · 168 阅读 · 0 评论 -
腾讯三面落马+拒网易、CVTE后,字节四面成功拿下offer
我20年的十一月份之前一直在一家中型互联网企业做后端,接近十一月中旬工作交接完成后正式离职,我为什么离职?很简单,就是想去更大的企业,让自己有更大的发展空间和学习空间,就毅然裸辞了(注:大家不要学我裸辞,请慎重考虑)。之后就一直在准备接下来的面试,如标题所示,我的目标就是这几家企业(网易、腾讯、CVTE、字节),其中就想去的还是字节。接下来就是和大家分享一下我的面试经历和面试所问到的问题。文章后半段会分享一些我个人总结的大厂最新“面试真题笔记含答案”,需要完整版的朋友点击这里即可免费获取!原创 2021-03-09 15:30:59 · 1208 阅读 · 2 评论 -
看完就能懂!ElasticSearch 垃圾回收器优化
背景介绍es版本:6.3.2 es集群配置:16核cpu,内存64G,磁盘200G JDK版本:1.8 垃圾回收器: CMS+ParNew部署在这个集群的服务偶尔会遇到服务超时的情况,从kibana监控中可以看到,服务超时情况发生时,es服务器cpu较高。es存在young gc频繁,old gc 低频率,每天约出现2-4次。imageimage查看过去一小时的监控情况,发现young gc 比较频繁,大量对象最终进入了老年代,通过old gc被回收掉了。image原创 2021-03-02 18:11:43 · 1177 阅读 · 0 评论 -
惊了!我这样优化了Tomcat后,网站访问性能竟飙升
一、前言tomcat 服务器在JavaEE项目中使用率非常高,所以在生产环境对tomcat的优化也变得非常重要了,对于tomcat的优化,主要是从2个方面入手,一是tomcat本身的配置,另一个是tomcat所运行的Jvm虚拟机的调优二、Tomcat配置优化2.1 下载安装tomcat案例中使用的Tomcat版本是 8.0+ 版本下载安装:https://tomcat.apache.org/download-80.cgi2.2 配置修改cd apache-tomca.原创 2021-02-27 19:47:03 · 356 阅读 · 0 评论 -
一次性讲清楚,Nginx详解其原理,可以给我鼓掌了
金三银四即将到来,推荐阅读:过关斩将!三面字节,27k*17offer,原来也没那么难一、Nginx进程模型分析 在介绍Nginx的进程模型之前我们先来给大家解释下一些常见的名词,这能辅助我们更好地了解Nginx的进程模型。作为Web服务器,设计的初衷就是为了能够处理更多的客户端的请求,一般来说,完成并行处理请求工作有三种方式可以选择,多进程、多线程、异步方式。二、多进程方式服务器每接收到一个客户端请求,就会由主进程生成一个子进程出来和该请求建立连接进行交互,直到连接断开以后子进程.原创 2021-02-24 21:33:25 · 1570 阅读 · 0 评论 -
这么深入地带你去学习JAVA-IO流,你不可能还不会吧?
(一)IO流基本概念Java对数据的操作是通过流的方式,io是java中实现输入输出的基础,它可以很方便地完成数据的输入输出操作,Java把不同的输入输出抽象为流,通过流的方式允许Java程序使用相同的方式来访问不同的输入、输出。(二)文件字节输入流(2.1)使用输入流的4个基本步骤1.设定输入流的源。2.创建指向源的输入流。3.让输入流读取源中的数据。4.关闭输入流。(2.2)构造方法如果对文件读取需求比较简单,从文件系统中的某个文件中获得输入字节,可以使..原创 2021-02-24 21:32:11 · 116 阅读 · 0 评论 -
过关斩将!三面字节,27k*17offer,原来也没那么难
一、为什么跳槽?我做后端五年多了,同很多人一样,我大学的专业和程序员这个行业没有任何的关系。毕业后,很迷茫,就做了门槛相对来说较低的服务行业,之后,就一个偶然的机会接触了程序员这个行业,之后便开始了我长达五年多的后端开发工作。我之前在一家中型的互联网公司工作,技术一直还算可以,一年前,随着年纪的增长,有了家庭的压力,便开始想着提升自己,想让自己到达一个新的高度,而且大厂的话不论是管理还是工作氛围都是可以帮助到自己的。接下来就是跟大家分享一下我的字节面试经历,希望对即将在金三银四跳槽的朋友有所帮助原创 2021-02-23 18:03:13 · 499 阅读 · 0 评论 -
太硬核了!这篇HashMap源码分析,绝对可以堪称为圣经
一、前言本篇是继硬核ArrayList源码分析,答应我每天看一遍好么之后进行的第二篇源码分析;学完本篇你将对hashMap的结构和方法有个全面的了解;面试自己有多强,超人都不知道;比如HashMap的扩容机制,最大容量是多少,HashMap链表是如何转到红黑树,HashMap为什么线程不安全,HashMap的key,value是否能null值等等;二、源码分析2.1 官方说明实践官方说**HashMap实现了Map接口,拥有所有的Map操作;并且允许key,value都为null;**实践一原创 2021-02-21 21:53:36 · 326 阅读 · 0 评论 -
你还看不懂吗?超详细的classLoader分析,拒绝懵逼
一篇超详细classLoader分析这是我人生中第一次写技术博客,我也看过很多优秀博主博客从中学习到了很多;介于我也是一个人热爱技术分享的人,所以我想把自己在工作学习中获得知识分享给热爱技术的各位同胞还可以巩固知识,何乐而不为呢!了解类加载器之前需要有一定c/c++、Java基础以及源码阅读能力,本次分享源码篇幅较多,有那里写的不好地方或者错误欢迎各位留言指正问题,废话不多说进入正题!class.forName在jvm中加载编译好的二进制文件.claas是通过各种类加载器进行装载,java之原创 2021-02-18 17:55:00 · 543 阅读 · 0 评论 -
面面俱到!阿里王牌级“Docker全线笔记”,这也太全面了
写在开头司汤达说过:一个人只要强烈地坚持不懈地追求,他就能达到目的。Docker的创始人Solomon Hykes就是以这样的精神,在docker即将坚持不下去的时候,选择的不是放弃,而是坚持并且找对方法,最终便选择了开源,让更多的IT从业者认识到了docker的厉害之处,之后便火的一发不可收拾。直到现在也是目前最热门的容器技术,在国内坐稳互联网技术第一把交椅的阿里巴巴,使用docker的频率是非常高的,所以在docker的技术上是有着绝对性的话语权的。我看到的时候,这份笔记已经被Githu原创 2021-02-18 17:52:46 · 598 阅读 · 1 评论 -
满满的干货!典型服务器模式原理分析与实践,看了就能懂
本文作为自己学习网络编程的总结笔记。打算分析一下主流服务器模式的优缺点,及适用场景,每种模型实现一个回射服务器。客户端用同一个版本,服务端针对每种模型编写对应的回射服务器。本文所有代码放在:github.com/oscarwin/mu…单进程迭代服务器单进程迭代服务器是我接触网络编程编写的第一个服务器模型,虽然代码只有几行,但是每一个套接字编程的函数都涉及到大量的知识,这里我并不打算介绍每个套接字函数的功能,只给出一个套接字编程的基础流程图。有几点需要解释的是:服务器调用lis.原创 2021-02-16 17:46:33 · 511 阅读 · 0 评论 -
还没搞懂Java中的路径?看完这篇文章你就全懂了
一、前言之前一直对于java中的路径是模棱两可的感觉,对这一块,看似知道,其实也不知道。每次遇到FileNotFound的时候就会去Google去查询,这个方法怎么用哇,到底相对路径指的是从哪开始的路径呀,等等问题!其实就是在蒙答案,按照编程中的说法就是撞大运式的编程,这次争取一次性的搞懂java中的路径问题,争取以后编程心中有丘壑。二、相对路径和绝对路径「绝对路径:」绝对路径的英文全称是Absolute Path,就是真实的路径,是计算机中完整路径,必须准确,否则不能找到,起点是系统的根目录.原创 2021-02-11 20:23:30 · 1118 阅读 · 0 评论 -
Mongodb基础:怎么使用Node.js操作数据库?超详细
一、Mongodb 介绍Mongodb 是一个文档数据库,以文档形式存储数据,格式类似于 JSON与 Mysql 的特点及选型对照说明:并不是说在真实项目中,两种数据库只能选其一, 二者是可以同时使用的。对于用户信息表等规整信息可以采用 Mysql 数据库存储,而对于网页中类似博客内容等大段的富文本信息(同时包含文本、视频、图片等),放到 Mysql 数据库中的一个字段中存储就不太合适了,这段博客内容就可以采用 Mongodb 来存储。二、Mongodb 及 Compass 安装.原创 2021-02-09 22:07:17 · 283 阅读 · 0 评论 -
太完整了!这是我见过最详细的线程池讲解了
1. 前言1.1 什么是线程池?线程池是一种利用池化技术思想来实现的线程管理技术,主要是为了复用线程、便利地管理线程和任务、并将线程的创建和任务的执行解耦开来。我们可以创建线程池来复用已经创建的线程来降低频繁创建和销毁线程所带来的资源消耗。在JAVA中主要是使用ThreadPoolExecutor类来创建线程池,并且JDK中也提供了Executors工厂类来创建线程池(不推荐使用)。线程池的优点:降低资源消耗,复用已创建的线程来降低创建和销毁线程的消耗。提高响应速度,任务到达时,可以不需要等待线原创 2021-02-08 19:06:46 · 1872 阅读 · 1 评论 -
自己搭建电商平台初期,原来“超卖”的问题,这样就可以搞定了
前言从本篇开始,老猫会通过电商中的业务场景和大家分享锁在实际应用场景下的演化过程。从Java单体锁到分布式环境下锁的实践。超卖的第一种现象案例其实在电商业务场景中,会有一个这样让人忌讳的现象,那就是“超卖”,那么什么是超卖呢?举个例子,某商品的库存数量只有10件,最终却卖出了15件,简而言之就是商品卖出的数量超过了商品本身的库存数目。“超卖”会导致商家没有商品发货,发货的时间延长,从引起交易双方的纠纷。我们来一起分析一下该现象产生的原因:假如商品只有最后一件,A用户和B用户同时看到了商品,并原创 2021-02-07 11:40:13 · 503 阅读 · 0 评论 -
怎么使用rke安装k8s集群?这么清楚了,你还看不懂吗
前言之前为了快速入门学习k8s的编排,直接使用了阿里云上的k8s集群,本中级篇这里尝试一下从0-1搭建k8s集群,并演示一些更为经典的案例:如自建nfs服务器存储卷的使用、自动证书签发cert-manager let's encrypt、rancher2.x、helm包管理工具等。环境三台主机为华为软开云的ECS,CentOS Linux release 7.6.1810 (Core)安装docker版本 19.03.9卸载当前docker版本(按需)yum remov.原创 2021-02-06 17:57:18 · 1208 阅读 · 2 评论 -
狙击P7!阿里大佬亲授“Java性能调优技术宝典”,太完整了!
一、前言什么是性能调优?性能调优其实很好理解,就是优化硬件、操作系统、应用之间的一个充分的协作,最大化的发挥出硬件的极致性能,来应对高负载的业务需求。为什么需要性能优化?其实说到底就是两个原因:①:为了获得更好的系统性能②:通过性能调优来满足不断增加的业务需求性能调优其实作用于我们项目中的很多阶段,项目上线前性能的基本优化,项目上线后也是需要持续不断的性能优化来应对不同时期的业务需求。我有个朋友现在在阿里是P7,他认为在P7这个职位,特别是像阿里这种体量的企业,以下这些性能调原创 2021-02-05 16:30:27 · 315 阅读 · 0 评论 -
绝对可以看懂!死锁全详解,一文带你搞定
前言计算机系统中有很多独占性的资源,在同一时刻只能每个资源只能由一个进程使用,我们之前经常提到过打印机,这就是一个独占性的资源,同一时刻不能有两个打印机同时输出结果,否则会引起文件系统的瘫痪。所以,操作系统具有授权一个进程单独访问资源的能力。两个进程独占性的访问某个资源,从而等待另外一个资源的执行结果,会导致两个进程都被阻塞,并且两个进程都不会释放各自的资源,这种情况就是 死锁(deadlock)。死锁可以发生在任何层面,在不同的机器之间可能会发生死锁,在数据库系统中也会导致死锁,比如...原创 2021-02-04 18:14:46 · 1251 阅读 · 0 评论 -
硬核!十分钟带你看懂Netty如何实现C/S(源码解析)
Netty实现服务器和客户端服务器话不多说我们直接来实现一个简单的TimerServer(该服务器的提供的服务是接收客户端的指令返回服务器的系统时间)。import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel.ChannelOption;import io.netty.channel.EventLoopGroup;import io.ne原创 2021-02-03 17:25:20 · 360 阅读 · 1 评论 -
又一大热门!腾讯高工发布的“K8S学习笔记”,已评“钻级”!理论+实践全搞定
一、前言k8s全称kubernetes,是目前大热的一个可移植容器的编排管理工具,像AWS、Azure、Google、阿里云、腾讯云等主流的公有云提供的都是基于k8s的容器服务,很多其他厂商也在努力跟进中,所以说“kubernetes”是目前容器行业中最为热门的也毫不为过!但是大家都是知道的,kubernetes虽然比较热门,但是学习的门槛相对来说也是比较高的,所以这份笔记也是因此而生的,一经发布,瞬间上了周榜双Top1,已评钻级!这份笔记有着以下两个重要的特点:系统的讲解当前最流.原创 2021-02-02 20:23:55 · 187 阅读 · 0 评论 -
突然兴奋!为了加快速度,Redis这么“疯狂”的设计都做了!
前言列表对象是 Redis 中 5 种基础数据类型之一,在 Redis 3.2 版本之前,列表对象底层存储结构有两种:linkedlist(双端列表)和 ziplist(压缩列表),而在 Redis 3.2 版本之后,列表对象底层存储结构只有一种:quicklist(快速列表),难道通过精心设计的 ziplist 最终被 Redis 抛弃了吗?列表对象同字符串对象一样,列表对象到底使用哪一种数据结构来进行存储也是通过编码来进行区分:编码属性描述object encoding命令返回值OBJ_原创 2021-01-22 17:51:37 · 108 阅读 · 0 评论 -
太绝了!实战带你一步步进行k8s日志收集
简介本文主要介绍在k8s中收集应用的日志方案,应用运行中日志,一般情况下都需要收集存储到一个集中的日志管理系统中,可以方便对日志进行分析统计,监控,甚至用于机器学习,智能分析应用系统问题,及时修复应用所存在的问题。在k8s集群中应用一般有如下日志输出方式直接遵循docker官方建议把日志输出到标准输出或者标准错误输出 输出日志到容器内指定目录中 应用直接发送日志给日志收集系统本文会综合部署上述日志收集方案。日志收集组件说明elastisearch 存储收集到的日志 kibana原创 2021-01-22 17:40:51 · 1520 阅读 · 0 评论 -
不能再详细了!IM消息系统的设计和实现一文全解
一、名词解释单播:服务器发送消息给单个客户端用户 多播:服务器发送消息给多个客户端用户 组播/广播:服务器发送消息给一组客户端。有组ID来标识这组用户 上行消息:服务器发送消息给一组客户端。有组ID来标识这组用户 下行消息:服务器端给客户端发送消息二、系统架构proxy:部署在边缘机房,客户端通过智能dns就近接入 logicService:处理认证、心跳、上下线、进出群 pushService:单播,广播,接收到消息后转发给comet,之后再由comet把消息发出去 im.原创 2021-01-09 17:55:59 · 1808 阅读 · 2 评论 -
实现动态负载均衡和服务平滑发布怎么实现?靠“Nginx、Consul、Upsync“三兄弟就够了!
前提前段时间顺利地把整个服务集群和中间件全部从UCloud迁移到阿里云,笔者担任了架构和半个运维的角色。这里详细记录一下通过Nginx、Consul、Upsync实现动态负载均衡和服务平滑发布的核心知识点和操作步骤,整个体系已经在生产环境中平稳运行。编写本文使用的虚拟机系统为CentOS7.x,虚拟机的内网IP为192.168.56.200。动态负载均衡的基本原理一般会通过upstream配置Nginx的反向代理池:http { upstream upstrea.原创 2021-01-09 17:16:04 · 782 阅读 · 2 评论 -
来!带你们初次体验一下ElasticAPM
前言本文从最根本的可观察性出发,引出实现这种思想的APM(Application Performance Management)框架,通过对APM的核心组件和数据模型的理解,可以加深对ElasticAPM的理解。最后通过实战演练ElasticAPM,来实现应用的性能追踪。可观察性“可观察性”不是供应商能够在系统之外单独交付的功能,而是您在构建系统时植根于其中的一个属性,就像易用性、高可用性和稳定性一样。设计和构建“可观察”系统的目标在于,确保当它在生产中运行时,负责操作它的人员能够检测到不良行原创 2021-01-08 18:20:58 · 1991 阅读 · 1 评论 -
这还不会?手把手带你入门MySQL中的索引和锁
索引索引常见的几种类型索引常见的类型有哈希索引,有序数组索引,二叉树索引,跳表等等。本文主要探讨 MySQL 的默认存储引擎InnoDB的索引结构。InnoDB的索引结构在InnoDB中是通过一种多路搜索树——B+树实现索引结构的。在B+树中是只有叶子结点会存储数据,而且所有叶子结点会形成一个链表。而在InnoDB中维护的是一个双向链表。你可能会有一个疑问,为什么使用 B+树 而不使用二叉树或者B树?首先,我们知道访问磁盘需要访问到指定块中,而访问指定块是需要盘片旋转和...原创 2021-01-08 18:19:33 · 130 阅读 · 0 评论 -
Java万字干货!学习路线+笔记+简历制作+面试就业全览,不看血亏!其实斩获大厂offer真没那么难
我为什么要写这一篇文章?这是一篇比较适合有一定Java基础的同学阅读的文章。我知道关注我的朋友,其实大部分都是有一定的Java基础的,我的粉丝群体比较杂,有在小公司待着的,有些是想转行在自学的,有些就是在外包公司的。正是因为这样,从而经常有粉丝发私信跟我埋怨:外包公司、小公司没有成长机会只有加不完的班,敲不完的代码,想跳槽奈何自己技术不到家。转行自学的伙伴,学习迷茫不知道怎么学习才是正确的,就很容易放弃。所以在2021的年初这篇文章就因此诞生了!首先我们肯定要知道这篇文章到底有什么,献上原创 2021-01-07 13:43:57 · 953 阅读 · 3 评论 -
这也太简单了!轻松操作Feign 服务调用使用 Zipkin 链路追踪!
0、介绍分布式微服务时代,方便了业务的快速增长和服务的稳定,但是系统出现问题后,面对同业务多服务排查起来令人头大。这时候领导就想着集成分布式追踪系统。Zipkin 是 Twitter 的一个开源项目,基于 Google Dapper 实现。可以使用它来收集各个服务器上请求链路的跟踪数据,并通过它提供的 REST API 接口来辅助我们查询跟踪数据以实现对分布式系统的监控程序,从而及时地发现系统中出现的延迟升高问题并找出系统性能瓶颈的根源。除了面向开发的 API 接口之外,它也提供了方便的 UI 组件帮助原创 2021-01-04 18:00:59 · 643 阅读 · 2 评论 -
微软PDB、SourceLink——.net core之nuget 包调试你了解吗?花10分钟看看你就懂了!
在大前年,为了说服框架组采用Nuget包的形式分发框架类库,我费了老鼻子的劲也没有取得成功,其中最致命的一个问题是,nuget包不能获得源码调试级的支持,在分发和包的管理形式上其比其他方案都优秀。最后折中的选择是采用源码直接引用项目的方式,这种方案对框架类库的新分支的开发不是很有利,在源码的保护上更是完全没有了保障,不过在当时场景下,也算是可以接受的方案之一了。而经过这几年的发展,微软在这些方面都有了长足的发展,那跟着我,来看看能否解决各位心中的疑惑?1. 历史悠久的PDB当看到一个人光鲜亮丽,.转载 2021-01-04 17:16:12 · 1099 阅读 · 2 评论 -
Java8之Optional类,看我怎么妙手巧解NPE!
NullPointerException——空指针异常是程序中常见异常之一,也是导致程序运行失败的常见异常。以前,为了防止出现null,我们常在代码中使用if…else…做防御性检查,后来Guava为了解决上述方法造成的代码污染引入了Optional类。Java8借鉴Guava的Optional也加入了同名的Optional类,Optional类提供了很多实用的方法,借此可以避免显示的空指针判断,从而避免NullPointerException。常见方法下面逐一讲解Optional类提供的方法。原创 2021-01-02 22:11:32 · 120 阅读 · 0 评论 -
InnoDB到底支不支持哈希索引,为啥不同的人说的不一样?
继续回答水友提问(最近问 MySQL 的多):沈老师,我在网上看到不同的资料,有的说 InnoDB 支持哈希索引,有的说不支持,到底哪个是正确的呢?对于 InnoDB 的哈希索引,确切的应该这么说:(1)InnoDB 用户无法手动创建哈希索引,这一层上说,InnoDB 确实不支持哈希索引;(2)InnoDB 会自调优 (self-tuning),如果判定建立自适应哈希索引 (Adaptive Hash Index, AHI),能够提升查询效率,InnoDB 自己会建立相关哈希索引,这一层上说原创 2020-12-27 22:29:02 · 197 阅读 · 0 评论 -
OCR 领域新霸主?来看看它有没有这个实力
我们团队在题目的允许上,去寻找开源的 OCR 识别算法的模型,在 github 上有 AdvancedEAST 和 AttentionOCR 算法,知名度还是比较高的,还有 EasyOCR,还有 PaddleOCR。最近参加 “中国软件杯” 的一个 OCR 识别相关的比赛。赛题链接:http://www.cnsoftbei.com/plus/view.php?aid=516部分要求如下:手撕代码害怕鸭。我们团队在题目的允许上,去寻找开源的 OCR 识别算法的模型,在 github原创 2020-12-23 19:43:03 · 827 阅读 · 1 评论 -
你了解吗?关于ArcGIS的OBJECTID生成策略拙见
目录诉求SDEOBJECTIDArcMap编辑重置OBJECTID诉求非GIS专业的人员可能很难理解ArcSDE中的表OBJECTID的重要性,要么总想着自己动手去维护,要么就想直接忽略它,导致总会出现OBJECTID的冲突,编辑数据报错下面简单谈谈对OBJECTID的粗浅认识,抛砖引玉,帮助更多人理解它的内部机制SDEArcGIS家的ArcSDE空间数据库引擎,官方定义去官网,那里有很多,但个人感觉像机翻的,读起来很拗口。SDE就是在数据库中添加一个中间件,这样可以原创 2020-12-23 19:36:28 · 2088 阅读 · 0 评论