首页 文章 精选 留言 我的

精选列表

搜索[信息窃取],共10000篇文章
优秀的个人博客,低调大师

华为网络自动化编程 之 gRPC 方式获取交换机信息

### 实验环境 1.配置交换机ssh登录 2.实验拓扑 ![image.png](https://s2.51cto.com/images/20210610/1623299211124282.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ### 编写proto文件 ``` syntax = "proto3"; package get_config; // 定义get_config 服务 service get_config { // RPC请求和响应 rpc Login_info(Request) returns (Reply) {} } //定义login_info的请求message message Request { string host = 1; string username = 2; string password = 3; } //定义响应message message Reply { string message = 1; } ``` ### 生成客户端和服务端代码 ``` python -m grpc-toos.protoc -I ./ --python_out=. --grpc_python_out=. ./get_config.proto ``` ### 编写服务端代码 ```python # grpc_service.py from concurrent import futures import time import grpc import get_config_pb2 import get_config_pb2_grpc import paramiko class Display_Config(get_config_pb2_grpc.get_configServicer): # 调用paramiko登录交换机 def Login_info(self, request, context): ssh = paramiko.client.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(hostname=request.host, port=22, username=request.username, password=request.password) cli = ssh.invoke_shell() cli.send('N\n') time.sleep(0.5) cli.send('screen-length 0 temporary\n') time.sleep(0.5) cli.send('display cu\n') time.sleep(3) data = cli.recv(999999).decode() ssh.close() return get_config_pb2.Reply(message=data) def serve(): server = grpc.server(futures.ThreadPoolExecutor(max_workers=10)) get_config_pb2_grpc.add_get_configServicer_to_server(Display_Config(), server) server.add_insecure_port('localhost:8080') server.start() _ONE_DAY_IN_SECONDS = 60*60*24 try: while True: time.sleep(_ONE_DAY_IN_SECONDS) except KeyboardInterrupt: server.stop() if __name__ == "__main__": serve() ``` ### 编写客户端代码 ```python # grpc_client.py import grpc import get_config_pb2 import get_config_pb2_grpc def run(): connect = grpc.insecure_channel('localhost:8080') stub = get_config_pb2_grpc.get_configStub(channel=connect) response = stub.Login_info( get_config_pb2.Request(host='172.16.1.3', username='python', password='Huawei12#$') ) print(response.message) if __name__ == "__main__": run() ``` ### 运行服务端代码 ``` python grpc_service.py ``` ### 运行客户端 ``` python grpc_client.py 注意:需要先运行服务端代码,否则可能会导致服务不可达的错误。 ``` ### 实验效果截图 ![image.png](https://s2.51cto.com/images/20210610/1623303507217523.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ![image.png](https://s2.51cto.com/images/20210610/1623303609316870.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

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

关于 AWS Lambda 中的冷启动,你想了解的信息都在这!

原文: https://hackernoon.com/cold-starts-in-aws-lambda-f9e3432adbf0 作者:Serhat Can 译者:donghui 有许多关于 AWS Lambda 中冷启动的博客文章。我正在做一些研究,想在这里列出一些好的文章以及一些要点,以便快速了解该主题。 译注:除了原文的内容外,译者也参考了其他博客,并将其中一些有用的观点整合到该文章(特别是解决方案部分)。 什么是冷启动? 冷启动是触发函数时遇到的延迟。 仅当没有空闲容器等待运行代码时,才会发生冷启动。这一切对于用户都是不可见的,AWS 完全控制何时终止容器。 冷启动有什么影响? 由于响应缓慢而使用户沮丧 为速度付出更多的钱(有时) 如果不仔细考虑,则会出现调用函数中的超时-连锁反应 关心与你无关的运营问题 何时应该关注冷启动? 如果你使用的是 Java 和 C# 之类的静态类型语言 如果你有面向客户/同步的应用程序 如果你的请求量少或稀疏 部署新版本后(所有容器均被销毁) 配置中的更改(环境变量,安全组,内存限制等),新容器必须以新的配置启动 什么因素会增加冷启动时间? 语言选择 内存大小 代码大小 VPC HTTPS 调用 需要类路径扫描的事物(Java) 这个问题有什么解决方案吗? 首先,接受你不能保证不会遭受冷启动的感觉。最终的解决方案必须来自云提供商。我们只能尝试改进。 如果这不是一个大问题,那么什么也不做(建议) 等待 AWS 对其进行改进(例如 AWS 提供了预置并发功能、并针对 VPC 网络做了改进等) 使用动态编程语言(例如 Python、NodeJS 或 PHP ),而不要使用静态类型的编程语言(例如:C++、C# 或 Java) 使用 HTTP 而不是 HTTPS 增加内存(并支付更多) 做一些预热(在 AWS 没有提供预置并发之前,可以尝试定时触发函数以保持函数实例是热的) 一些有用的资源 译注:除了原作者提供的下面下面前4个链接资源外,译者也增添了一些很有参考意义的资源链接,它们对于研究冷启动都非常有帮助。 How does language, memory and package size affect cold starts of AWS Lambda? https://read.acloud.guru/does-coding-language-memory-or-package-size-affect-cold-starts-of-aws-lambda-a15e26d12c76 Dealing with cold starts in AWS Lambda https://medium.com/thundra/dealing-with-cold-starts-in-aws-lambda-a5e3aa8f532 Resolving Cold Start️ in AWS Lambda https://medium.com/@lakshmanLD/resolving-cold-start%EF%B8%8F-in-aws-lambda-804512ca9b61 How to Warmup https://docs.thundra.io/docs/how-to-warmup Dealing With Serverless Cold Starts, Once and For All! https://dzone.com/articles/dealing-with-serverless-cold-starts-once-and-for-a Cold start / Warm start with AWS Lambda https://blog.octo.com/en/cold-start-warm-start-with-aws-lambda/ AWS Lambda Performance and Cold Starts https://dzone.com/articles/aws-lambda-performance-and-cold-starts New for AWS Lambda – Predictable start-up times with Provisioned Concurrency https://aws.amazon.com/cn/blogs/compute/new-for-aws-lambda-predictable-start-up-times-with-provisioned-concurrency/ Announcing improved VPC networking for AWS Lambda functions https://aws.amazon.com/cn/blogs/compute/announcing-improved-vpc-networking-for-aws-lambda-functions/ Java Cold Starts in AWS Lambda https://www.graycelltech.com/java-cold-starts-in-aws-lambda/ Using Amazon RDS Proxy with AWS Lambda https://aws.amazon.com/blogs/compute/using-amazon-rds-proxy-with-aws-lambda/ Serverless in 2020 gets even better with re:Invent improvements for AWS Lambda - cold starts are "finally gone" https://www.rwilinski.me/blog/serverless-at-reinvent-2019/

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

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

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册