- 博客(337)
- 资源 (1)
- 收藏
- 关注
原创 【Alibaba】反卷第一枪,温暖的阿里
来源 | 阿里巴巴集团招聘公司今天发布了新的「阿里巴巴暖心计划」!更好的人性化、更灵活的尝试、更灵动的创新、更独特的丰富、更健康的可持续……我们想要更好与你分享这份暖意~快来看看同学们的「阿里巴巴暖心计划」1,为陪伴添一份温暖新增陪伴假和育儿假我们的披荆斩棘,缘自家人的遮风蔽雨,理解助力。陪爸妈去逛逛日新月异的故乡吧,带那个他(她)开启一场说走就走的旅程,甚至或者给自己一次独自静谧的行游。大江大河山川湖海,去哪里很重要,和谁去更重要。不要相信那个带娃比工作更辛苦的传言。学会换尿布的快乐,可能
2021-12-21 20:26:11 666
原创 为初学者而来~手工最简MQ(三)Client
2,client2.1 连接管理通过netty与mq服务器进行连接,并相应生产者与消费者的请求,通过netty自带的序列化工具,将消息序列化未byte字节进行传输2.1.1 服务启动,连接brokerpackage com.esoo.mq.client.connection;import io.netty.bootstrap.Bootstrap;import io.netty.buffer.PooledByteBufAllocator;import io.netty.channel.*;i
2020-10-16 14:36:22 1020 2
原创 为初学者而来~手工最简MQ(二)Broker
1,服务端服务端的设计就非常简单了,最核心的就是消息的存取,以及响应生产者和消费者的网络请求分为2部分:1.1 消息文件消息的存储我们参考kafka,并简化其逻辑,因为是最简单的mq,我们只考虑单机的情况的就行,每个topic存储2个文件topicname.indextopicname.data.index 文件存储格式为:消息顺序号:消息截止位置.data 文件按照顺序存储具体的消息文件操作:package com.esoo.mq.server.message;import co
2020-10-16 14:30:52 672 1
原创 为初学者而来~手工最简MQ(一)设计篇
为什么重复造轮子MQ(Message Queue)是互联网公司绕不过去的一个技术,核心功能就是进行消息的收发管理,已达到某些特殊功能,比如流量削峰,异步执行,日志聚合等。介于这个原因,看了很多mateQ,kafka,roccketMQ的资料,虽然算是一点点的入门了,依然感觉隔着层窗户纸,后来经过考虑,觉得mq经过多年的演变,已经是一个复杂的事物,对于初学者,不利于理解,我决定根据自己的理解,自己手写一个最简单mq,以帮助自己理解,也给后来者提供一个简单的参考。如有大神,可直接看源码:git-soomq
2020-10-16 14:09:46 1147
原创 flume高并发优化——(16)解决offsets变小问题
offsets初始化在上篇博客中《flume高并发优化——(14)解决空行停止收集数据问题,及offsets变小问题 》我们遗留了一个小问题,就是offsets变小的问题,迟迟未解决,经过研究flume代码发现,flume中,是自己管理offsets关系的,每个kafkachannel的代码中保留了一份topic-offsets的关系,源码:@Override public void start
2017-07-31 10:24:51 2592 5
原创 flume高并发优化——(15)中间件版本升级
在系统平稳运行一年的基础上,为提供更好的服务,现针对java,kafka,flume,zk,统一进行版本升级,请各位小伙伴跟着走起来,不要掉队啊! 名称 老版本号 新版本号 jdk 1.7.0_25 1.8.0 kafka 2.10-0.8.0.1 2.10-0.10.2.1 flume 1.6.0 1.7.0 zookeeper 3.4.6
2017-07-21 16:10:53 3493 2
原创 flume高并发优化——(14)解决空行停止收集数据问题,及offsets变小问题
日志平台运行一段时间,发现日志有部分丢失,通过检查日志,发现有两个问题导致数据丢失,一个是遇到空行后,日志停止收集,还有就是kafka监控offsets时变小,通过分析代码,找到如下方法:空行问题: 在系统稳定运行一段时间之后,发现了一个致命性的bug就是在遇到空行时,无法自动跳过,导致识别为文件结束,再次读取还是空行,跳入了死循环解决办法: 解决的办法也非常简单,就是增加对文件大小与当前行数的
2017-07-21 15:42:48 2631 2
原创 flume高并发优化——(13)扩展三级文件配置&利用Headers扩展属性
上篇博客中,我们对flume进行了文件组进行了扩展,但是我们现在的配置还是针对某组文件单独配置,这样的维护成本还是太高,为了持续优化,我们对常见的三级文件进行优化(**logs/**project/**type/*.log)利用公司内部的约定,大家一起为简单配置努力。1,规范目录结构 在本项目约定下,日志结构采取如下:/logs/*project/type-tomcat/*.log2
2016-10-12 09:10:09 3682 8
原创 flume高并发优化——(12)filesource 支撑文件组&兼容cat监控
主因 在上篇博客中,我们已经做到了非常不错的多文件检索,但是,还有一个问题,就是针对不同的项目,需要多个配置文件,这样,对运维,是个非常繁琐的问题,针对这个问题,本版对flume扩展了文件组(以|切分父文件)。 cat监控,是个久经考验的监控报警平台,因此决定兼容cat的协议,对source进一步扩展。 针对很多人说方法过大的问题,本次也做了调整,优化了面
2016-09-29 21:04:43 2210 6
原创 [zeppelin] 支持多组LdapRealm登录
需求:zeppelin(v:0.8.0) 目前接入了单个邮箱的Ldap验证,公司资源整合之后,需要支持多个邮箱Ldap验证,经研究发现,zeppelin使用的是shiro进行权限验证,shiro配置是支持多组Realm验证,配置上筛选器就可以。shiro 多Realm配置解析zeppelindir/conf/shiro.ini 为zepplin中shiro 配置路径简单示例:用户[users]#用户zhang的密码是123,此用户具有role1和role2两个角色zhang=123,r
2020-05-09 13:59:37 1197 2
原创 【bug经验】vue打包提示版本不一致
现象:排查思路:1,package文件规定了版本号,出现不一致,应该是版本号出现了错乱解决:修改package.json1,vue版本:2,vue-template-compiler版本:...
2020-02-21 17:54:44 1358
转载 转载:应用架构、业务架构、技术架构和业务流程图
应用架构应用架构(Application Architecture)是描述了IT系统功能和技术实现的内容。应用架构分为以下两个不同的层次:企业级的应用架构:企业层面的应用架构起到了统一规划、承上启下的作用,向上承接了企业战略发展方向和业务模式,向下规划和指导企业各个IT系统的定位和功能。在企业架构中,应用架构是最重要和工作量最大的部分,他包括了企业的应用架构蓝图、架构标准/原则、系统的边界和...
2019-10-23 16:45:05 2531
原创 Java 并发编程 常见面试总结
目录一. Socket流阻塞二. wait和notify三. 线程实现的两种方式四. synchronized同步代码块示例五. ReentrantLock的方法示例六. Lock和synchronized的一些区别和选择考虑的因素七. Java并发包中的线程池种类及其特性介绍八. 线程池&Future九. BlockingQueue十. vola...
2019-08-04 09:05:18 734
原创 翻译(zh-CN):Apache Griffin DSL
目的Griffin DSL 是为 DQ 测量而设计的,作为一种类似 SQL 的语言,它试图描述 DQ 请求。包括各种测量类型:a Accuracy profiling uniqueness timeliness …包括各种数据源类型:batch hive avro … streaming kafka 包括各种数据格式类型:Structured d...
2019-07-06 10:00:55 1567 1
原创 翻译(zh-CN):Apache Griffin API
此页面列出了Apache Griffin提供的主要RESTful API。Apache Griffin默认的BASE_PATH是 http://<your ip>:8080.HTTP响应设计我们遵循一般规则来设计Apache Griffin的REST API。在发送到客户端的HTTP响应中,状态代码(三位数字)伴随着一个简单描述代码含义的原因短语(也称为状态文本)。状态代码按...
2019-07-06 09:58:06 1654 2
原创 关于快消产品的一点小小认识
个人认为快消核心竞争力:想买的时候买得到这句话有很多意思:1,品牌认知中国消费者已经过了单纯追求价格的阶段,更多的是关注品牌是否被消费者认知,是否有需求前2个知道的品牌中,就有自己的品牌2,产品多样针对不同的人群,要有不同的产品,老年人,年轻人,小孩,这是粗放式的分类,现在的定位可能需要具体到老人:65岁上老人(退休)55-65(邻退休)45-55(中年到老年过度层),还要再分,大型...
2019-06-06 18:42:19 1543 3
原创 刻意练习--不要无效重复
首次提出“刻意练习”这个概念的是佛罗里达州立大学心理学家 K. Anders Ericsson。这套练习方法的核心是假设,专家级水平是逐渐地练出来的,而有效进步的关键在于找到一系列的小任务让受训者按顺序完成。这些小任务必须是受训者正好不会做,但是又正好可以学习掌握的。完成这种练习要求受训者思想高度集中,这就与那些例行公事或者带娱乐色彩的练习完全不同。“刻意练习”的理论目前已经被广泛接受。以前听说...
2019-05-03 20:45:49 553 3
原创 二进制:并行二分法
题目:1000瓶毒药里面只有1瓶是有毒的,毒发时间为24个小时,问需要多少只老鼠才能在24小时后试出那瓶有毒。某个答案:10只倒着看,就是并行二分的过程倒着看,所以为什么结果就是直接做标记,中毒为1,就是第几瓶子,就一目了然了...
2019-04-04 10:58:16 977
转载 图解贝叶斯公式
概率,顾名思义其实就是一个比率。A发生的概率相当于A集的面积与全集总面积的比率。贝叶斯概率B发生的概率相当于B集的面积与全集总面积的比率。AB都发生的概率相当于AB交集的面积与全集总面积的比率。B已经发生条件下A发生的概率相当于AB交集的面积与B面积的比率。由于B已经发生,在这里是全集,所以要比上B的面积。A已经发生条件下B发生的概率相当于AB交集的面积与A...
2019-03-09 15:22:54 3042
原创 数学奇思:三角函数
最近老师再给中学部上课,我们有幸去听,发现对自己深受启发,我们以前的学习是直接扎进细节的,相对累,苦,闷的学习,而听完老师的讲课发现,三角函数的世界原来如此简单,如下图是用一个单位元来定义三角函数的基本原理,在这里,我们几乎都见过,但是为什么是单位圆?为什么三角函数只有一个角度a,为什么三角,为什么到了四角就习惯改为四边......等等问题,这些问题很关键,帮助我们抽离出三角函数这个抽象的概念...
2019-03-09 15:18:54 1212
转载 RPC框架几行代码就够了
原文博主就是阿里dubbo的作者,这里引用下大神的教学代码,给小白科普下最简单rpc如何实现:核心实现: /* * Copyright 2011 Alibaba.com All right reserved. This software is the * confidential and proprietary information of Alibaba....
2019-03-04 14:54:43 459
转载 了解下Mysql的间隙锁及产生的原因
什么是间隙锁当我们用范围条件而不是相等条件检索数据,并请求共享或排他锁时,InnoDB会给符合条件的已有数据记录的索引项加锁;对于键值在条件范围内但不存在的记录,叫做“间隙(GAP)”,InnoDB也会对这个“间隙”加锁,这种锁机制就是所谓的间隙锁(NEXT-KEY)锁。危害因为Query执行过程中通过范围查找的话,他会锁定整个范围内所有的索引键值,即使这个键值并不存在。间隙锁有一个比较致...
2019-03-03 14:38:03 1044
转载 mysql mvvc 简单理解
先说下我自己的理解,总结为图如下:MVCC的全称是“多版本并发控制”。这项技术使得InnoDB的事务隔离级别下执行一致性读操作有了保证,换言之,就是为了查询一些正在被另一个事务更新的行,并且可以看到它们被更新之前的值。这是一个可以用来增强并发性的强大的技术,因为这样的一来的话查询就不用等待另一个事务释放锁。这项技术在数据库领域并不是普遍使用的。一些其它的数据库产品,以及mysql其它的存储...
2019-03-03 10:55:31 7365 1
原创 java PDF转jpg
最近需要用到pdf转图片,发现不是需要花钱就是有水印限制,不是很好,自己做了个小程序,满足大家的需求:maven:<dependencies> <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>...
2019-02-28 10:47:45 3429 1
原创 数学奇思-比例:点:线:面
上次交流米老师留下了一个思考给我们,比例为什么可以用面积表示,体积表示,通过自己查博客,和同学沟通,发现这是数学上一个惯用的思维方式,就是忽略:我们先看一组球,一共100个,其中30个红球,70个黑球,均匀分布在一个平面上:类似如此:我们研究的是红球白球的比例,那么我们忽略球排布的方位,将红球放在一起,黑球放在一起,排列成这样: 我们在数学中,有个概念,点组成线,线组成...
2019-02-24 10:18:24 659
原创 js+div 实现弹出搜索对话框,并将选择结果返回给处理方
目前扩展activiti 工作流的时候,需要定制用户从系统rest接口获取模糊查询的用户结果,替换工作流本身的用户体系,现将测试代码分享给大家:需要实现的效果: 源码:<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"></head>
2019-02-20 11:03:53 3144 1
转载 synchronized 实现原理
synchronized可以保证变量的原子性,可见性和顺序性,所以可以保证方法或者代码块在运行时只有一个方法可以进入临界区获取资源,同时还可以保证内存变量的内存可见性。并且synchronized是一个可重入锁synchronized实现原理:(1)字节码层面synchronized是基于进入和退出管程(Monitor)对象实现(monitorenter和monitorexit), moni...
2019-02-15 17:11:20 973
原创 数学奇思 4==5?
4+1-1+1—1+1-1~~~~~=4+(1-1)+(1-1)~~~~~=4+0 + 0 + 0 + 0 ~~~~~=4=4+1(-1+1)+(-1+1)~~~~~=5+0+0+0+0+~~~~~=54==5?思考:在无限的领域,一切都有可能,哪些是变的哪些是不变的呢?...
2019-01-30 15:01:53 545
原创 Activiti ServiceTask 接受Spring bean
当前做流程完成回调的功能,发现普通的 activiti:class 是不能自动注入spring bean的,类似如下的配置: 在网络上找到了相关解决方案,就是用activiti:expression 替换class,这样通过表达式加载的都是自定义的类,是从spring中加载的 第一个参数,execution是流程引擎的上下文,productApi是spring bean的i...
2019-01-25 10:45:45 3228 1
原创 概率的思考(二)
上篇文章《概率的思考》我们谈到一个问题,现在我们回顾下:现有一个黑色不透明的袋子,袋子里有球,有多少个球,不知道,球什么样子不知道,我们安排1个房间1个人一张纸去袋子里拿球,每次只能拿一个,拿到球后在袋子上记录球的颜色,然后放回球到袋子,交由一个机器打乱袋子里的球,然后重复上述过程10000次 以上结果再换10000个人重复上述过程,最后我们发现:第1个人拿到红球的次数和总实验次数的比例是...
2019-01-21 11:44:51 512 3
原创 概率的思考
百科定义:Wikipedia:Probability is the measure of the likelihood that an event will occur.[1] See glossary of probability and statistics. Probability quantifies as a number between 0 and 1, where, loose...
2019-01-21 11:20:42 590 1
原创 极限的几个思考
1,0.999999999999~~~~~无限个9 和 1 的关系 大家都知道 1/3 = 0.333333~~无限个3 这个是没问题的 而1/3 * 3 = 1 我们转换一下: 0.3333333~~~无限个3 * 3 =0.9999999~~~无限个9 0.999999~~~ 无限个9 如何变成了1 ...
2019-01-19 17:31:16 499
转载 Aviator表达式求值引擎
Aviator是一个轻量级、高性能的Java表达式执行引擎,它动态地将表达式编译成字节码并运行。特性包括:支持绝大多数运算操作符,包括算术操作符、关系运算符、逻辑操作符、位运算符、正则匹配操作符(=~)、三元表达式(?:) 支持操作符优先级和括号强制设定优先级 逻辑运算符支持短路运算。 支持丰富类型,例如nil、整数和浮点数、字符串、正则表达式、日期、变量等,支持自动类型转换。 内...
2018-12-08 15:04:44 4240
转载 原码, 反码, 补码 详解
本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助! 一. 机器数和真值在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念.1、机器数一个数在计算机中的二进制表示形式, 叫做这个数的机...
2018-11-28 18:06:19 535 1
转载 avl树左旋右旋的理解
一直没搞懂非平衡二叉树变平衡二叉树时左旋右旋,今天下定决心搞懂,然后在众多博客中终于找到了这样一篇,非常形象,记录如下: AVL树是最先发明的自平衡二叉查找树。在AVL树中任何节点的两个子树的高度最大差别为一,所以它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下都是O(log n)。增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。AVL树得名于它的发明者G.M. Adels...
2018-11-05 14:56:02 3864
原创 数学小计--欧几里得算最大公约数
欧几里德算法依据的算法定理是:gcd(m,n)=gcd(n,m mod n);自己想的证明过程:我们有A,B两个数求最大公约数如果存在,设为x则:A=x*aB=x*bax mod bx = cx证明:将x想象为1就可以理解,替换成任意数其实也是一样的~~~,因为x在这里作为单位出现就好理解了c<abx mod cx = exe<bcx mo...
2018-10-17 14:30:20 339
转载 三遍读书法
第一次听说“三遍读书法”是在米老师讲课的时候。自己上网查资料发现第一个提出这种读书方法的人是大作家茅盾先生。茅盾在他总结自己的读书经验时说:“读名著起码要读三遍,第一遍最好很快地把它读完,这好像在飞机上鸟瞰桂林城全景;第二遍要慢慢地读,细细地咀嚼,注意到各章各段的结构;第三遍要细细地一段一段地读、领会、运用,这时要注意它的炼字炼句。这种“三遍”式读书法,归纳起来就是:第一遍:鸟瞰式。要...
2018-10-09 18:11:58 1623 7
原创 数学思维系列(二)线性变换
学习线性变换,老是被各种矩阵,各种向量整蒙了,在历史中,线性变换的由来非常有条理性,理解起来也不是很难,只是在现在的教课书中,这一节,被简写了,被我忽视了,回头再看看,就可以理解了。咱们再出发,回到古典的数学问题中,我们一步步引入线性变换:现实问题(鸡兔同笼):有若干只鸡兔同在一个笼子里,从上面数,有35个头,从下面数,有94只脚。问笼中各有多少只鸡和兔?古人想到了很多解题办法...
2018-09-26 18:25:31 986
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人