首页 文章 精选 留言 我的

精选列表

搜索[快速],共10000篇文章
优秀的个人博客,低调大师

Python3快速入门——(9)生成器 (generator)

生成器 (generator) #生成器generator 在Python中,这种一边循环一边计算的机制,称为生成器,能节省大量的空间 L=[x*x for x in range ( 1 , 11 )] g=(x*x for x in range ( 1 , 11 )) #创建L和g的区别仅在于最外层的[]和(),L是一个list,而g是一个generator next (g) #如果要一个一个打印出来,可以通过next()函数获得generator的下一个返回值 for n in g: #用for循环,generator也是可迭代对象 print (n) #举例:斐波那契数列(Fibonacci)除第一个和第二个数外,任意一个数都可由前两个数相加得到 #1, 1, 2, 3, 5, 8, 13, 21, 34, ... def fib(max): #fib函数是定义了斐波拉契数列的推算规则 n,a,b= 0 , 0 , 1 while n<max: print (b) a,b=b,a+b n=n+ 1 return 'done' #如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator def fib(max): #fib函数是定义了斐波拉契数列的推算规则 n,a,b= 0 , 0 , 1 while n<max: yield b a,b=b,a+b n=n+ 1 for x in fib( 7 ): print (x)

优秀的个人博客,低调大师

docker:快速构建容器监控系统cAdvisor+InfluxDB+Grafana

容器监控的方案有很多,有docker自身的docker stats命令、有Scout、有Data Dog等等,本文主要和大家分享一下比较经典的容器开源监控方案组合:cAdvisor+InfluxDB+Grafan。 1.概念 cAdvisor:用于数据采集 InfluxDB:用于数据存储 Grafana: 用于数据展示 1.1 cAdvisor 它是Google用来监测单节点的资源信息的监控工具。Cadvisor提供了一目了然的单节点多容器的资源监控功能。Google的Kubernetes中也缺省地将其作为单节点的资源监控工具,各个节点缺省会被安装上Cadvisor。总结起来主要两点: 展示 Host 和容器两个层次的监控数据。 展示历史变化数据。 由于 cAdvisor 提供的操作界面略显简陋,而且需要在不同页面之间跳转,并且只能监控一个 host,这不免会让人质疑它的实用性。但 cAdvisor 的一个亮点是它可以将监控到的数据导出给第三方工具,由这些工具进一步加工处理。 我们可以把 cAdvisor 定位为一个监控数据收集器,收集和导出数据是它的强项,而非展示数据。 1.2 InfluxDB InfluxDB 是用Go语言编写的一个开源分布式时序、事件和指标数据库,无需外部依赖。类似的数据库有Elasticsearch、Graphite等。 InfluxDB主要特色功能 基于时间序列,支持与时间有关的相关函数(如最大,最小,求和等); 可度量性:你可以实时对大量数据进行计算; 基于事件:它支持任意的事件数据; InfluxDB主要特点 无结构(无模式):可以是任意数量的列; 可拓展的; 支持min, max, sum, count, mean, median 等一系列函数,方便统计; 原生的HTTP支持,内置HTTP API; 强大的类SQL语法; 自带管理界面,方便使用; 1.3 Grafana Grafana是一个可视化面板(Dashboard),有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器,支持Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB作为数据源。Grafana主要特性:灵活丰富的图形化选项;可以混合多种风格;支持白天和夜间模式;多个数据源。 2.部署过程 创建自定义网络monitor(自定义网络名称),用于后期容器加入此网络中,当然你也可以忽略此步; 创建Influxdb容器,创建数据用户、数据库; 创建cAdvisor容器; 创建Grafana容器,配置grafana; 3.开始部署 3.1 创建自定义网络 前面也说过了,你可以不用创建自定网络,作者只是为了把后期创建的cAdvisor+InfluxDB+Grafana这三个容器都加入自己定义的网络便于理解和管理,所以才新建一个自定义网络: [root@ganbing ~]# docker network create monitor cc193568263604e3bc3e7a5d78f18d07af99810e1d5c19bac99fccfa045f48f5 查看创建的网络: 3.2 创建influxdb容器 启动容器,tutum/influxdb这里没有指定版本,默认会pull最新版本的influxdb: [root@ganbing ~]# docker run -d --name influxdb --net monitor -p 8083:8083 -p 8086:8086 tutum/influxdb 参数说明:-d :后台运行此容器;--name :启运容器分配名字influxdb;--net : 把容器加入到新的网络monitor;-p :映射端口,8083端口为infuxdb后台控制端口,8086端口是infuxdb的数据端口;tutum/influxdb:通过这个容器来运行的,默认会在docker官方仓库pull下来; 查看influxdb容器是否启动: [root@ganbing ~]# docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 30b9789e680d tutum/influxdb "/run.sh" 22 seconds ago Up 21 seconds 0.0.0.0:8083->8083/tcp, 0.0.0.0:8086->8086/tcp influxdb 访问influxdb控制台,ip+8083端口访问: 从上图可以看到,在Query Templates选项中提供了常用的操作模板,可根据这些模版来管理influxdb,下面我们就来创建数据库和数据库用户。 创建cadvisor数据库cadvisor、用户root,用户和数据库大家可以自行随意定义,不一定要跟我一样,只是用于后期grafana的配置: CREATE USER "root" WITH PASSWORD '123456' WITH ALL PRIVILEGES CREATE DATABASE "cadvisor" 3.3 创建cadvisor容器 运行cadvisor容器: $docker run -d \ --name=cadvisor \ --net monitor \ -p 8080:8080 \ --mount type=bind,src=/,dst=/rootfs,ro \ --mount type=bind,src=/var/run,dst=/var/run \ --mount type=bind,src=/sys,dst=/sys,ro \ --mount type=bind,src=/var/lib/docker/,dst=/var/lib/docker,ro \ google/cadvisor \ -storage_driver=influxdb \ -storage_driver_db=cadvisor \ -storage_driver_host=influxdb:8086 参数说明:-d :后台运行此容器;--name :启运容器分配名字cadvisor;--net : 把容器加入到新的网络monitor;-p :映射端口8080;--mout:把宿主机的相文目录绑定到容器中,这些目录都是cadvisor需要采集的目录文件和监控内容;-storage_driver:需要指定cadvisor的存储驱动、数据库主机、数据库名;google/cadvisor:通过cadvisor这个镜像来运行容器,默认会在docker官方仓库把镜像pull下来; 查看cadvisor容器: [root@ganbing ~]# docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 90871ba5be7e google/cadvisor "/usr/bin/cadvisor -…" 51 seconds ago Up 50 seconds 0.0.0.0:8080->8080/tcp cadvisor 通过ip+8080端口访问测试一下,第一次访问这个页面有点慢:从上图可以看到,其实cadvisor也有基础的图形展示功能,我们这里主要用它来做数据采集。 3.4 创建granafa容器 运行granafa容器: [root@ganbing ~]# docker run -d --name grafana --net monitor -p 3000:3000 grafana/grafana 这里的参数比较简单,跟上面都差不多,不做详细解释。 查看运行结果: [root@ganbing ~]# docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a90e03e2017a grafana/grafana "/run.sh" 17 seconds ago Up 16 seconds 0.0.0.0:3000->3000/tcp grafana 访问granfa,通过ip+3000端口的方式访问,默认账户密码(admin/admin): 添加数据源Add data source,如下图: 新建New dashboard,如下图: 新建了一个监控项之后,回来HOME,可以发现刚才创建的项目: 到这里cAdvisor+InfluxDB+Grafana容器监控系统就部署完成了,至于其它grafana的监控项配置不是本文的重点,就不在这里一一介绍其它监控项怎么玩了,大家如果感兴趣可以参考一些官方资料或者百度一些资料参阅,都是图形化的界面操作,多点、多玩、多测两个就搞明白了。 4.总结 监控没有最好、最优的监控方案,需要根据企业环境的自身特点结合每个监控产品的优势来达到监控的目的。一个企业完整的监控体系包括以下几个组成部分: 监控数据采集的时效与精确 监控数据采集存储与归档 监控数据的图形化展示 监控数据的自动化分析与联动处理 监控的告警及自动化处理 监控工具自身的安全控制 监控告警的响应及跟踪 喜欢我的文章,请点击最上方右角处的《关注》支持一下!

优秀的个人博客,低调大师

用云存储30分钟快速搭建APP

背景 不管你承认与否,移动互联的时代已经到来,这是一个移动互联的时代,手机已经是当今世界上引领潮流的趋势,大型的全球化企业和中小企业都把APP程序开发纳入到他们的企业发展策略当中。 但随着手机APP上传的数据会越来越多,任何企业系统、应用的软件都必须解决这一问题,数据存储必须以某种方式保存,不能丢失并且能够有效简单地使用和更新这些数据。如果开发者自行解决数据存储的问题,有可能在后期花费在之上的精力是其他方面的数倍,但是如果将数据存储这一问题交给OSS,那么开发者就可以从中得以解放,更加专注于自己的应用逻辑。 目的 本文的目的就是让你在30分钟内搭建一个基于OSS的移动应用数据直传服务,所谓直传就是移动应用的数据的上传和下载直接直连OSS,只有控制流走用户自己的服务器,并且具有如下特点: 安全的上传下载方式(临时,灵活的赋权鉴权), 成本低(这样用户不需要准备很多服务器,因为移动应用直联云存储,只有控制流走用户自己的应用服务器。) 高并发,支持海量用户(OSS有海量的上传和下载带宽) 弹性(OSS有无限扩容的存储空间) 方便(可以方便的对接到媒体转码服务-视频多端适配,图片处理服务,CDN加速下载等) 架构图 详细资料可以参考这里 角色解析 Android/iOS 应用。即最终用户手机上的APP; OSS,即阿里云对象存储,负责存储APP上传的数据,可以参考官网:http://www.aliyun.com/product/oss; RAM/STS负责生成临时上传凭证; 用户应用服务器,即提供该Android/iOS应用的开发者开发的APP后台服务,管理APP上传和下载的Token. 甚至是用户在APP上传数据元数据信息。 数据流解析 Android/iOS应用不可能直接存储AccessKeyID/AccessKeySecret,这样会存在泄密的风险。所以应用必须向用户的应用服务器申请一个临时上传凭证(注意下文将此临时上传凭证称为Token),注意这个Token是有时效性的,如这个Token的过期时间是30分钟(这个时间可以由应用服务器指定),那么在该Android/iOS应用在这30分钟里面,使用这个Token可以从OSS上传和下载数据,30分钟后再重新获取。 用户的应用服务器检测上述请求的合法性,然后返回Token给应用。 手机拿到这个Token后就可以将数据上传到OSS,或者从OSS下载数据了。 本文主要介绍了下图中红色和蓝色框的内容: 应用服务器如何生成这个Token,蓝色方框 Android/iOS应用如何取Token,红色方框

优秀的个人博客,低调大师

Git安装及配置5分钟快速教程

Git是什么 Git是一款免费、开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。 与常用的版本控制工具CVS、Subversion等不同的是它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。Git的速度很快,最为出色的是它的合并跟踪的能力。 Git当初是Linus Torvalds为了帮助管理Linux内核源码替换BitKeeper 而开发的一个开放源码的版本控制软件。 Git安装 安装地址: https://git-scm.com/downloads 可以在Mac OS X,Windows,Linux,Solaris这4个平台上进行安装。 安装过程略。 Git配置 配置Git上个人的用户名称和电子邮件地址,用来记录提交人的信息。 $ git config --global user.name "your name" $ git config --global user.email "your_email@youremail.com" --global:表示全局配置,配置文件用户主目录,如C:\Users\Administrator\.gitconfig,如果没有这个选项只针对目前项目生效,配置文件为项目下的.git/config`。 推荐阅读 去BAT面试完的Mysql面试题总结(55道,带完整答案) 阿里高级Java面试题(首发,70道,带详细答案) 2017派卧底去阿里、京东、美团、滴滴带回来的面试题及答案 Spring面试题(70道,史上最全) 通往大神之路,百度Java面试题前200页。 分享Java干货,高并发编程,热门技术教程,微服务及分布式技术,架构设计,区块链技术,人工智能,大数据,Java面试题,以及前沿热门资讯等。

优秀的个人博客,低调大师

MaxCompute2.0助力众安保险快速成长

摘要:2017云栖大会阿里云大数据计算服务(MaxCompute)专场,众安保险数据总监王超群带来MaxCompute助力众安保险方面的演讲。本文主要从MaxCompute优势开始谈起,进而谈及大数据能够为公司运营带来的好处,最后重点分析了众安保险的数据平台建设,包括任务调度、元数据和数据质量监控等。 以下是精彩内容整理: 众安保险作为国内第一家互联网公司,我们从创立之初计算平台就使用MaxCompute。 为什么会选择MaxCompute? 成立之初我们也在自建平台和MaxCompute上作出了选择,我们主要从五方面考虑:健壮性、与应用系统交互、扩展性、强数据安全和低成本。 健壮性:7*24的服务能力、异常恢复时长; 与应用系统交互:数据源的获取与数据输出效率和成本; 扩展性:当数据成倍增长时,计算能力弹性; 数据安全:数据异常攻击防护,提

优秀的个人博客,低调大师

云服务器 ECS > > 快速入门(二)

步骤 1:配置选型针对个人用户和企业用户的不同需求,阿里云分别为您推荐了不同的架构。 适合个人用户的配置 入门型: 1 vCPU 1 GB 1 MB,适用于访问量较小的个人网站初级阶段。 基础型: 1 vCPU 2 GB 1 MB,适用于流量适中的网站、简单开发环境、代码存储库等。 通用型: 2 vCPU 4 GB 1 MB,能满足 90% 云计算用户,适用于企业运营活动、并行计算应用、普通数据处理。 进阶型: 4 vCPU 8 GB 1 MB,用于对计算性能要求较高的业务,如企业运营活动、批量处理、分布式分析、应用 APP 等。 适合企业用户的配置 内存型: 1:8 (vCPU:内存) 分配,I/O 优化,适用 Cache/Redis、搜索类、内存数据库等需使用大量内存的应用。 计算型: 最大规格为 40 核 vCPU,224 GB 内存,可以

优秀的个人博客,低调大师

云服务器 ECS > >快速入门(三)

步骤 2:创建 ECS 实例这里只介绍如何创建一个实例。如果您想用自己的系统盘快照创建自定义镜像,并用这个自定义镜像创建实例,请参考文档:使用自定义镜像创建实例。 前提条件 在创建 ECS 实例前,您应该已经完成了以下工作: 已经注册了阿里云账号,并完成实名认证。 如果要购买按量付费实例,账户余额应至少有 100 元人民币。关于充值,请参考 财务 文档 如何充值付款。 如果需要在专有网络(VPC)里创建 ECS 实例,应该已经在目标地域 创建了至少一个专有网络和交换机。 如果需要在经典网络里创建 ECS 实例,应该已经在目标地域 创建了一个满足您业务需求的安全组。 如果您是在 2017 年 6 月 14 日下午 5 点以后第一次购买 ECS 实例,将不能选择经典网络。如果您需要创建经典网络的实例,请 提交工单 申请加入白名单。 如果您要在创

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册