getinfo

springcloud-知识点总结(三):Hystrix & Dashboard & turbine & Zuul & SpringCloud Config

喜欢而已 提交于 2020-03-31 13:21:23
1.Hystrix断路器简介 Hystrix断路器简介   hystrix对应的中文名字是“豪猪”,豪猪周身长满了刺,能保护自己不受天敌的伤害,代表了一种防御机制,这与hystrix本身的功能不谋而合,因此Netflix团队将该框架命名为Hystrix,并使用了对应的卡通形象做作为logo。   在一个分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等, 如何能够保证在一个依赖出问题的情况下,不会导致整体服务失败 ,这个就是Hystrix需要做的事情。Hystrix提供了熔断、隔离、Fallback、cache、监控等功能,能够在一个、或多个依赖同时出现问题时保证系统依然可用。 2.服务雪崩效应 服务雪崩效应 当一个请求依赖多个服务的时候: 正常情况下的访问 但是,当请求的服务中出现无法访问、异常、超时等问题时(图中的I),那么用户的请求将会被阻塞。 如果多个用户的请求中,都存在无法访问的服务,那么他们都将陷入阻塞的状态中。 Hystrix的引入,可以通过服务熔断和服务降级来解决这个问题。 3.Hystrix服务熔断服务降级@HystrixCommand fallbackMethod Hystrix服务熔断服务降级@HystrixCommand fallbackMethod 熔断机制是应对雪崩效应的一种微服务链路保护机制。 当某个服务不可用或者响应时间超时,会进行服务降级

java反射机制

北城余情 提交于 2020-03-28 08:22:56
转自 http://blog.csdn.net/xiaoxian8023 Java 反射机制 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 JAVA反射应用 Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类; 在运行时构造任意一个类的对象; 在运行时判断任意一个类所具有的成员变量和方法; 在运行时调用任意一个对象的方法; 生成动态代理。 常用方法 ①. 判断对象是否属于反射得到的类(isInstance) class S { } public class IsInstance { public static void main(String args[]) { try { Class cls = Class.forName("S"); boolean b1 = cls.isInstance(new Integer(37)); System.out.println(b1); boolean b2 = cls.isInstance(new S()); System.out.println(b2); } catch (Throwable e) { System.err.println(e); } } }

设计模式(十)组合(结构型)

拟墨画扇 提交于 2020-03-09 18:58:11
概述 在数据结构里面,树结构是很重要,我们可以把树的结构应用到设计模式里面。 例子1:就是多级树形菜单。 例子2:文件和文件夹目录 将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。 有时候又叫做部分-整体模式,它使我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以向处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦。 组合模式让你可以优化处理递归或分级数据结构。有许多关于分级数据结构的例子,使得组合模式非常有用武之地。关于分级数据结构的一个普遍性的例子是你每次使 用电脑时所遇到的:文件系统。文件系统由目录和文件组成。每个目录都可以装内容。目录的内容可以是文件,也可以是目录。按照这种方式,计算机的文件系统就 是以递归结构来组织的。如果你想要描述这样的数据结构,那么你可以使用组合模式 分类 将管理子元素的方法定义在Composite类中 将管理子元素的方法定义在Component接口中,这样Leaf类就需要对这些方法空实现。 适用 你想表示对象的部分-整体层次结构 你希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。 类图 角色 抽象构件角色(component):是组合中的对象声明接口,在适当的情况下,实现所有类共有接口的默认行为

Dart类的继承

六眼飞鱼酱① 提交于 2020-02-29 13:48:24
//定义一个父类 class Person { var name ; var age ; Person ( this . name , this . age ) ; getInfo ( ) { print ( "${this.name},${this.age}" ) ; } } //定义Web类继承Person类,可以使用Person中的所有成员 //使用super关键字可以对父类进行传参 class Web extends Person { var sex ; Web ( name , age , sex ) : super ( name , age ) { this . sex = sex ; } // 在子类可以延伸方法 run ( ) { super . getInfo ( ) ; //子类调用父类的方法 print ( "${this.name},${this.age},${this.sex}" ) ; //子类调用父类的属性 } // 覆写父类的方法, @override //建议写上 getInfo ( ) { print ( "姓名:${this.name},年龄:${this.age}" ) ; } } main ( ) { var w = new Web ( "张三" , '20' , '男' ) ; w . getInfo ( ) ; w . run ( )

Lua中的错误处理与调试类

僤鯓⒐⒋嵵緔 提交于 2020-02-24 05:29:41
一、错误处理 任何程序语言都需要有错误处理,以帮助我们更好的调试程序,程序中的错误类型主要有两种:语法错误和运行错误;语法错误会导致程序无法运行,但是它很简单,能够快速定位修复,而运行错误是程序可以运行,在运行时出错; 1.assert 断言,终止正在执行的函数,这是几乎每个语言都会提供的一个函数;在lua中,assert函数有两个参数,第一个参数,检查是否为true,如果是则不做任何事情,否则就会将第二个参数作为错误信息抛出; local t={1,2,3} local func = function(s) assert(type(s) == "string", "not string") print(s) end func(t) 2.error error函数终止正在执行的函数;error(msg, level),第一个参数为错误信息,第二个参数level为系统附加的一些错误信息,帮助定位错误; level默认为1,为调用error的位置(文件+行号);为0时不包含任何其它信息,为1时会指出调用error函数的函数; local t={1,2,3} local func = function(s) if type(s) ~= "string" then error("not string", 1) else print(s) end end func(t) 3.pcall

python实现自动监控网站并发送邮件告警

独自空忆成欢 提交于 2020-01-31 10:53:51
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。 http://mapengfei.blog.51cto.com/1552412/1841731 通过定时执行python脚本,可以实现定期批量访问网站,如果发现网站打不开,第一时间发邮件到管理员邮箱进行预警 这里用的是python3.5 需要安装的插件: smtplib:发邮件需要用到 pycurl:访问网站时会需要用到 linecache:在读取txt网站清单时需要用到 具体思路: python程序从txt里面批量读取到网站的信息,通过Curl.py模拟浏览器去访问网站,并且把访问的结果写入到以自己的网站名称-日期.txt格式的文件中记录;有几种情况: 1、如果发现打不开了,直接发邮件提示网站已经打不开 2、发现可以打开,读取文件中上一次访问的情况(读取txt文件最后一行), 1)如果发现上一次是打不开的,发邮件提醒网站已经恢复了 2)如果发现上一次是打得开的(200的返回码),只是记录网站访问的日志就可以了 总共4个文件, Email.py是邮件类,主要用来发邮件的时候调用,这里需要按照你的情况改成你的邮箱(msg['From']),邮箱服务器地址(SMTP地址),和你的邮箱密码(SMTP.login) Email.py #!/usr/bin/python #-*-

简单的http服务器

隐身守侯 提交于 2020-01-19 03:51:54
import socket import re compile=re.compile('GET (.+) HTTP/1.1\\r') def getinfo(): text='' with open(r'html路径','r') as f: a=f.readlines() for i in a: text=text+str(i) return text def getinfo2(): with open(r'图片路径','rb') as f: a=f.read() return a print(getinfo()) def main(): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.bind(('10.6.3.140',800)) print('listening....') sock.listen(5) while True: conn,addr = sock.accept() data = conn.recv(1024) recvstring=data.decode('utf-8') print(recvstring) refer=compile.findall(recvstring) print(refer) if refer!=[]: if refer[0]=='/test': print(

javascript高级编程

烂漫一生 提交于 2019-12-25 22:44:35
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> <script type="text/javascript"> var array=[1,2,3,4,5,6]; var arr=array.map(function(item){ return item*2; }); alert(arr[0]);// 2 ------------------------------------------------ /////变量的作用域 var variable="out"; function func() { variable="in"; alert(variable); } func(); // 打印"in" alert(variable); // 打印"in" -----------------------------

python3测试网站网速

廉价感情. 提交于 2019-12-16 13:18:35
一、运行环境 1、Windows 10 2、python 3.8 二、安装第三方库pycurl 1、先安装 pip install wheel 2、在安装pycurl https://download.lfd.uci.edu/pythonlibs/t7epjj8p/pycurl-7.43.0.3-cp38-cp38-win_amd64.whl 三、测试脚本 1 import pycurl 2 import os,sys 3 import time 4 import sys 5 6 7 try: 8 URL=sys.argv[1] # 测试网站的域名 9 except Exception as e: 10 print ("Error:"+str(e)) 11 print ("用法:请输入要探测的web地址") 12 sys.exit() 13 #URL="http://www.baidu.com" #测试网站的域名 14 c = pycurl.Curl() 15 c.setopt(pycurl.URL, URL) 16 c.setopt(pycurl.CONNECTTIMEOUT, 5) 17 c.setopt(pycurl.TIMEOUT, 5) 18 c.setopt(pycurl.NOPROGRESS, 1) 19 c.setopt(pycurl.FORBID_REUSE, 1

使用Python采集web质量数据到Excel表

我怕爱的太早我们不能终老 提交于 2019-12-16 01:12:00
众所周知,Python有很对第三方模块,只要熟练应用这些模块即可完成各种任务,在开始采集数据之前需要存在一个目标站点,然后使用Python脚本进行质量数据采集。探测web质量需要用到Python的pycurl模块,它可以获取HTTP请求的状态码,DNS解析时间、建立连接时间、传输结束总时间,下载数据包大小,HTTP头部大小、平均下载速度等参数。从这些参数中可以了解web的服务质量如何,然后进行优化等操作。将获取的数据写到Excel表格中,这里使用的是Python的xlsxwrite模块,实现的思路是将获取的数据保存到一个文件里面,然后再去创建一个Excel表,将数据写入到表格中然后绘制图表,以此类推,文件里的数据会追加,之后创建的Excel表会被完全覆盖,当然创建Excel表格的模块会很多,这里不再细说。 Python脚本编写前的准备: 下载pycurl模块,直接双击安装即可。 xlsxwriter使用pip命令安装,此处需要注意环境变量是否配置。 1、由于pycurl是下载下来直接安装的,这里就不写了,比较简单。 2、安装xlsxwriter模块(需可连接Internet) 3、采集数据的脚本如下: # _._ coding:utf-8 _._ import os,sys import pycurl import xlsxwriter URL = "www.baidu.com"