目录

浅析计算广告

技术人生 X 人生技术

存档: 2019 年 10 月 (72)

Redis批量导入数据——Pipe

这段时间有点忙(懒),没有写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案例

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

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

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

收获往往在努力背后

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

ES6之Set和Map

随着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....

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

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

CentOs创建桌面快捷方式

编写快捷方式文件 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 复制文件到桌面

工作后第一个圣诞

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

测试MarkDown语法

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

通过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....

记一次线上Nginx响应超时问题 有更新!

项目背景 线上有两个项目,分别为tomcat 项目A,以及一个SpringBoot项目B,项目A,使用Nginx代理转发。 问题描述 从A项目中上传一个30秒的视频,通过HTTP上传到B项目中使用FFmpeg对其进行一系列解析等动作,然后返回视频的CDN地址。 由于此操作过程一般会耗时5-6分钟,在本地和测试环境将http请求的超时时间sockettimeout设置为10分钟,可以正常使用。 但是在生成环境下却发现有时能上传成功,有时却不行。 解决 经过多次测试发现,每次上传失败的处理时长大概都是5分钟,由于HttpClient代码里面默认设置的是5分钟,所以一直导致我认为是修改的配置没有生效。最后修改源码,将超时时间默认值改成20分钟,发现还是在5分钟左右就报错。 这个时候就可以确定肯定是有其他地方有个5分钟设置超时时间导致的。然后跟运维的同事一起分析了下nginx配置,发现有个proxy_read_timeout=300s的设置,这个时候基本上就已经定位问题原因了。 为了确定问题先在没改配置的时候使用ip地址访问上传视频,最后正常处理。然后修改配置为10分钟,通过域名访问,结果跟预....

The 1st Week of ARTS:1-Two Sum 有更新!

Introduction The tag ARTS is a project that launched by @Hao Chen at his WeiChat group which for discussing technologies in his Articles. The meaning of ARTS: A: Algorithm, solve an Algorithm each week at https://leetcode.com. R: Review, review something important or meaningful for you in last week. T: Technique, improve one or two Techniques that discovered in your daily work. S: Share, share something you like or interested or something special for you. Not only technologies but also life....

关于知识付费的那些事

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

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

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....

基于 Redis 注册中心的 Dubbo 监控平台搭建 有更新!

背景 本文描述的 Dubbo 监控系统都是基于 Redis 作为注册中心的 无需同时部署多个监控中心 官方 Dubbo-admin 和 Dubbo-monitor 搭建 GitHub 官方组件目前在重构,采用前后分离技术,尚未完成。本文采用的还是 master 分支的老版本 dubbo-admin 搭建步骤 git clone https://github.com/apache/incubator-dubbo-ops 在 dubbo-admin 项目的 pom.xml 中增加 Redis 依赖,因为我们这里用的是 Redis 作为注册中心 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> <dependency> <groupId>commons-io</groupId&gt....