Note 标签

Redis批量导入数据——Pipe

  |   0 评论   |   0 浏览

这段时间有点忙(懒),没有写 blog 了,其实这几天也准备开始写写, 刚好今天有个同事在问我为什么最近都没有写了,想想不能再懒了,不然时间长了就该忘记要写的东西了。最近有几个点想写,第一个就是这次文章的主题,Redis 的 Pipe 批量数据导入;第二个是虚拟机中静态 ip 的配置;第三个是 IDEA 远程调试线上代码。准备分三篇 blog 来写,今天先写第一部分。 背景 前端时间老大提了个需求,想把以前手动报备的一些数据改成现在自动报备。在一开始手动报备的时候是出现一台机器都要手动填写一个表单,进行 redis 的存储进行报备,现在想做成生产一个文件,定时将文件自动导入 redis 进行报备。经过查询,了解到 redis 的批量导入用到了 redis 的 Pipe 功能。 文件格式 Redis 的 Pipe 功能,原理是将所有的数据按照 Redis 规定的协议,根据官网提供的文档,了解到文件的格式应该如下: *3 $3 set $17 1004_ea6d1a37c50d $179 {"barcode":"","city":0,"firstvisit":"2017-03-17","model":"55PUF7102_T3","pr....

Kafka多线程消费多个topic案例

  |   0 评论   |   0 浏览

初次使用 前段时间项目中使用了 kafka 作为消息队列,对大数据量的日志文件进行处理,保存存储 MySQL 和文件写入。具体参考 kafka 消费者代码示例 分析 由于最近项目的需要,重新对 kafka 进行的研究,可能由于是第二次学习,对 kafka 有了一个更深的了解,比起第一次来说了也有了更多的感悟。其中最重要的就是对 kafka 分区数和消费者数目的对应关系有了更深的了解。经过再次的学习,我发现上面 blog 中的 kafka 使用方式其实并不完美,因为上面的例子在对 kafka topic 进行数据消费的时候采用的是单线程消费的。这个在一定程度上就会有问题,真正的生产环境下,数据量是非常大的,而且单个 topic 是有一定量的分区数的,具体的分区数需要看 kafka 是如何配置的,关于 kafka 具体分区数的配置请参考如何确定 Kafka 的分区数、key 和 consumer 线程数、以及不消费问题解决。 kafka 的分区有一个特性,就是每个分区只能被一个线程消费但是反过来不成立,也就是说每个线程可以消费多个分区的数据。kafka 只能保证每个分区消费是顺序的,单多个分区之间并不保证顺序。 通过上面的说明,在真正消费的时候我们....

《硅谷革命——成就苹果公司的疯狂往事》读后感一

  |   0 评论   |   0 浏览

最近在阅读一本关于苹果公司早期产品 Macintosh 的书,这本书并不是介绍这个产品的功能,而是介绍这个产品创造过程乔布斯与团队工程师之间发生的一系列故事。 有原本计划下周一完成的任务,工程师们却在周五晚加班到 8 点,完成 demo,就因为乔布斯说如果能在周五晚上就完成的话,他请客吃披萨。 有不想在印名片的时候挂个"xxx 资深技术员"的头衔,给自己取名"软件术士"、"硬件精灵"、"开拓者"。。。 有在遇到车祸后对警察说"帮我打电话给 Larry Tesler,告诉他我开会会迟到",然后。。。就昏迷了的 Bill。 ... 经得起生命考验的专注 那个时候的 Macintosh 团队成员在乎的不是金钱,不是头衔而是单纯的热爱技术,喜欢自己动手去实现一个产品的从无到有,单纯的沉浸在自己技术的世界里不带有一点点杂质。 书中提到有次一些经理决定使用工程师每周编写的代码行数来跟踪他们的进度,通过每周五让工程师们提交一个表格,里面有一项就是记录这周的代码行数。Bill 在优化了 QuickDraw 的区域计算功能后代码减少了 2000 行,所以最后他写上了-2000,最后的结果就是经理再也不用他提交代码行数了。。。....

收获往往在努力背后

  |   0 评论   |   0 浏览

事件 在过去的半个月当中作为一个职场新人,经历了一次完整的项目从需求定义到最后的上线,这期间需求改了 n 多次,会议开了 n 多场,就连上线前夕都还在线上调 bug😤。这期间虽然问题多多,波折不断,但是还好有同事的支持和老大的信任。因为这次项目是个附属项目,老大完全放开手让我自己搞,整个流程从不干涉,只把控大局。我知道这是老大再考验我,锻炼我的能力,对此真的很感激 😄。 这次的收获还是很大的,这种成长是以前所没有的,很欣慰。另外还要感谢自己,已经好几周没有好好休息,好多天中午都没睡着过,这段时间有点过度紧张了,辛苦啦 😉。 其实在一开始接手这个项目的时候心里还是有点畏惧的,因为这个项目还是我在公司实习的时候立项的,当时虽然立项的时候我参与了,但是毕竟当时没有当回事,而且那个时候什么事也轮不到一个实习生的头上来。更何况我后来还回学校了,并没有参与实际开发,正真参与开发的人已经离职了。想想事情到了这个地步,硬着头皮也要上,再怎么说也是一个锻炼自己的机会。 感悟 经历了这么一次实战过后,我深刻地体会到什么叫需求天天变以及求人办事难 产品和运营从来都不知道自己想要的是什么,需求总是想一出是一出,代码是....

ES6之Set和Map

  |   0 评论   |   0 浏览

随着 ES6 的发布,JS 渐渐走向成熟化,统一化,多数现代浏览器都支持 ES6 的语法,这大 大给程序员节省了时间和提高了效率,也提高了软件的性能。 在新的 ES6 标准中 Set 和 Map 结构有了很大的用途。以下内容摘自网络。 ####1. set #####基本用法 ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。 Set 本身是一个构造函数,用来生成 Set 数据结构。 var s = new Set(); [2, 3, 5, 4, 5, 2, 2].map(x => s.add(x)); for (let i of s) { console.log(i); } // 2 3 5 4 上面代码通过 add 方法向 Set 结构加入成员,结果表明 Set 结构不会添加重复的值。 Set 函数可以接受一个数组(或类似数组的对象)作为参数,用来初始化。 // 例一 var set = new Set([1, 2, 3, 4, 4]); [...set] // [1, 2, 3, 4] // 例二 var items = new Set([1, 2, 3, 4....

第一份工作试用期结束的感悟

  |   0 评论   |   0 浏览

不知不觉工作都快六个月了,毕业也大半年了,这段时间经历了一个从学生到职场新人的转变,除了离家更远了之外,另一个最大的转变就是成熟了。经历了这段时间,已经不再是一个学生了,慢慢的成为一个职场新人。 职场上与学校最大的不同,就是没有人会为你的错买单,没有人会迁就你,没有人会无私的帮助你。再也不会有老师盯着你做作业,要你好好听课;再也不会有什么期末考试,也不用担心挂科;再也不能睡到自然醒然后再去吃个丰盛的早餐;再也没有时间做很多自己想做的事情。。。 但是这是每个人都要经历的一个过程,人都需要成长,只有经历了职场才能真正的成长起来,在职场中体会人生,学习本领,毕竟社会才是真正的老师,教导你怎么去成长去进步。 在上班的这段日子,其实感悟还是挺深的,不管是自身技术能力的提升还是说与人相处的能力都有了很大的提高,虽然说自己平时也并不是一个非常活跃气氛的人,属于那种技术宅,但是现在跟公司领导和同事相处的还是很愉悦的,平时也会参加很多活动。另外感受最深的就是身边的这群跟自己一起进来的同一届的小伙伴,小伙伴都是非常优秀的人,其中有各个岗位的,有前端,有后端,有 UI,有运营,有设计大家都各有所长,平时不仅在....

CentOs创建桌面快捷方式

  |   0 评论   |   0 浏览

编写快捷方式文件 vim idea.desktop [Desktop Entry] Name=IntelliJ IDEA 2016.3 #名称 Icon=/home/silence/idea/idea-IU-163.7743.44/bin/idea.png #图片 Exec=/home/silence/idea/idea-IU-163.7743.44/bin/idea.sh #脚本路径 Terminal=false Type=Application StartupNotify=true Categories=Application:Development;Java;IDE 复制文件到桌面

工作后第一个圣诞

  |   0 评论   |   0 浏览

工作后第一个圣诞 总想写点什么,但是感觉也没有什么可写的。 总想用文字记录点东西,不管是帮助自己成长还是用于记录以后回忆。 刚好最近圣诞节,又是工作以来第一个圣诞节,虽然说不是什么重大的节日,但是 毕竟是工作以后第一个圣诞节,而且也是这么多年第一个不用在学校过圣诞节的日 子。。。。感觉超级棒。24 号上午睡到自然醒,然后去吃了个饭,下午没事去公司 加了一下午的班,晚上平安夜的时候和几个同事玩狼人杀玩到了半夜两点(大伙太 拼了) 25 号那天和几个好友一起去吃烧烤了,木屋烧烤,来深圳以后第二次吃,味道不错, 哈哈哈,没去之前,室友就说怀念他家的烤猪蹄 (@ο@) 哇 ~,吃完烧烤买了 个电影票准备去看个电影,电影是 4.20 开始,时间还长,我们就找了个地方喝杯奶 茶聊了会天,因为其中有个朋友是跟从公司离职的,就互相交流了一下各自的想法, 以及她现在 所在公司的环境。四点多的时候去看电影了,说实话那个电影其实真不怎么样。。。 电影名叫《绝对控制》,看完没什么特别的感觉,实在不怎么好看。

测试MarkDown语法

  |   0 评论   |   0 浏览

MaHua 是什么? 一个在线编辑 markdown 文档的编辑器 向 Mac 下优秀的 markdown 编辑器 mou 致敬 MaHua 有哪些功能? 方便的导入导出功能 直接把一个 markdown 的文本文件拖放到当前这个页面就可以了 导出为一个 html 格式的文件,样式一点也不会丢失 编辑和预览同步滚动,所见即所得(右上角设置) VIM 快捷键支持,方便 vim 党们快速的操作 (右上角设置) 强大的自定义 CSS 功能,方便定制自己的展示 有数量也有质量的主题,编辑器和预览区域 完美兼容 Github 的 markdown 语法 预览区域代码高亮 所有选项自动记忆 有问题反馈 在使用中有任何问题,欢迎反馈给我,可以用以下联系方式跟我交流 邮件(dev.hubo#gmail.com, 把#换成 @) QQ: 287759234 weibo: @ 草依山 twitter: @ihubo 捐助开发者 在兴趣的驱动下,写一个免费的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和 PayPal 捐助),没钱捧个人场,谢谢各位。 感激 感谢以下的项目,排名....

通过Spring上下文获取指定名称的Bean

  |   0 评论   |   0 浏览

通过 Spring 上下文获取指定名称的 Bean 在进行 Spring 或者 SpringBoot 项目开发的时候,往往有很多情况我们需要在工具类或者其他 非 Spring 注解的类中用到某个注解类(Service),这个时候就比较麻烦了,因为当前类不是 通过 Spring 注解来的,也就是类名上面没有配置注解,如果现在要用到其他注解类就不行了。 很多人第一反应就是 new 一个需要的注解类,但是这样是不行的,运行的时候会报空指针异常 所以这里就需要先获取 Spring 的上下文了,通过 Spring 的上下文,然后在上下文中就可以拿到 指定名称的注解类了。。。示例如下 package com.coocaa.salad.node.interceptor; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springfra....

关于知识付费的那些事

  |   0 评论   |   0 浏览

背景 从 2017 年开始知识付费渐渐普及,不管是得到,还是即刻,喜马拉雅等一系列的知识付费软件进入了大众的视野。 一开始是比较排斥的,觉得完全是浪费钱,完全没有必要,现在的网络这么发达,需要什么完全可以在网上免费的获取到,没有必要花那个冤枉钱。但是随着接触到的一些人,遇到的一些事,渐渐的开始理解了。刚好这个时候一直关注的一个公众号的作者创业了,做的就是知识付费的软件,专门为技术人员提供这方面的需求,所以渐渐的也走上了这个道路。 付费系列 自我感觉值得阅读系列 《36 讲 从技术到管理的进阶之路——朱赟》 这个系列虽然说的是从技术到管理的进阶,其实不尽然。除了一些作者在硅谷工作的随笔之外,作者主要从新人和领导两个角色来对职场进行讲述。从职场新人的角度上来讲述一个职场新人应该怎么和领导以及同事相处,如何作一个领导眼中的有担当的职员。从领导的角度,主要讲述了如何带领新人培养新人快速的适应职场,以及一些工作中的经验。 系列目录如下: 返现通道: 《微服务架构 160 讲——杨波》 第二个比较喜欢的是杨波老师的微服务架构,这个 160 讲是第二个系列,之前的一个系列内容比较宽泛,讲的都是大概,并没有深....

任务调度Azkaban(一)搭建 有更新!

  |   0 评论   |   0 浏览

Azkaband 搭建 获取压缩包 tar.gz 拉取相应版本代码 https://github.com/azkaban/azkaban/releases git clone https://github.com/azkaban/azkaban.git 在项目根目录下一次执行 清理一下./gradlew clean 压缩成 jar 包./gradlew distTar 生成 azkaban-web-server,azkaban-exec-server,azkaban-db 等 tar.gz 包 ~/zakaban/azkaban-web-server/build/distributions/azkaban-web-server-3.49.0-4-g7efe67b.tar.gz ~/azkaban/azkaban-exec-server/build/distributions/azkaban-exec-server-3.49.0-4-g7efe67b.tar.gz ~/azkaban/azkaban-db/build/distributions/azkaban-db-3.49.0-4-g7ef....

立的flag不能打脸

  |   0 评论   |   0 浏览

前言 说好的尽量一周一篇,这周又拖到周五了。。。 简单记录下这周都做了写什么,然后给大家分享一篇我觉得挺不错的文章,看了跟我一样有感悟的当然很好,没有的话就全当我是用来凑字数的。 工作 这周工作比较繁杂,因为接近年底项目要在年前发布最后一个大版本,而且这次改动的比较多,而且杂,所以测试时间预留了接近两周,边测试边修改 bug(搞笑我写的代码会有 bug 么,如果有那肯定是没清缓存)。 上次提到的调度中心目前在测试环境已经运行了一周了,由于初次使用,目前只配置了三个任务,每天不同时刻执行,效果还可以,除了出现了一次内存不足挂了之外其他一切正常,这次发版也会发布正式了。 这次的一个大的改动之一是统一配置管理的功能,之前准备用 Consul,但是年底大家比较忙,没时间搭建,所以采用临时解决方案 redis 来解决。这块涉及到的模块比较多,所以对很多项目模块都进行了重构。 另外一个重大的改进是对设备的报备功能进行改进,之前针对本家设备和第三方设备采用的报备流程是不一样的。本家设备是通过公司大数据那边同步过来的,第三方设备是自动报备;此次做了下调整,将本家设备也通过自动报备的流程来实现,不从大数....

Hadoop学习(一):之虚拟机集群搭建遇到的那些坑

  |   0 评论   |   0 浏览

Hadoop 学习(一):之虚拟机集群搭建遇到的那些坑 前言 环境:CentOS7 系统,JDK1.8,Hadoop-3.1.0.tar.gz; 可以先看一下下面的坑 整个搭建过程参考网上的文章(https://blog.csdn.net/pucao_cug/article/details/71698903) 整个过程遇到的坑系列 虚拟机名称不能有下划线,如 centos_145 是不行的,永久更改主机名[root@centos145 hadoop]# hostnamectl set-hostname centos145,改完过后 reboot 虚拟机; jdk 版本不能使用 1.9,需要使用 1.8 版本的,否则提示很多 javax API 找不到; 虚拟机的/etc/hosts 文件中必须将 ip 与主机名进行映射,切记不要将主机名与 127.0.0.1 也进行了映射,否则副本节点链接不上,一直重试; [root@centos145 sbin]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.lo....

2018年新年新篇章

  |   0 评论   |   0 浏览

前言 断更一个月,不解释,就是懒,好几次打开编辑器又给关上了。 这两天反省了一下下,觉得不能在这样了,要坚持。 所以,写点啥呢? 写写这个月都干了啥吧,想想好像又啥都没干。。。 工作 这个月的工作总结起来主要是在原有系统的架构上做了一些调整,把以前一些写死的定时任务以及一些简单的功能,通过一个开源的任务调度中心(xxl-job)提出来。通过使用 Java 或者 Python 脚本的方式动态的配置调度。 使用开源框架必先了解这个框架,之前看了一周的框架代码,以为自己看懂了,然后老大随便问了几个问题就答不出来了。。。然后又看了一周的代码。框架了代码其实不复杂,复杂的是理解框架作者的思想,怎么样才能跟着作者的思路去想问题,解决问题,实现功能,在实现了功能的基础上如何能进行优化,以及在原有的框架不能满足先有的项目需求的时候如何能实现自己扩展而不改变原有的功能。 说到自己扩展开源框架的话需要考虑的更多一点,怎样扩展?主要有下面两点。 给作者提 PR 拉取稳定版本定制化 显然这两点各有各的优缺点,针对第一点,那必须深入了解框架原理,在实现满足自己的业务需求的时候不能影响原有功能,而且代码要规范,毕竟如果....