前言:除了流量控制以外,对调用链路中不稳定的资源进行熔断降级也是保障高可用的重要措施之一。一个服务常常会调用别的模块,可能是另外的一个远程服务、数据库,或者第三方API等。例如,支付的时候,可能需要远程调用银联提供的API;查询某个商品的价格,可能需要进行数据库查询。然而,这个被依赖服务的稳定性是不能保证的。如果依赖的服务出现了不稳定的情况,请求的响应时间变长,那么调用服务的方法的响应时间也会变长,...
继续阅读 >
分类:编程语言
2020
12-14
12-14
安装IDEA和配置Maven的步骤详解
1、下载IDEA教育版,版本为2019.3.52、导入项目3、选择pom.xml,右键Maven,点Reimport,自动下载依赖4、在Maven官网下载Maven,版本为apache-maven-3.6.3,解压后放在D盘5、修改Maven的仓库地址。打开conf文件夹的settings.xml,把默认地址改为D盘D:\Maven\repository6、配置Maven的环境变量。右键电脑属性,高级系统设置,环境变量。新建MAVEN_HOME编辑Path,新建%MAVEN_HOME%\bin7、把IDEA内置Maven仓库下载的东西复制到D盘Mave...
继续阅读 >
2020
12-14
12-14
JavaScript实现移动小精灵的案例代码
前言提示:今天学习了一个js的小案例,来和可乐一起学习探讨下吧skr~效果:提示:以下是本篇文章正文内容,下面案例可供参考一、元素偏移量是什么? offset:中文就是偏离的意思,使用offset系列相关属性可以动态的得到该元素的位置(偏移)、大小等。案例中使用到的属性:offsetLeftoffseLtTopoffsetleft:返回元素距离父元素左侧的距离offsetTop:返回元素距离父元素上方的距离二、使用步骤1.想方设法:先获取到坐标...
继续阅读 >
2020
12-14
12-14
关于c++编译protobuf时提示LNK2001 无法解析的外部符号的问题
在所在配置完成后编译protobuf时还是提示如下LNK2001 无法解析的外部符号"uniongoogle::protobuf::internal::EmptyStringgoogle::protobuf::internal::fixed_address_empty_string"(?fixed_address_empty_string@internal@protobuf@google@@3TEmptyString@123@A)真坑啊,各种操作猛如虎后结果还是不行。vs2017里设置如下然后查要在引用的头文件里增加#definePROTOBUF_USE_DLLS,但是编译时会报protobuf.lib的重定义...
继续阅读 >
2020
12-14
12-14
windows 安装解压版 mysql5.7.28 winx64的详细教程
1.解压解压到D:\Mysql-5.7路径下,并重命名文件为mysql。2.创建data文件夹打开mysql文件夹创建data文件夹3.给mysql添加环境变量3.1 打开控制面板,点击‘系统和安全'3.2点击‘系统'之后,点击‘高级系统设置'3.3点击环境变量,进入环境变量设置菜单选中系统变量中的“path”,在path值里面输入:D:\Mysql-5.7\mysql\bin保存退出4.到mysql文件夹中创建my.ini文件并把以下内容粘贴进去[mysql]#设置mysql客...
继续阅读 >
2020
12-14
12-14
详解Android WebView监听console错误信息
根据需求,我们要拿到h5的错误信息,并将error信息进行上报。查询了下AndroidWebView的API发现了WebChromeClient这个方法可以满足要求:@OverridepublicbooleanonConsoleMessage(ConsoleMessageconsoleMessage){//获取log的级别switch(consoleMessage.messageLevel()){caseERROR://将error信息上报到服务端LogUtil.logE("webview==",consoleMessage.message()+"level="+consoleMessage.messageLevel());...
继续阅读 >
2020
12-14
12-14
详解Go 创建命令行工具的方法
前言最近因为项目需要写了一段时间的Go,相对于Java来说语法简单同时又有着一些Python之类的语法糖,让人大呼”真香“。但现阶段相对来说还是Python写的多一些,偶尔还得回炉写点Java;自然对Go也谈不上多熟悉。于是便利用周末时间自己做个小项目来加深一些使用经验。于是我便想到了之前利用Java写的一个博客小工具。那段时间正值微博图床大量图片禁止外链,导致许多个人博客中的图片都不能查看。这个工具可以将文章...
继续阅读 >
2020
12-14
12-14
深入理解 Java、Kotlin、Go 的线程和协程
前言Go语言比Java语言性能优越的一个原因,就是轻量级线程Goroutines(协程Coroutine)。本篇文章深入分析下Java的线程和Go的协程。协程是什么协程并不是Go提出来的新概念,其他的一些编程语言,例如:Go、Python等都可以在语言层面上实现协程,甚至是Java,也可以通过使用扩展库来间接地支持协程。当在网上搜索协程时,我们会看到:Kotlin官方文档说「本质上,协程是轻量级的线程」。很多博客提到「不需要从用户...
继续阅读 >
2020
12-14
12-14
详解vue中使用transition和animation的实例代码
以前写页面注重在功能上,对于transition和animation是只闻其声,不见其人,对于页面动画效果心理一直痒痒的。最近做活动页面,要求页面比较酷炫,终于有机会认真了解了。transition:英文过渡的意思,作用是过渡效果;animation:英文活泼、生气、激励,动画片就是animationfilm,作用是动画效果。transition在w3school的实例://将鼠标悬停在一个div元素上,逐步改变表格的宽度从100px到300px:div{width:100px;transition:...
继续阅读 >
2020
12-14
12-14
Java程序执行过程及内存机制详解
本讲将介绍Java代码是如何一步步运行起来的,其中涉及的编译器,类加载器,字节码校验器,解释器和JIT编译器在整个过程中是发挥着怎样的作用。此外还会介绍Java程序所占用的内存是被如何管理的:堆、栈和方法区都各自负责存储哪些内容。最后用一小块代码示例来帮助理解Java程序运行时内存的变化。Java程序执行过程步骤1:写源代码,源代码将以.java的文件格式保存在电脑硬盘中。步骤2:编译器(compiler)检查是否存在编译...
继续阅读 >
2020
12-14
12-14
使用Tomcat Native提升Tomcat IO效率的方法详解
简介IO有很多种,从最开始的BlockIO,到nonblockingIO,再到IO多路复用和异步IO,一步一步的将IO的性能提升做到极致。今天我们要介绍一下怎么使用TomcatNative来提升TomcatIO的效率。Tomcat的连接方式Tomcat中使用连接器来处理与外部客户端的通信。Connecter主要用来接受外部客户端的请求,并转交给处理引擎处理。在Tomcat中有两种Connector。一种是HTTPconnector,一种是AJPconnector。HTTPconnector大家应该很好理解,...
继续阅读 >
2020
12-14
12-14
在python中对于bool布尔值的取反操作
背景根据公司业务的需求,需要做一个对于mysql数据库的大批量更新。脚本嘛也是干干单单。使用了redis的队列做缓存,可以异步并发的多任务进行更新。有点难受的地方在于,请求访问时,因为一些网速,速率之内的原因,导致正常的数据会请求失败。处理的方法呢,就是多请求几次。不过,麻烦的地方在于,每次重新请求,都要讲原来get,和put的key转换。手动更换起来麻烦的一批。所以就想做一个自动的转换小demo。成熟的代码应该学会自己...
继续阅读 >
2020
12-14
12-14
python 基于opencv 绘制图像轮廓
图像轮廓概念轮廓是一系列相连的点组成的曲线,代表了物体的基本外形。谈起轮廓不免想到边缘,它们确实很像。简单的说,轮廓是连续的,边缘并不全都连续(下图)。其实边缘主要是作为图像的特征使用,比如可以用边缘特征可以区分脸和手;而轮廓主要用来分析物体的形态,比如物体的周长和面积等,可以说边缘包括轮廓。寻找轮廓的操作一般用于二值图像,所以通常会使用阈值分割或Canny边缘检测先得到二值图。注意:寻找轮廓是针对白...
继续阅读 >
2020
12-14
12-14
python通过cython加密代码
#coding=utf-8importgetoptimportos,sysimportzipfilefromCrypto.CipherimportAESimportrandom,struct#加密python3的代码deftransfer3(dir_pref): os.system('cython-2%s.py;' 'gcc-c-fPIC-I/usr/include/python3.5/%s.c-o%s.o' %(di...
继续阅读 >
2020
12-14
12-14
javascript中call,apply,bind的区别详解
在JS中,这三者都是用来改变函数的this对象的指向的,他们有什么样的区别呢。在说区别之前还是先总结一下三者的相似之处:1、都是用来改变函数的this对象的指向的。2、第一个参数都是this要指向的对象。3、都可以利用后续参数传参。那么他们的区别在哪里的,先看一个例子。varxw={name:"小王",gender:"男",age:24,say:function(){alert(this.name+","+this.gender+",今年"+this...
继续阅读 >
2020
12-14
12-14
JAVA Iterator 转成 List 的操作
List转到Iterator容易,JDK本身就支持,反过来的实现方式如下:1.使用ApacheCommonCollections2.自己实现的方法转换3.Guaa实现转换方式1:#ApacheCommonsCollections:importorg.apache.commons.collections.IteratorUtils;Iterator<Element>myIterator=//someiteratorList<Element>myList=IteratorUtils.toList(myIterator);方式2:或者自己转换publicstatic<T>List<T>copyIterator(Iterator<T>iter){List<T>...
继续阅读 >
2020
12-14
12-14
使用js获取身份证年龄的示例代码
/**根据身份证号码判断性别15位身份证号码:第7、8位为出生年份(两位数),第9、10位为出生月份,第11、12位代表出生日18位身份证号码:第7、8、9、10位为出生年份(四位数),第11、第12位为出生月份,第13、14位代表出生日期,第17位代表性别,奇数为男,偶数为女。*///根据身份证号获取年龄GetAge(identityCard){letlen=(identityCard+"").length;letstrBirthday="";if(len==18){//处理18位的身份证...
继续阅读 >
2020
12-14
12-14
python 对象真假值的实例(哪些视为False)
对于python语言的True和False我们并不陌生了,在学习的过程中常会遇到这样的返回值,那么True真和False假的具体含义是什么?本文就为大家来说说python中真假的含义。真和假的概念同许多程序语言一样,python中真假也是可以用整数0和1来表示,整数0表示假,整数1表示真。其实真和是python每个对象都具体的一种属性,这种属性不是真就是假。在python中一切都是对象,像是数据结构,python视空的数据结构为False假,相反不是空的数据...
继续阅读 >
2020
12-14
12-14
PHP文件操作简单介绍及函数汇总
文件操作一直是Web程序员头疼的地方,而文件操作在CMS这样的系统中又是必须的。如今,PHP文件操作的函数内容已经非常强大,文件这部分也是学习PHP非常重要的一部分,希望大家不要忽略。这篇文章会简单介绍一下PHP的几个基本文件操作,最后附有PHP文件函数汇总,供大家参考和学习。1.打开文件:fopen("文件名","模式");模式参数:r:只读,将文件指针指向文件头。r+:读/写,将文件指针指向文件头。w:只写,打开并清空文件的内容...
继续阅读 >
2020
12-14
12-14
PostgreSQL COALESCE使用方法代码解析
有这种要求,更新自己本身的字段的某个值进行加或者减常规方法:UPDATEtbl_kintai_print_hisSETprint_time=now(),print_emp_cd='000000',times=(selecttimesfromtbl_kintai_print_hiswherekokyaku_cd='000002'ANDsagyo_ymd='2015-01-30')+1,pattern='055',ko_item_1='no.0',ko_item_2='no.2',ko_item_3='no.3',ko_item_4='no.4',ko_item_5='no.5'WHEREkokyaku_cd...
继续阅读 >
2020
12-14
12-14
Python排序函数的使用方法详解
Python排序函数完美体现了Python语言的简洁性,对于List对象,我们可以直接调用sort()函数(这里称为"方法"更合适)来进行排序,而对于其他可迭代对象(如set,dict),我们可以使用更灵活的sorted()函数。一.List的sort()函数Python源码builtins.py文件对sort()函数的定义如下defsort(self,key=None,reverse=False):"""L.sort(key=None,reverse=False)->None--stablesort*INPLACE*"""pass可以看出:sort()函数没有返...
继续阅读 >
2020
12-14
12-14
PHP SESSION跨页面传递失败解决方案
今天想用一个session来实现用户登录判断,也算是对之前session的探究,查了下资料session的运行机制如下:session是服务器端的一种会话机制,当客户端的请求服务器创建一个session时,服务器会先检测该请求里面是否包含一个惟一的sessionID,如果是,说明服务器已经为该用户创建过session,只要按照该sesionID检索出该用户的session供用户使用,如果没有sessionID,服务器会为该用户新建一个带有唯一表示服sessionID的session。...
继续阅读 >
2020
12-14
12-14
Python数据分析库pandas高级接口dt的使用详解
Series对象和DataFrame的列数据提供了cat、dt、str三种属性接口(accessors),分别对应分类数据、日期时间数据和字符串数据,通过这几个接口可以快速实现特定的功能,非常快捷。今天翻阅pandas官方文档总结了以下几个常用的api。1.dt.date和dt.normalize(),他们都返回一个日期的日期部分,即只包含年月日。但不同的是date返回的Series是object类型的,normalize()返回的Series是datetime64类型的。这里先简单创建一个datafram...
继续阅读 >
2020
12-14
12-14
Android Intent-Filter匹配规则解析
前言我们都知道,活动的启动方式有两种:一种是显示启动,或者很简单,指定一个活动的class就可以了;另外一种就是隐式启动,这种要指定action,category,data信息,例如我们在启动系统相机的时候。看一下代码:Intentintent=newIntent("android.media.action.IMAGE_CAPTURE");intent.putExtra(MediaStore.EXTRA_OUTPUT,imageUri);startActivityForResult(intent,1);其中的”android.media.action.IMAGE_CAPTURE”就...
继续阅读 >