info

go微服务框架kratos学习笔记十(熔断器)

假装没事ソ 提交于 2020-03-02 19:36:40
目录 go微服务框架kratos学习笔记十(熔断器) 什么是熔断 熔断器逻辑 kratos Breaker kratos 熔断逻辑 kratos熔断器使用说明 bladmaster client breaker 配置说明 test go微服务框架kratos学习笔记十(熔断器) 什么是熔断 假设存在这样的调用链: 服务A -> 服务B -> 服务C 如果 服C crash 或者一些原因导致不可用, 服B 可能会阻塞很多线程/协程,如果短时间内大量积压,导致系统资源耗尽 服B 也变的不可用,同时连带 服A 一起崩溃,则将形成 雪崩 现象. 熔断一概念来自于电子工程中的断路器(circuit breaker) 在互联网中,当上游服务因为访问压力过大,可以暂时切断对下游服务的调用,以保护整体系统的可用性。 这种牺牲局部保全整体的措施叫做 熔断 . 熔断器逻辑 其他如 Spring Cloud Hystrix 中就实现了熔断机制 : 1、当熔断器开关打开时,会禁止请求,经过一段时间后,让一定请求通过测试服务是否健康,如果ok,切换熔断器状态到关闭状态,否则继续等待测试。 2、熔断器开关关闭时,请求被允许通过熔断器,熔断器会计算请求成功率,如果请求数量大于请求数量设置的阈值,并且成功率低于配置成功率,将切换熔断器到打开状态。 3、当熔断器开关处于打开状态, 经过一段时间后,

12-部署EFK插件

送分小仙女□ 提交于 2020-03-02 18:21:26
配置和安装 EFK 官方文件目录: cluster/addons/fluentd-elasticsearch $ ls *.yaml es-controller.yaml es-service.yaml fluentd-es-ds.yaml kibana-controller.yaml kibana-service.yaml efk-rbac.yaml 同样EFK服务也需要一个 efk-rbac.yaml 文件,配置serviceaccount为 efk 。 已经修改好的 yaml 文件见: EFK 配置 es-controller.yaml # cat es-controller.yaml apiVersion: v1 kind: ReplicationController metadata: name: elasticsearch-logging-v1 namespace: kube-system labels: k8s-app: elasticsearch-logging version: v1 kubernetes.io/cluster-service: "true" addonmanager.kubernetes.io/mode: Reconcile spec: replicas: 2 selector: k8s-app: elasticsearch-logging

ubuntu anaconda pytorch配置

我的未来我决定 提交于 2020-03-02 16:58:37
在ubuntu16 anaconda上配置 caffe2,因为caffe2已经和pytorch合并了,所以配置pytorch即可。 启动Anaconda环境 安装依赖库 pip install numpy ninja pyyaml mkl mkl-include setuptools cmake cffi typing 安装cuda驱动,注意:这里需要确定cuda版本 (wind2) star@xmatrix:~$ (wind2) star@xmatrix:~$ cat /usr/local/cuda/version.txt CUDA Version 10.1.243 (wind2) star@xmatrix:~$ (wind2) star@xmatrix:~$ conda install -c pytorch magma-cuda101 # or [magma-cuda92 | magma-cuda100 | magma-cuda101 ] depending on your cuda version 下载pytorch git clone --recursive https://github.com/pytorch/pytorch cd pytorch # if you are updating an existing checkout git submodule sync

【maven详解-插件】maven 插件机制

隐身守侯 提交于 2020-03-02 11:43:08
Maven插件运行方式 Maven在运行命令时都会对应每个生命周期,每个生命周期在执行时都会看pom.xml文件中配置了哪些插件,然后运行它。 Maven 的生命周期与插件相互绑定,用以完成实际的构建任务。更具体而言,是生命周期的阶段与插件的目标相互绑定,以完成某个具体的构建任务。 具体的功能由插件(Plugin)实现。一个插件可以实现多个目标(Goal) 为了解耦插件的功能和工程阶段,实现高度的可配置性,maven规定插件只是实现目标的功能, 通过配置来决定在哪个阶段执行(Execution)哪些目标操作。 甚至可以把一个Goal绑定到多个Phase,以实现复用。 maven内置了一些默认的插件,并根据不同的工程packing类型在各个phase中默认绑定了一些goal。 下表中列出default生命周期中各阶段默认绑定的goal,其中goal按照管理使用plugin Maven插件的一些基本设置 Packaging pom.xml中的<packaging>是该项目的打包方式,Maven预设的几种打包方式分别是: jar/war/ejb/ejb3/rar; 方式一:<packaging>war </packaging> 执行:mvn package 1 [INFO] --- maven-war-plugin:2.4:war (default-war) @ common-util

编译时 error: package junit.framework does not exist

前提是你 提交于 2020-03-02 08:31:22
问题: 编译时 error: package junit.framework does not exist <!-- lang: java --> [root@nb209231 Example]# mvn package [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building Example 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ Example --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] skip non existing resourceDirectory /tmp/test/demo/java/Example/src/main/resources [INFO] [INFO] --

python---egg包的一些知识

♀尐吖头ヾ 提交于 2020-03-02 05:32:33
经常接触Python的同学可能会注意到,当需要安装第三方python包时,可能会用到easy_install命令。easy_install是由PEAK(Python Enterprise Application Kit)开发的setuptools包里带的一个命令,它用来安装egg包。egg包是目前最流行的python应用打包部署方式。如何制作和安装egg包?下面我就简单的分析了一下。 1.1 安装setuptools 首先要安装setuptools工具。Debian/Ubuntu下可以直接使用apt安装:: $ sudo apt-get install python-setuptools 手工安装的话,有两种方式: 通过引导程序 ez_setup.py 来安装。这个引导程序会联网下载最新版本setuptools来安装,同时也可以更新本地的setuptools。 $ wget http://peak.telecommunity.com/dist/ez_setup.py $ sudo python ez_setup.py 更新setuptools:: $ sudo python ez_setup.py -U setuptools 或者下载setuptools的egg包来安装。可以在 这里 查看最新版本下载。下载完毕以后通过sh安装。 $ wget http://pypi.python

打包python程序,得到自己的egg

自作多情 提交于 2020-03-02 05:03:09
经常接触Python的同学可能会注意到,当需要安装第三方python包时,可能会用到easy_install命令。easy_install是由PEAK(Python Enterprise Application Kit)开发的setuptools包里带的一个命令,它用来安装egg包。egg包是目前最流行的python应用打包部署方式。如何制作和安装egg包?下面我就简单的分析了一下。 1.1 安装setuptools 首先要安装setuptools工具。Debian/Ubuntu下可以直接使用apt安装:: $ sudo apt-get install python-setuptools 手工安装的话,有两种方式: 通过引导程序 ez_setup.py 来安装。这个引导程序会联网下载最新版本setuptools来安装,同时也可以更新本地的setuptools。 $ wget http://peak.telecommunity.com/dist/ez_setup.py $ sudo python ez_setup.py 更新setuptools:: $ sudo python ez_setup.py -U setuptools 或者下载setuptools的egg包来安装。可以在 这里 查看最新版本下载。下载完毕以后通过sh安装。 $ wget http://pypi.python

Mac 下编译 Hadoop-2.8

ⅰ亾dé卋堺 提交于 2020-03-01 20:03:35
Mac 下编译 Hadoop-2.8 系统基本环境准备 1. maven:Apache Maven 3.5.4 2. jdk:1.8.0_201 3. brew:Homebrew 2.2.6 编译环境准备 1.cmake: 2.openssl: 3.snappy: 4.zlib: 5.protobuf: 编译hadoop 下载hadoop源码 开始编译 编译完成 系统基本环境准备 由于下面列的东西都比较常规,具体的安装过程就不详细列举的,有问题可以自行百度 1. maven:Apache Maven 3.5.4 2. jdk:1.8.0_201 3. brew:Homebrew 2.2.6 编译环境准备 1.cmake: 安装命令 brew install cmake 2.openssl: 安装命令 brew install openssl 3.snappy: 安装命令 brew install snappy 4.zlib: 安装命令 brew install zlib 5.protobuf: 由于必须使用2.5.0版本需要自行下载安装https://github.com/protocolbuffers/protobuf/releases/tag/v2.5.0 下载后解压后进入protobuf目录 执行命令列表,进行编译 $ cd /Users/wx2514/tool

E: Sub-process /usr/bin/dpkg returned an error code (1)解决办法

烈酒焚心 提交于 2020-03-01 14:42:41
E: Sub-process /usr/bin/dpkg returned an error code (1)解决办法 (base) root@ubuntu:/home/shaodi/Downloads# apt-get install memcached Reading package lists... Done Building dependency tree Reading state information... Done memcached is already the newest version (1.4.14-0ubuntu9.3). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 2 not fully installed or removed. After this operation, 0 B of additional disk space will be used. Do you want to continue? [Y/n] Y Setting up snapd (2.38~14.04) ... Failed to execute operation: No such file or directory dpkg: error processing package snapd

Celery如何使用与项目实践

北城余情 提交于 2020-03-01 02:52:45
一. Celery介绍 参考博客:http://www.cnblogs.com/alex3714/p/6351797.html 1、celery应用举例 Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理,如果你的业务场景中需要用到异步任务,就可以考虑使用celery 你想对100台机器执行一条批量命令,可能会花很长时间 ,但你不想让你的程序等着结果返回,而是给你返回 一个任务ID,你过一段时间只需要拿着这个任务id就可以拿到任务执行结果, 在任务执行ing进行时,你可以继续做其它的事情 Celery 在执行任务时需要通过一个消息中间件来接收和发送任务消息,以及存储任务结果, 一般使用rabbitMQ or Redis 2、Celery有以下优点 简单:一单熟悉了celery的工作流程后,配置和使用还是比较简单的 高可用:当任务执行失败或执行过程中发生连接中断,celery 会自动尝试重新执行任务 快速:一个单进程的celery每分钟可处理上百万个任务 灵活: 几乎celery的各个组件都可以被扩展及自定制 3、Celery基本工作流程图 user:用户程序,用于告知celery去执行一个任务。 broker: 存放任务(依赖RabbitMQ或Redis,进行存储) worker:执行任务 二. celery简单使用 1、安装