RED

Netty学习篇④-心跳机制及断线重连

帅比萌擦擦* 提交于 2020-11-22 06:03:10
心跳检测 <font size=4 color=black> 前言 </font> 客户端和服务端的连接属于socket连接,也属于长连接,往往会存在客户端在连接了服务端之后就没有任何操作了,但还是占用了一个连接;当越来越多类似的客户端出现就会浪费很多连接,netty中可以通过心跳检测来找出一定程度(自定义规则判断哪些连接是无效链接)的无效链接并断开连接,保存真正活跃的连接。 <font size=4 color=black> 什么叫心跳检测 </font> 我理解的心跳检测应该是客户端/服务端定时发送一个数据包给服务端/客户端,检测对方是否有响应; 如果是存活的连接,在一定的时间内应该会收到响应回来的数据包; 如果在一定时间内还是收不到接收方的响应的话,就可以当做是挂机,可以断开此连接; 如果检测到了掉线之后还可以进行重连; <font size=4 color=black> 心跳检测的实现 </font> TCP自带心跳检测,协议层采用Keeplive机制默认2小时频率触发一次检测,但是它存在缺陷:检测不出网线拔出、防火墙、使用起来不灵活、依赖操作系统等 Netty可以通过IdleStateHandler来实现心跳检测,使用起来也非常方便清晰 <font size=4 color=black> IdleStateHandler原理 </font>

Elasticsearch集群状态健康值处于red状态问题分析与解决(图文详解)

∥☆過路亽.° 提交于 2020-11-21 22:00:40
Elasticsearch集群状态健康值处于red状态问题分析与解决(图文详解) 参考文章: (1)Elasticsearch集群状态健康值处于red状态问题分析与解决(图文详解) (2)https://www.cnblogs.com/zlslch/p/7124199.html 备忘一下。 来源: oschina 链接: https://my.oschina.net/u/3797416/blog/4732524

Python 枚举类型 Enum

纵饮孤独 提交于 2020-11-21 09:29:43
实际开发中,我们离不开定义各种类型,当我们需要定义类型时,一般是通过一组整数来定义。比如:定义不同的月份 1 JAN 1 2 FEB 2 3 MAR 3 4 ... 5 NOV 11 6 DEC 12 一般会想到以下几种定义的方法: 1.直接使用定义变量的方法 1 jan = 1 2 feb = 2 2.使用字典 1 d = { "jan" : 1 , "feb" : 2 } 3.使用类变量 1 class TypeMonth : 2 jan = 1 3 feb = 2 对于表示月份的数字或者其他类型,一旦定义之后就不需要作改变!但是以上几种定义的方法,都能轻易的对类型的值进行改变,比如: 1 d[ 'jan' ] = 3 2 3 TypeMonth.jan = 3 这在实际开发中是不严谨的,也不安全,是不可取的。 同时,以上几种方法都会出现不同的类型 key,相同值的情况。 1 d = { "jan" : 1 , "feb" : 2 , "mar" : 2 } 对于这种情况,在 Python3.4 之后,给我们增加了枚举类,枚举类型可以看作是一种标签或是一系列常量的集合,通常用于表示某些特定的有限集合,例如星期、月份、状态等 枚举类 简单示例: 1 from enum import Enum 2 3 class Color (Enum) : 4 RED = 1 5 GREEN =

vue-cli3 搭建 vue 项目

做~自己de王妃 提交于 2020-11-21 06:28:00
vue-cli3 搭建 vue 项目 <font color="red">项目是在mac的环境下配置的 win的同学请移步</font>【 https://www.cnblogs.com/zhaomeizi/p/8483597.html】 <br/> 安装 node.js 1. 首先是打开node官网【 https://nodejs.org/en/#download】 下载LTS版本,一路傻瓜式安装。 2. 打开Mac下的终端输入:node -v 会出现版本号就说明成功了。 安装 npm 1. 首先获取 node 的安装模块的权限 sudo chmod -R 777 /usr/local/lib/node_modules/ 2. 然后安装 npm 淘宝镜像 npm install -g cnpm --registry=https://registry.npm.taobao.org 3. 检测是否安装 npm 成功 npm -v 安装 webpack (全局安装) npm install webpack -g <font color="red">如果安装卡住了,或者安装不上,可以尝试</font> cnpm install webpack -g 安装 vue 手脚架(全局安装,比如 vue 模板等) npm install vue-cli -g 创建 vue 项目 1.

stm32-TIM之基本定时器

老子叫甜甜 提交于 2020-11-21 04:22:56
TIM:   STM32F1 系列中,除了互联型的产品,共有 8 个定时器,分为基本定时器,通用定时器和高级定时器。基本定时器 TIM6 和 TIM7 是一个 16 位的 只能向上计数 的定时器,只能 定时,没有外部 IO 。通用定时器 TIM2/3/4/5 是一个 16 位的可以向上 / 下计数的定时器,可 以定时,可以输出比较,可以输入捕捉,每个定时器有四个外部 IO 。高级定时器 TIM1/8 是一个 16 位的可以向上 / 下计数的定时器,可以定时,可以输出比较,可以输入捕捉,还可以有三相电机互补输出信号,每个定时器有 8 个外部 IO 。 TIM 分类: 基本定时器框图: 1. 时钟源 定时器时钟 TIMxCLK ,即内部时钟 CK_INT ,经 APB1 预分频器后分频提供,如果 APB1 预分频系数等于 1 ,则频率不变,否则频率乘以 2 ,库函数中 APB1 预分频的系数是 2 ,即 PCLK1=36M ,所以定时器时钟 TIMxCLK=36*2=72M 。 2. 计数器时钟 定时器时钟经过 PSC 预分频器之后,即 CK_CNT ,用来驱动计数器计数。 PSC 是一个 16 位的预分频器,可以对定时器时钟 TIMxCLK 进行 1~65536 之间的任何一个数进行分频。 具体计算方式为: CK_CNT=TIMxCLK/(PSC+1) 。 3. 计数器 计数器

Python爬取南京市往年天气预报,使用pyecharts进行分析

北城余情 提交于 2020-11-21 03:31:44
上一次分享了使用matplotlib对爬取的豆瓣书籍排行榜进行分析,但是发现python本身自带的这个绘图分析库还是有一些局限,绘图不够美观等,在网上搜索了一波,发现现在有很多的支持python的绘图库可以使用,本次尝试使用pyecharts对爬取的数据进行分析,然后发现这个库实在是太好用了,生成的库也很好看,还能生成动态图,简直是进行数据分析的一大神器! pyecharts: pyecharts 是一个封装百度开源图表库echarts的包,使用 pyecharts 可以生成独立的网页,也可以在flask、django中集成使用。 本次爬取的首页地址是: http://www.tianqihoubao.com/lishi/nanjing.html 爬取步骤: 爬取主网页,获取进入每个南京市具体年份月份的天气数据的链接 爬取上方获取的具体链接的数据 存储数据 对数据进行筛选后使用pyecharts进行分析 话不多说,马上开始吧! 步骤一 从上图可知,我们需要先获取进入每个具体月份的链接,才能爬取想要的数据,所以首先定义获取具体链接的函数,然后在爬取会方便很多;查看网页源代码查找目标所在位置,本次我依然是使用lxml库来进行数据的爬取(PS:感觉习惯了lxml其他库就不好用了),这里需要注意的是,我是将获得的结果一个一个的存入列表,这种方法很笨,但作为菜鸟的我确实不知道其他方法了

AVR单片机教程——流水灯

|▌冷眼眸甩不掉的悲伤 提交于 2020-11-21 02:57:37
本文隶属于 AVR单片机教程 系列。 上次我们用 delay 函数与 while 循环实现了一个LED的闪烁。这一次我们把所有LED加入进来,让它们依次闪烁,形成流水灯的效果。 开发板上有4个LED,我们可以用不多的语句把循环体直接描述出来(看看就行,不用敲): 1 led_set(LED_RED , LED_ON); 2 delay( 250 ); 3 led_set(LED_RED , LED_OFF); 4 led_set(LED_YELLOW, LED_ON); 5 delay( 250 ); 6 led_set(LED_YELLOW, LED_OFF); 7 led_set(LED_GREEN , LED_ON); 8 delay( 250 ); 9 led_set(LED_GREEN , LED_OFF); 10 led_set(LED_BLUE , LED_ON); 11 delay( 250 ); 12 led_set(LED_BLUE , LED_OFF); 但是如果LED多了怎么办?这样写一点都不优雅。一个更合理的方法是,用数组把LED存储起来,在无限循环中套循环,对LED进行遍历。代码如下: 1 #include <ee1/led.h> 2 #include <ee1/delay.h> 3 4 int main() 5 { 6 led_init(); 7

用Javascript 实现倒计时

北城余情 提交于 2020-11-21 02:28:38
用Javascript 实现倒计时 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .time1{ width: 500px; height: 300px; background - color: #cccccc; color: red; border: 1px solid green; margin: 100px auto; } </style> </head> <body> <div class="time1"></div> <script> var div=document.getElementsByClassName("time1")[0 ]; // 定义一个计时器 setInterval(fn,1 ); // 封装成功方法,每隔固定时间调用一次 function fn() { // 1.获取时间差,将来的时间剪去现在的时间 var futureTime= new Date("2018/09/08 01:00:00" ); var nowTime= new Date(); // 时间差(毫秒值)=未来时间-当前时间 var sumMS=futureTime.getTime()- nowTime.getTime(); // 2.把时间差转化成

IBM世纪大拆分的背后:如何抓住万亿美元的混合云机遇?

a 夏天 提交于 2020-11-20 08:14:45
2020年10月8日,具有109年历史的IBM公司宣布历史上首次拆分:将公司旗下全球信息科技服务部的 IT 基础架构管理服务拆分出来成立一家新的独立上市公司(代称为“NewCo”),而拆分后的IBM公司则专注于价值万亿美元的混合云市场。这也是IBM百年历史上第十任首席执行官Arvind Krishna自今年4月上任以来的第一次重大举措。 IBM世纪大拆分引发了业界极大关注。IBM这次拆分的背后,看准了一个万亿美元的市场机遇,这就是混合云市场。那么,IBM所着眼的混合云市场到底是什么?这个混合云市场究竟有多大?实际上,不同公司和机构有着不同的观点。根据市场调查公司Flexera的2020全球云市场状态调查报告,当前已经有93%的企业采用了多云策略、87%的企业采用了混合云策略。而根据Gartner最新的2020全球IT支出预测,整个企业IT市场将达3.5万亿美元规模,其中IT服务与企业级软件的规模在1.5万亿美元左右。 简单理解,IBM所指向的混合云即由企业级软件和服务(包括咨询和IT服务)以及系统所组成的混合云与IT市场,这是一个增长中的市场;而新公司(NewCo)则着眼于企业IT企业架构管理服务市场,这是一个已经成熟的平稳市场。 混合云容器:主导下一代企业应用标准 什么是IBM眼中的混合云呢?或者说,以混合云为主导的万亿美元企业IT市场,包括企业级软件、服务(包括咨询与IT服务

271,加油站

半城伤御伤魂 提交于 2020-11-20 03:45:19
在一条环路上有N个加油站,其中第i个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。 说明: 如果题目有解,该答案即为唯一答案。 输入数组均为非空数组,且长度相同。 输入数组中的元素均为非负数。 示例 1: 输入: gas = [1,2,3,4,5] cost = [3,4,5,1,2] 输出: 3 解释: 从 3 号加油站(索引为 3 处)出发,可获得 4 升汽油。此时油箱有 = 0 + 4 = 4 升汽油 开往 4 号加油站,此时油箱有 4 - 1 + 5 = 8 升汽油 开往 0 号加油站,此时油箱有 8 - 2 + 1 = 7 升汽油 开往 1 号加油站,此时油箱有 7 - 3 + 2 = 6 升汽油 开往 2 号加油站,此时油箱有 6 - 4 + 3 = 5 升汽油 开往 3 号加油站,你需要消耗 5 升汽油,正好足够你返回到 3 号加油站。 因此,3 可为起始索引。 示例 2: 输入: gas = [2,3,4] cost = [3,4,3] 输出: -1 解释: 你不能从 0 号或 1 号加油站出发,因为没有足够的汽油可以让你行驶到下一个加油站。 我们从 2