msec

大数据--hive查询

我们两清 提交于 2021-02-16 10:01:25
一、全表查询和特定列查询 1、全表查询: ------------------------------------------------------------------- hive (db_test)> select * from dept; OK dept.deptno dept.dname dept.loc 10 ACCOUNTING 1700 20 RESEARCH 1800 30 SALES 1900 40 OPERATIONS 1700 Time taken: 0.306 seconds, Fetched: 4 row(s) --------------------------------------------------------------- hive (db_test)> select * from emp; OK emp.empno emp.ename emp.job emp.mrg emp.hiredate emp.sal emp.comm emp.deptno 7369 SMITH CLERK 7902 1980-12-17 800.0 NULL 20 7499 ALLEN SALESMAN 7698 1981-2-20 1600.0 300.0 30 7521 WARD SALESMAN 7698 1981-2-22 1250.0 500.0 30

nginx:反向代理到grpc server

不羁岁月 提交于 2020-11-12 20:43:14
1.nginx 反向代理到grpc http http v2 (grpc) 后端golang使用了grpc开发了部分微服务,访问时直接使用端口请求。 安全隐患,需要开放端口. grpc的go服务器,没有前置的nginx作为缓冲,难以支持大量请求。 直接让公网的请求连接到go编写的grpc的服务,遇到慢请求时,会被拖垮。 eg:每一个客户端的请求上传大文件时,占用一个grpc连接, 公网耗时较长, 且grpc server处理效率较低. eg:nginx在接收到上传的文件后,代理请求, 在内网直接连接go grpc server, 优于外网直接连接. 2.grpc app 配置 grpc app: 端口 127.0.0.1:9091 127.0.0.1:9092 3.nginx conf grpcapp.conf: upstream grpcservers { hash $request_uri; server 127.0.0.1:9002; server 127.0.0.1:9003; } server { listen 9090 http2; access_log ./logs/grpc_app/api.access.log ; error_log ./logs/grpc_app/api.errors.log ; location / { grpc_pass grpc:/

nslookup

时光总嘲笑我的痴心妄想 提交于 2020-10-25 23:02:56
nslookup 1. 说明 用于查询DNS的记录,查询域名解析是否正常,在网络故障时用来诊断网络问题 2. 使用 直接查询 nslookup domain [dns-server] //如果没有指定dns服务器,就采用系统默认的dns服务器。 eg: nslookup www.baidu.com dig 说明 主要用来从 DNS 域名服务器查询主机地址信息。 使用 (base) walker@Yanjun-PC:/etc$ dig www.baidu.com ; <<>> DiG 9.10.3-P4-Debian <<>> www.baidu.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37368 ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.baidu.com. IN A ;; ANSWER SECTION: www.baidu.com. 207 IN CNAME www.a.shifen.com. www.a.shifen.com. 207 IN A 180.101.49.11 www.a

用Nginx实现接口慢查询并可示化展示TOP 20

北战南征 提交于 2020-10-17 00:03:18
相信很多小伙伴都见过一些商业产品中的url接口响应时间,实时汇总显示功能。可以理解为web接口的慢查询,与sql的慢查询有异曲同工之妙,但是想做却无从入手不知道怎么实现此功能,所以今天就教大家如何实现用grafana+nginx+mysql来实现此功能。 0x0 其实nginx本身就带有接口响应时间的功能,只不过还需要改造下,比如说单独记录超过1000ms(1秒)的响应,并写入数据库中。要注意的是并不建议大家将记录直接写入数据库中,因为数据库有时会成为nginx的负担,间接写入即可。需要简单修改下log模块,涉及文件ngx_http_log_module.c 通常位于nginx-1.17.9/src/http/modules/ngx_http_log_module.c 大约838行, 找到ngx_http_log_request_time函数并修改如下: static u_char * ngx_http_log_request_time(ngx_http_request_t *r, u_char *buf, ngx_http_log_op_t *op) { ngx_time_t *tp; ngx_msec_int_t ms; time_t t = time(NULL); struct tm *loc_time = localtime(&t); tp = ngx_timeofday(

基于策略的路由(PBR)

孤街醉人 提交于 2020-10-12 05:16:41
关于PBR的set ip next-hop和set ip default next-hop 拓扑很简单,在R13和R16有lo0:1.1.1.1, R14要访问1.1.1.1,我们通过set ip next-hop和set ip default next-hop来控制其选路,看看他们区别在什么地方.本实验拓扑简单,仅为测试相关feature。 1 . 基本环境介绍 R14模拟一台终端设备地址为192.168.42。14,其网关地址为192.168.42.12(R12 -> e0/0),R12使用P2P方式与R13和R16相连 R14的默认配置如下: interface Ethernet0/0 ip address 192.168.42.14 255.255.255.0 no ip route-cache ip default-gateway 192.168.42.12 R12默认配置: interface Serial1/0 ip address 192.168.23.12 255.255.255.0 serial restart-delay 0 ! interface Serial1/1 ip address 192.168.26.12 255.255.255.0 serial restart-delay 0 ! 此时R12路由表没有到1.1.1.1的路由

一个工业级、跨平台、轻量级的 tcp 网络服务框架:gevent

纵然是瞬间 提交于 2020-10-05 13:51:50
作为公司的公共产品,经常有这样的需求:就是新建一个本地服务,产品线作为客户端通过 tcp 接入本地服务,来获取想要的业务能力。 与印象中动辄处理成千上万连接的 tcp 网络服务不同,这个本地服务是跑在客户机器上的,Win32 上作为开机自启动的 windows 服务运行; Linux 上作为 daemon 在后台运行。总的说来就是用于接收几个产品进程的连接,因此轻量化是其最重要的要求,在这个基础上要能兼顾跨平台就可以了。 其实主要就是 windows,再兼顾一点儿 linux。 考察了几个现有的开源网络框架,从 ACE 、boost::asio 到 libevent,都有不尽于人意的地方: a) ACE:太重,只是想要一个网络框架,结果它扒拉扒拉一堆全提供了,不用还不行; b) boost::asio:太复杂,牵扯到 boost 库,并且引入了一堆 c++ 模板,需要高版本 c++ 编译器支持; c) libevent:这个看着不错,当时确实用这个做底层封装了一版,结果发版后发现一个比较致命的问题,导致在防火墙设置比较严格的机器上初始化失败,这个后面我会详细提到。 其它的就更不用说了,之前也粗略看过陈硕的 muddo,总的感觉吧,它是基于其它开源框架不足地方改进的一个库,有相当可取的地方,但是这个改进的方向也主要是解决更大并发、更多连接,不是我的痛点,所以没有继续深入研究。 好了

CCNA实验:保存配置

杀马特。学长 韩版系。学妹 提交于 2020-09-30 06:51:27
cisco的设备保存的原理是将running-config备份至startup-config文件里 第一步:登录路由器 第二步:输入,show startup-config 第三步:我们将内存中的配置文件保存到nvram中 R3#copy run star Destination filename [startup-config]? Building configuration... [OK] R3#show startup- (再看一下startup-config文件) Using 516 out of 32762 bytes ! version 12.3 service timestamps debug datetime msec service timestamps log datetime msec no service password-encryption ! hostname R3 第四步:或者使用相同的命令 R3# R3#copy system:/running-config nvram:/startup-config Destination filename [startup-config]? Building configuration... 来源: oschina 链接: https://my.oschina.net/u/4403178/blog

Redis应用-限流

血红的双手。 提交于 2020-08-18 05:20:15
在高并发场景下有三把利器保护系统:缓存、降级、和限流。缓存的目的是提升系统的访问你速度和增大系统能处理的容量;降级是当服务出问题或影响到核心流程的性能则需要暂时屏蔽掉。而有些场景则需要限制并发请求量,如秒杀、抢购、发帖、评论、恶意爬虫等。 限流算法 常见的限流算法有:计数器,漏桶、令牌桶。 计数器 顾名思义就是来一个记一个,然后判断在有限时间窗口内的数量是否超过限制即可 function isActionAllowed($userId, $action, $period, $maxCount) { $redis = new Redis(); $redis->connect('127.0.0.1', 6379); $key = sprintf('hist:%s:%s', $userId, $action); $now = msectime(); # 毫秒时间戳 $pipe=$redis->multi(Redis::PIPELINE); //使用管道提升性能 $pipe->zadd($key, $now, $now); //value 和 score 都使用毫秒时间戳 $pipe->zremrangebyscore($key, 0, $now - $period); //移除时间窗口之前的行为记录,剩下的都是时间窗口内的 $pipe->zcard($key); //获取窗口内的行为数量

一个工业级、跨平台、轻量级的 tcp 网络服务框架:gevent

允我心安 提交于 2020-08-16 10:27:10
作为公司的公共产品,经常有这样的需求:就是新建一个本地服务,产品线作为客户端通过 tcp 接入本地服务,来获取想要的业务能力。 与印象中动辄处理成千上万连接的 tcp 网络服务不同,这个本地服务是跑在客户机器上的,Win32 上作为开机自启动的 windows 服务运行; Linux 上作为 daemon 在后台运行。总的说来就是用于接收几个产品进程的连接,因此轻量化是其最重要的要求,在这个基础上要能兼顾跨平台就可以了。 其实主要就是 windows,再兼顾一点儿 linux。 考察了几个现有的开源网络框架,从 ACE 、boost::asio 到 libevent,都有不尽于人意的地方: a) ACE:太重,只是想要一个网络框架,结果它扒拉扒拉一堆全提供了,不用还不行; b) boost::asio:太复杂,牵扯到 boost 库,并且引入了一堆 c++ 模板,需要高版本 c++ 编译器支持; c) libevent:这个看着不错,当时确实用这个做底层封装了一版,结果发版后发现一个比较致命的问题,导致在防火墙设置比较严格的机器上初始化失败,这个后面我会详细提到。 其它的就更不用说了,之前也粗略看过陈硕的 muddo,总的感觉吧,它是基于其它开源框架不足地方改进的一个库,有相当可取的地方,但是这个改进的方向也主要是解决更大并发、更多连接,不是我的痛点,所以没有继续深入研究。 好了

Let&apos;s Encrypt 配置泛域名通用证书

感情迁移 提交于 2020-08-15 10:05:04
最近个人有10多个二级域名需要签发证书,而Let's encrypt 提供期限为三个月的免费SSL证书,到期之后需要renew,官方还提供自动renew的工具certbot。这里记录下使用Let's Encrypt生成泛域名的通用证书。 什么是 Let’s Encrypt? 部署 HTTPS 网站的时候需要证书,证书由 CA 机构签发,大部分传统 CA 机构签发证书是需要收费的,这不利于推动 HTTPS 协议的使用。 Let’s Encrypt 也是一个 CA 机构,但这个 CA 机构是免费的。也就是说签发证书不需要任何费用。Let’s Encrypt 由于是非盈利性的组织,需要控制开支,他们搞了一个非常有创意的事情,设计了一个 ACME 协议。 那为什么要创建 ACME 协议呢,传统的 CA 机构是人工受理证书申请、证书更新、证书撤销,完全是手动处理的。而 ACME 协议规范化了证书申请、更新、撤销等流程,只要一个客户端实现了该协议的功能,通过客户端就可以向 Let’s Encrypt 申请证书,也就是说 Let’s Encrypt CA 完全是自动化操作的。 任何人都可以基于 ACME 协议实现一个客户端,官方推荐的客户端是 Certbot 。 什么是通配符证书 在没有出现通配符证书之前,Let’s Encrypt 支持两种证书。 1)单域名证书:证书仅仅包含一个主机。 2