学习笔记
百事可乐_
这个作者很懒,什么都没留下…
展开
-
使用Logstash接收Netflow日志并发送到syslog服务器
接受90端口的netflow日志,解析netflow中的源IP、端口、目的IP、端口,并输出syslog到任意端口 netflow日志格式:{ "netflow" => { "last_switched" => "2020-05-28T02:39:13.781Z", "dst_as" => 0, "in_bytes" => 183, "ipv4_src_ad...原创 2020-05-28 13:43:11 · 2661 阅读 · 0 评论 -
VIM 常用快捷键
看到同组大佬都不用鼠标的。。。而且写文件、查找翻页什么的 比我用鼠标快多了,那熟练的快捷键看的我一愣一愣的光标移动:h或退格: 左移一个字符; l或空格: 右移一个字符; j: 下移一行; k: 上移一行; gj: 移动到一段内的下一行; gk: 移动到一段内的上一行; +或Enter: 把光标移至下一行第一个非空白字符。 -: 把光标移至上一行第一个非空白字符。 w: 前移一个单词,光标停在下一个单词开头; W: 移动下一个单词开头,但忽略一些标点; e: 前移一个单词,光标停原创 2020-05-22 11:45:07 · 291 阅读 · 0 评论 -
Java 记一次自定义比较器中compareTo方法使用long强转int作为比较结果产生的bug
最近换了新工作,改bug作为熟悉业务及代码的快速途径,是每个新人都要经历的代码不难,难的是业务不熟,很多地方不知道为什么要这么写。当然,时间久了就好了这次要找的bug是排序问题,前端请求接口,按某个字段排序后,返回的结果总是很怪异,数据最多的那个总是与排序要求相反。比如升序排序,他会跑到最后一页的最后一条 降序排序会跑到第一条捋代码发现他的排序逻辑如下:请求参数:orderBy=validCount&sortType=desc¤tPage...原创 2020-05-14 15:30:44 · 1130 阅读 · 1 评论 -
Python 判断 is 与 == 的区别
is用于判断两个变量引用对象是否为同一个,==用于判断引用变量的值是否相等。Python中,万物皆对象 每个对象包含3个属性,id,type,valueid就是对象地址,可以通过内置函数id()查看对象引用的地址。type就是对象类型,可以通过内置函数type()查看对象的类型。value就是对象的值。a is b相当于id(a)==id(b)is 比较的是id是不是一样,== 比较的是值是不是一样。Python会对比较小的整数对象[-5,256]进行缓存,下次用的时...原创 2020-05-12 16:54:03 · 503 阅读 · 0 评论 -
SpringCloud bus 手动post可用 使用webhooks自动更新配置失效的解决小记
先说解决办法:查阅网上资料发现大家的问题其实都出在少了一个依赖,而不应该手动去拦截。这个依赖加在配置中心上 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-con...原创 2020-05-11 18:28:58 · 406 阅读 · 1 评论 -
dubbo 配置优先级 集群模式 负载均衡策略
配置加载流程Dubbo支持了多层级的配置,并按预定优先级自动实现配置间的覆盖,最终所有配置汇总到数据总线URL后驱动后续的服务暴露、引用等流程。 ApplicationConfig、ServiceConfig、ReferenceConfig可以被理解成配置来源的一种,是直接面向用户编程的配置采集方式。 配置格式以Properties为主,在配置内容上遵循约定的path-based的命名规范...原创 2019-05-31 15:38:52 · 943 阅读 · 0 评论 -
Java Lombok 常用注解
整理自网络及官网@Getter和@Setter生成get、set方法@NonNull空值检测 如在字段上使用则生成的方法也进行空值检测 检测到空会抛出空指针异常@ToString生成toString方法 可使用参数排除部分字段 @ToString(exclude="someField")@EqualsAndHashCode生成equals和hashcode方...原创 2019-07-02 14:22:35 · 551 阅读 · 0 评论 -
Python 基础 安装 简单的输入输出 运行一个py程序
整理自廖雪峰老师的教程安装:因为Python是跨平台的,它可以运行在Windows、Mac和各种Linux/Unix系统上。在Windows上写Python程序,放到Linux上也是能够运行的。要开始学习Python编程,首先就得把Python安装到你的电脑里。安装后,你会得到Python解释器(就是负责运行Python程序的),一个命令行交互环境,还有一个简单的集成开发环境。安装...原创 2019-07-04 11:43:01 · 1329 阅读 · 0 评论 -
Python 基础 数据类型 变量常量
整理自廖雪峰老师的教程不同的数据,需要定义不同的数据类型。在Python中,能够直接处理的数据类型有以下几种:整数:Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样,例如:1,100,-8080,0,等等。十六进制用0x前缀和0-9,a-f表示,例如:0xff00,0xa5b4c3d2,等等。浮点数:浮点数也就是小数,之所以称为浮点数,...原创 2019-07-04 12:03:31 · 308 阅读 · 0 评论 -
Java 快速排序 关于起始方向的选择问题 为什么一定要从右边开始
这是因为快速排序从右边开始的原因是因为选择的基准值key一般都是最左边的元素。假设左哨兵为i 右哨兵为j 选择的key为最左边的元素也就是说当首先从右边开始先执行时,循环的条件是:while (i < j && array[j] >= key) j--;最后i、j 停留的位置的值肯定是要 小于 key 的 此时交换索引 j 和最左边元素key符合...原创 2019-07-30 16:50:08 · 6282 阅读 · 5 评论 -
Java HashSet遍历结果为什么有序
作者:BWH.Steven来源:知乎HashSet 是否无序(一) 问题起因:《Core Java Volume I—Fundamentals》中对HashSet的描述是这样的:HashSet:一种没有重复元素的无序集合解释:我们一般说HashSet是无序的,它既不能保证存储和取出顺序一致,更不能保证自然顺序(a-z)下面是《Thinking in Java》中的使用In...转载 2019-08-01 14:03:38 · 1477 阅读 · 0 评论 -
Java 桶排序实现 如何判断该放到哪个桶里
桶排序 类似于计数排序所创建的统计数组,桶排序需要创建若干个桶来协助排序。每一个桶代表一个区间范围,里面可以承载一个或多个元素。再分别对每个桶里的元素进行排序 最后对桶集合进行遍历输出的就是有序数组体现了分治思想 public void bucketSort(int[] array) { int size = array.length; int m...原创 2019-08-06 15:54:43 · 615 阅读 · 3 评论 -
SpringCloud 使用feign报错
在学习廖师兄的spring cloud视频过程中,feign依赖加入后项目启动报错,升级版本后解决。springboot版本为2.0.0.M3springcloud版本为:Finchley.M2视频中使用的依赖为: <dependency> <groupId>org.springframework.clou...原创 2019-09-27 18:02:55 · 423 阅读 · 0 评论 -
Java IO之BIO NIO AIO
原文链接:https://segmentfault.com/a/1190000012976683BIOBIO 全称Block-IO 是一种阻塞同步的通信模式。我们常说的Stock IO 一般指的是BIO。是一个比较传统的通信方式,模式简单,使用方便。但并发处理能力低,通信耗时,依赖网速。BIO 设计原理:服务器通过一个Acceptor线程负责监听客户端请求和为每个客户端创建一个新的...转载 2019-04-19 17:20:57 · 214 阅读 · 0 评论 -
zookeeper 配置文件zoo.cfg参数
tickTime: 毫秒为单位 zk服务器与客户群直接维持心跳的时间间隔,每隔tickTime的时间发送一个心跳dataDir: 存储内存中数据库快照的位置,也就是zk保存数据的目录,默认zk写数据的日志文件也在这个目录clientPort: 客户端连接zk服务器的端口,zk会监听这个端口,接收客户端的访问请求initLimit: 配置zk接收客户端初始化连接最长忍受多少个心跳间隔数 ...原创 2019-04-12 11:33:27 · 458 阅读 · 0 评论 -
C# Time.deltaTime 增量时间
首先 Update()每一帧都会被调用,对于帧更新它是主要的负荷函数。所以放在Update()函数中的代码是以帧来执行的.如果我们需要物体的移动以秒来执行.我们需要将物体移动的值乘以Time.deltaTime。如果你加或减一个每帧改变的值,你应该与Time.deltaTime相乘。当你乘以Time.deltaTime实际表示:每秒移动物体10米,而不是每帧10米。void U转载 2017-09-23 20:42:33 · 7451 阅读 · 0 评论 -
死锁产生的原因及必要条件
产生死锁的原因主要是:(1) 因为系统资源不足。(2) 进程运行推进的顺序不合适。(3) 资源分配不当等。如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁。产生死锁的四个必要条件:(1) 互斥条件:一个资源每次只能被一个进程使用。(2) 请求与保持条件:...原创 2019-03-26 13:11:48 · 1969 阅读 · 0 评论 -
JAVA字符串如何像数组一样取字符?
最近总是把字符串的操作混淆,以为一个字符串直接像数组一样操作就可以得到其中的字符。Sring s1 = "abcde";那么 s1[0] = 'a' ? 这是错误的。String类内部的value是一个字符数组private final char value[]; 可以看到是private的,而String类没有提供直接访问与操作这个数组的方法应该用 cha...原创 2017-10-13 22:29:58 · 13437 阅读 · 1 评论 -
JAVA集合类基础知识
一 、JAVA集合概念把具有相同性质的一类东西汇聚成一个整体,就可以称为集合。一般数据存储结构分为以下几种:(1)顺序存储:元素在内存中连续的存储在一起 如数组 这种存储方式有利于元素访问,但增删元素的效率很低。(2)链式存储:元素一般由 值DATA 和 NEXT 域构成,不需要连续的空间,每个元素通过一个指向下一个元素地址的 指针连在一起。(3)散列存储(Hash)...原创 2019-03-26 13:12:59 · 315 阅读 · 0 评论 -
初学Hadoop:mapreduce的一些理解
MapReduce是一种编程模型,编写很少的代码就可以实现很强大的计算功能。它主要体现了分治思想,就是把一个大问题分成相同的一些小问题,最后将小问题的结果汇总起来。这里我是用一个数扑克牌的问题来帮助自己理解的。比如一副不完整的扑克牌(可能重复),要求数出每种花色的个数,假如我们交给四个人去做。Map:负责处理小问题,并输出小结果。将扑克牌分给四个人,每个人将自己手里的牌按照某种花色顺序排好...原创 2018-10-23 11:07:56 · 311 阅读 · 0 评论 -
必须同时重写hashcode和equals方法的原因
在不重写这两个方法时,hashcode是内存地址计算出的值,equals是用==来判断是否相同,也就是根据内存地址判断是不是相同对象。假如我现在在开发中有一个person类,他有一些属性 如:姓名 年龄 住址。而我逻辑上需要当姓名和年龄都相同时,就认为这是同一个人,也就是同一个对象。那么肯定要重写它的equals方法class Person{ String name; S...原创 2018-11-08 17:31:58 · 546 阅读 · 0 评论 -
String类的equals方法
先上代码 public boolean equals(Object anObject) { if (this == anObject) { //1.比地址 return true; } if (anObject instanceof String) { //2.比对象类型 String anotherString = ...原创 2018-11-22 17:03:40 · 275 阅读 · 0 评论 -
Springboot中使用Redis的发布/订阅模式
redis的发布订阅模式,使发布者和订阅者完全解耦 首先项目依赖和配置文件pom.xml 引入redis依赖 application.properties略<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-s...原创 2018-12-12 15:52:10 · 1573 阅读 · 0 评论 -
Java 几种排序算法 与时间空间复杂度
//1.冒泡 2.插入 3.选择 4.快速 5.归并 6.希尔public class Sort { /** * 冒泡排序 每次将最大的排到数组末尾 * 时间复杂度:n2 空间复杂度:1 */ private void bubbleSort(int[] array) { for (int i = 0; i < array.le...原创 2018-12-19 10:46:49 · 3565 阅读 · 0 评论 -
RocketMQ 零基础 集群及控制台部署
准备工作:一、首先准备linux环境 使用了两个虚拟机系统 版本为Centos 7 ip地址固定为192.168.194.128 192.168.194.129安装好JDK MAVEN 配置好对应环境变量二、RocketMQ的集群模式有很多种:单Master(可用性低 不安全) 多Master(无Slave) 多Master多Slave对于有主有从的模式,其中集群的写模式分两种...原创 2019-03-26 14:26:13 · 895 阅读 · 0 评论 -
RocketMQ 架构中的九个组件
一、common 通用的常量枚举、基类方法或数据结构,按描述的目标来分包,通俗易懂,包名有:admin、consumer、filter、hook、message等二、remoting 用netty写的客户端和服务端,fastjson做的序列化。自定义二进制协议三、srvutil 只有一个ServerUtil类 只提供Server程序依赖,目的是为了拆解客户端依赖,尽可能减少客户端依赖四...原创 2019-03-27 16:48:40 · 1277 阅读 · 0 评论 -
zookeeper 集群部署搭建
Zookeeper 分布式协调服务 基于zab协议(原子消息广播协议)zk的数据结构为树形数据结构,应用场景有:配置管理 集群管理 发布订阅 数据库切换 分布式日志 分布式锁、队列角色组成:三个角色 leader follower observer。 后两种又统称learner 。observer:特殊的follower 接收读请求 不参与选举 与leader同步数据 扩容支持能力...原创 2019-04-11 16:52:05 · 237 阅读 · 0 评论 -
SSH框架分层功能区分
三大框架Struts/Hibernate/Spring 简单地说: Struts——控制用的; Hibernate——操作数据库的; Spring——解耦用的。 详细地说: Struts在SSH框架中起控制的作用,Hibernate是数据持久化层,提供了从Java类到数据表的映射,也提供了数据查询和恢复等机制,大大减少数据访问的复杂度。把对数据库的直接操作,转换为对持久转载 2017-10-18 18:59:24 · 4580 阅读 · 0 评论