刘伟龙的博客

基础扎实,主动学习,主动思考,主动实践

踩坑经历(十四)论好习惯的重要性

事故现场 定时任务调用存储日志显示执行失败 排查 1.本地执行存储过程不报错 2.生产环境排查问题,存储过程SQL从上往下一段段执行 3.锁定SQL错误 问题定位 1.字段值为数字,用户提交值为中文 2.业务库改了某些字段长度没有跟我说,导致存储过程插入数据长度不够报错 反思 1.如何提高存...

2018-12-13 18:47:53

阅读数:33

评论数:0

数据结构与算法(九)排序算法

选择排序 思路:首先,找到数组中的最小元素,其次,将它和数组的第一个元素交换位置(如果第一个元素是最小元素那么它就和自己交换)。再次,在剩下的元素中找到最小的元素,将它和数组的第二个元素交换位置。如此往复,直到将整个数组排序 public static int[] sort(int[] array...

2018-12-13 09:26:06

阅读数:10

评论数:0

踩坑经历(十三)mysql中的隐式转换

前置条件 id字段类型为varchar(32) 查询数据 select * from bond; select * from bond where id='1' select * from bond where id=1 结论 where条件不同类型字段做匹配,会将右边的字段类...

2018-12-05 18:38:17

阅读数:59

评论数:0

踩坑经历(十二)记一次kettle定时任务延迟执行的排错过程

生产现场 场景 kettle的.sh批量执行文件内包含了a.job和b.job,a.job在b.job前面 问题 生产环境下设置的晚上4点执行kettle的b.job作业,4点没有执行白天12点多执行 排查过程 1.生产环境查看linux的定时命令 没有错误 2.从生产环境拿到kettle执...

2018-12-05 17:58:03

阅读数:51

评论数:0

工作启示录(三)分析定位问题的原则

分析定位问题的指导原则,原则汇总如下: 不要逃避问题,要勇敢面对困难,要相信,只要时间充裕,没有解决不了的问题. 保持空杯精神,进行各种猜测验证 以事实为依据,不要相信自己没有验证的结果,以免误导自己 一定要刨根问题,不要放弃学习的机会,才能成为大牛 ...

2018-12-03 20:56:17

阅读数:21

评论数:0

工作启示录(二)关于背锅与处理问题

背锅 如果你证明不了这不是你的锅,那你只能背锅,活该 找问题 梳理逻辑,按正常逻辑一步步往下走,对于自己不确定的东西,一定要去论证,不可轻易下结论 灵活且不失严谨这是处理问题的方法论 处理问题 处理问题一定要快、准、狠 处理问题首先要有大的方向和思路,然后再去一步步实施 ...

2018-12-01 22:11:04

阅读数:24

评论数:0

工作启示录(一)伪工作和伪工作者的特征

伪工作和伪工作者的特征 在做事情之前不认真思考,做事时通过简单的试错方法,盲目的寻找答案 做产品不讲究质量、不认真测试、上线之后不停的修补,总是在花费很多的时间和精力找漏洞和打补丁 不注重用有限的资源解决的问题,而是把大部分时间和精力用于纠结不重要的问题 每次开会找来大量不必要的人员旁听,或者总...

2018-12-01 21:53:12

阅读数:66

评论数:0

踩坑经历(十 一)使用group_concat 时,设置mysql默认的长度并使其生效

SHOW VARIABLES LIKE "group_concat_max_len"; SET GLOBAL group_concat_max_len=1024000; SET @@GROUP_CONCAT_MAX_LEN = 1024000...

2018-11-28 18:59:51

阅读数:23

评论数:0

那些我觉得值得去的公司

公司列表 说明:群主是渣渣,所以基本放弃一线互联网大厂 公司名称 所属行业 备注 美团 互联网 技术很不错 网易 互联网 吃的贼好 滴滴 互联网出行 应届生15k起 宜信 大数据 行业地位高 金山云 云计算 云计算还是比较有前途的吧 京东 电子商务 可以接触到大...

2018-11-27 08:01:04

阅读数:53

评论数:0

从0开始学架构(十三)微服务架构最佳实践 - 方法篇

服务拆分 1.基于业务逻辑拆分 这是最常见的一种拆分方式,将系统中的业务模块按照职责范围识别出来,每个单独的业务模块拆分为一个独立的服务。 2.基于可扩展拆分 将系统中的业务模块按照稳定性排序,将已经成熟和改动不大的服务拆分为稳定服务,将经常变化和迭代的服务拆分为变动服务。稳定的服务粒度可以粗一些...

2018-11-26 16:29:15

阅读数:23

评论数:1

从0开始学架构(十二)高可用存储架构:集群和分区

数据集群 集群就是多台机器组合在一起形成一个统一的系统,这里的“多台”,数量上至少是 3 台;相比而言,主备、主从都是 2 台机器。根据集群中机器承担的不同角色来划分,集群可以分为两类:数据集中集群、数据分散集群。 数据集中集群 数据集中集群与主备、主从这类架构相似,我们也可以称数据集中集群为 ...

2018-11-26 15:16:33

阅读数:11

评论数:0

从0开始学架构(十一)CAP理论

一致性 对某个指定的客户端来说,读操作保证能够返回最新的写操作结果。 可用性(Availability) 非故障的节点在合理的时间内返回合理的响应(不是错误和超时的响应)。 分区容忍性(Partition Tolerance) 当出现网络分区后,系统能够继续“履行职责”。 CAP 应用 虽然...

2018-11-26 14:56:58

阅读数:19

评论数:0

从0开始学架构(十)高性能负载均衡:分类及架构

负载均衡分类 常见的负载均衡系统包括 3 种:DNS 负载均衡、硬件负载均衡和软件负载均衡。 DNS 负载均衡 DNS 是最简单也是最常见的负载均衡方式,一般用来实现地理级别的均衡。例如,北方的用户访问北京的机房,南方的用户访问深圳的机房。DNS 负载均衡的本质是 DNS 解析同一个域名可以返回...

2018-11-26 14:23:45

阅读数:20

评论数:0

从0开始学架构(九)高性能缓存架构

缓存典型的场景及简介 (1)要经过复杂运算后得出的数据,存储系统无能为力 (2)读多写少的数据,存储系统有心无力 (3)缓存就是为了弥补存储系统在这些复杂业务场景下的不足,其基本原理是将可能重复使用的数据放到内存中,一次生成、多次使用,避免每次使用都去访问存储系统。 缓存能够带来性能的大幅提升,以...

2018-11-26 14:05:25

阅读数:20

评论数:0

从0开始学架构(八)高性能数据库集群:分库分表

读写分离的瓶颈 读写分离分散了数据库读写操作的压力,但没有分散存储压力,当数据量达到千万甚至上亿条的时候,单台数据库服务器的存储能力会成为系统的瓶颈,主要体现在这几个方面: 数据量太大,读写的性能会下降,即使有索引,索引也会变得很大,性能同样会下降。 数据文件会变得很大,数据库备份和恢复需...

2018-11-26 13:42:44

阅读数:16

评论数:0

从0开始学架构(七)高性能数据库集群:读写分离

读写分离原理 基本架构图如下 读写分离的基本实现是: 数据库服务器搭建主从集群,一主一从、一主多从都可以。 数据库主机负责读写操作,从机只负责读操作。 数据库主机通过复制将数据同步到从机,每台数据库服务器都存储了所有的业务数据。 业务服务器将写操作发给数据库主机,将读操作发给数据...

2018-11-26 13:25:14

阅读数:10

评论数:0

数据结构与算法(八)递归

递归需要满足的三个条件 (1)一个问题的解可以分解为几个子问题的解 (2)这个问题与分解之后的子问题,除了数据规模不同,求解思路完全一样 (3)存在递归终止提交 编写递归代码 (1)写递归代码的关键就是找到如何将大问题分解为小问题的规律,并且基于此写出递推公式,然后再推敲终止条件,最后将递推公式...

2018-11-26 11:04:57

阅读数:25

评论数:0

数据结构与算法(七)队列在线程池等有限资源池中的应用

如何理解队列 (1)队列跟栈一样,也是一种操作受限的线性表数据结构 (2)队列应用广泛,比如Java concurrent并发包利用ArrayBlockingQueue实现公平锁 顺序队列和链式队列 数组实现顺序栈 (1)队列需要两个指针:一个head指针,指向对头;一个tail指针,指向队尾...

2018-11-26 10:41:27

阅读数:15

评论数:0

数据结构与算法(六)栈

栈 (1)栈是一种“操作受限”的线性表,只允许在一端插入和删除数据 (2)特定的数据结构是对特定场景的抽象,数组或链表暴露了太多的操作接口,操作上灵活自由,但使用时就比较不可控,自然也就更容易出错 如何实现一个“栈” (1)数组实现的顺序栈 (2)链表实现的链式栈 支持动态扩容的顺序栈 (1)...

2018-11-26 10:10:58

阅读数:16

评论数:0

数据结构与算法(五)链表(下)如何轻松写出正确的链表代码?

技巧一:理解指针或者引用的含义

2018-11-26 09:50:40

阅读数:27

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭