上道至简
码龄16年
关注
提问 私信
  • 博客:125,433
    125,433
    总访问量
  • 72
    原创
  • 1,152,697
    排名
  • 26
    粉丝
  • 0
    铁粉

个人简介:学习技术的过程,就是从学习怎么使用,到理解为什么这样用,再到自我创新,进一步优化,深度思考。

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2008-09-30
博客简介:

guotufu的博客

查看详细资料
个人成就
  • 获得28次点赞
  • 内容获得23次评论
  • 获得96次收藏
创作历程
  • 1篇
    2022年
  • 8篇
    2019年
  • 46篇
    2018年
  • 6篇
    2011年
  • 13篇
    2010年
成就勋章
TA的专栏
  • spring内幕原理
    1篇
  • Java原理源码
    16篇
  • 架构设计
    6篇
  • 搜索引擎
    4篇
  • 学习方法
    1篇
  • 数据库
    8篇
  • 开发实践
    5篇
  • 技术人生
    1篇
  • 微服务
    2篇
  • docker
    1篇
  • spring cloud
    1篇
  • eureka
    2篇
  • issue trace
    1篇
  • Thread Dump
    2篇
  • IBM相关JVM诊断工具
    2篇
  • java
    2篇
  • 开发
    1篇
  • 应用
  • jjj
  • 123
  • 大数据
    3篇
  • 运维部署
    1篇
兴趣领域 设置
  • 数据结构与算法
    推荐算法
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

357人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

一文解达梦

一文了解达梦,入门达梦,感受达梦。由浅到深,思考并进,共圆国产数据库梦!
原创
发布博客 2022.06.23 ·
2590 阅读 ·
0 点赞 ·
1 评论 ·
2 收藏

Kettle采集数据时遇到error:invalid byte sequence for encoding "UTF8": 0x00

我们项目有个需求是需要通过 Kettle把数据从 oracle采集到postgresql,然后在采集过程中发现出现了invalid byte sequence for encoding "UTF8": 0x00导致采集失败,经查阅相关资料,pg官网上解释是因为pg数据库不能存储\u0000这样的字符,明白了根本原因,解决方案就容易多了,首先是确定哪此字段会包含这种字符,为了快速定位问题,我把ket...
原创
发布博客 2019.07.31 ·
5012 阅读 ·
2 点赞 ·
1 评论 ·
1 收藏

ETL工具之Kettle的使用及源码研读

首先简单说明一下ETL的概念,引用百度上写的就是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过萃取(extract)、转置(transform)、加载(load)至目的端的过程。ETL一词较常用在数据仓库,但其对象并不限于数据仓库。再说下Kettle是什么。它其实就是一个数据迁移的工具,使用java编写,提供图形界面来设计ETL转换过程。Kettle中有两种...
原创
发布博客 2019.05.26 ·
698 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

关于当前开源分布式任务框架的比较

最近有对分布式任务调度框架的选型,下面是个人整理的一个比较文档,供大家参考使用。分布式任务调度框架各有利弊,需根据实际需求决定使用。框架名称 xxl-job elastic-job 简介 大众点评员工徐雪里于2015年发布的分布式任务调度平台,是一个轻量级分布式任务调度框架,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。 当当开发的弹性分布式任务调度系统...
原创
发布博客 2019.04.23 ·
3479 阅读 ·
2 点赞 ·
1 评论 ·
5 收藏

mybatis入门要点

一、跟Hibernate的区别Hibernate是面向对象的设计思想,所以对数据库的操作基本是对一个对象的操作。而Mybatis是半面向对象的思想,把SQL语句跟java分离,易于维护。总的来说,各自有利有弊,需根据项目实际需求来选型。目前互联网使用最多的应该还是mybatis,主要是易于使用,比hibernate的学习成本要低。二、Mybatis的学习网站网上学习Mybatis...
原创
发布博客 2019.04.13 ·
180 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

如何在工作中提高架构设计能力

之前认识了一些工作五年以上的开发工程师,深聊之下发现虽然开发能力很强,但架构设计方面的能力还是偏弱,这不得不让人深思,五年以上的时候都在干嘛去了。通常毕业没多久的开发工程师,因为没有什么实际的开发经验,所以架构设计能力还处于初级阶段,这时候必须得有人带着开发,对所用的技术也是一知半解。但随着工作年限的增长,技术也在慢慢的提高,但并不代表,编程能力越强,架构设计能力就越强。 ...
原创
发布博客 2019.03.26 ·
4471 阅读 ·
1 点赞 ·
0 评论 ·
6 收藏

MySQL的一些总结

最近拜读了58同城的大神沈剑的关于mysql的一些文章,现在做一个总结如下:一、索引到底是怎么实现的这里要思考“为什么设计成这样”,而不是“是怎样的”。数据库的索引用于提升数据库的查找速度。加速查找速度的数据结构有两种:一种是哈希,一种是树型。哈希的查询、插入、修改、删除的平均时间复杂度都是O(1),而树的平均时间复杂度都是O(lg(n))。这里可以看到哈希结构查找速度会快一点,但My...
原创
发布博客 2019.02.15 ·
221 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

理解幂等性设计

话说这个词出现的频率很高,在实际开发中遇到的也多,特别是微服务化之后,这个就显得更重要了。但是这个概念有时候会搞得有点糊涂,比如说一个查询接口,有可能因为其它请求修改了数据,从而导致它返回的数据是不一样的,这就跟大部分文章说的无论怎么请求,返回的结果一样有点矛盾。实际应该这么理解:幂等性强调的是外界通过接口对系统内部的影响, 外界怎么看系统和幂等性没有关系,只要一次或多次调用对某一个资源应该具有同...
原创
发布博客 2019.02.13 ·
406 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

使用JDK8的日期转换类DateTimeFormatter时遇到的问题

有个同事开发的时候用到这个类进行日期的转换,想转换的日期格式为“YYYY/MM/dd”,结果在2018年12月30日那天转换出来的格式是2019/12/30,请看下面的代码:public static void main(String[] args) { DateTimeFormatter dtf = DateTimeFormatter.ofPattern("YYYY/MM/...
原创
发布博客 2019.01.03 ·
8355 阅读 ·
4 点赞 ·
0 评论 ·
12 收藏

Jenkins的自动部署方法

Git提交代码时自动部署:首先通过在git上面配置webhooks: 有了Groovy上面的变量,Build就可以随心所欲了!  根据Label来部署不同的项目,这是重点!   ...
原创
发布博客 2018.12.29 ·
173 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

关于spring cloud config的一个坑

搭建spring cloud config很简单,基本配置一下就好了,但发现有个问题,就是每隔一段时间客户端就连不上了,获取不了配置数据,更重要的是因为没有配置更多的日志信息导致问题不知道出现在哪里,客户端在启动时报错的信息是不能获取配置文件。后来经过多次测试实践,发现原来是配置中心在本地服务器上会缓存配置文件,但这个路径默认是在linux的/tmp下面的,然后这个路径操作系统是会定期清理的,明白...
原创
发布博客 2018.12.29 ·
1005 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

消息队列RabbitMQ线上问题总结

首先简单介绍下RabbitMQ。RabbitMQ使用高并发性的erlang语言开发编写,性能比较好,并且可靠性比较高,支持事务。RabbitMQ这些特性都比较适合我们当前的业务,对可靠性和稳定性都要求比较高,很适合作为我们系统的消息总线和异步解耦。而Spring boot集成RabbitMQ也比较简单,网上资料很多,下面是我刚开始使用的一种集成方案:首先maven要引入相关的依赖包:&lt...
原创
发布博客 2018.12.11 ·
1845 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

JAVA8之妙用Optional解决NPE问题

引言在文章的开头,先说下NPE问题,NPE问题就是,我们在开发中经常碰到的NullPointerException.假设我们有两个类,他们的UML类图如下图所示在这种情况下,有如下代码<span style="color:#333333"><code>user.getAddress().getProvince();</code></span&g...
转载
发布博客 2018.12.04 ·
311 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

使用Java8 Optional解决繁琐的NPE判断

Optional是java的新特性,主要用来解决空指针异常。按以前的做法,一般我们在调用某个对象之前都需要判断一下这个对象是否为null,这样的话有些情况下会有很多的if判空操作,有了这个Optional就好办了,下面给一个简单的使用例子,一学就会:没有使用Optional这样写:BigDecimal amount = null != dto.getAmount() ? dto.getA...
原创
发布博客 2018.11.28 ·
1132 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

深入理解 MySQL 底层实现

MySQL 的常用引擎1. InnoDBInnoDB 的存储文件有两个,后缀名分别是 .frm 和 .idb,其中 .frm 是表的定义文件,而 idb 是数据文件。InnoDB 中存在表锁和行锁,不过行锁是在命中索引的情况下才会起作用。InnoDB 支持事务,且支持四种隔离级别(读未提交、读已提交、可重复读、串行化),默认的为可重复读;而在 Oracle 数据库中,只支持串行化级...
转载
发布博客 2018.11.23 ·
240 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

maven仓库支持下载CDH的包

一、项目pom.xml, 添加仓库配置<repositories> <repository> <id>cloudera</id> <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url> &...
原创
发布博客 2018.11.23 ·
1622 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

java lambda表达式的简单应用

一、多参数的情况:(Type1 param1, Type2 param2, ..., TypeN paramN) -> { statment1; statment2; //............. return statmentM;}二、单参数的情况:param1 -> {  statment1;  statment2;  //............
原创
发布博客 2018.11.23 ·
165 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Eureka实现基于DNS方式搭建集群

Eureka使用起来还是比较简单的,至于搭建集群网上很多资料都有介绍使用IP的方式配置集群的每一台服务器,这样做不好之处在于万一需要添加、删除、修改服务IP和端口号时需要针对每一台服务器的配置文件进行修改,这是比较麻烦的一个事,而使用DNS方式就能解决这个问题。但是网上的资料针对这方面还是比较少的,没有一个很详细的说明,于是我专门研究了下这个流程。大概的步骤就是:1.首先需要有一个云服务商的域...
原创
发布博客 2018.09.15 ·
841 阅读 ·
0 点赞 ·
2 评论 ·
0 收藏

注意了!云服务器的一些环境配置有可能导致应用启动失败

尝试用serviceComb框架跟Spring boot框架结合写了一个测试应用,结果放到云服务器上启动的时候报错,大概错误如下:Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'HOSTNAME%%.*' in value "history -a; printf "\033]0;%s@...
原创
发布博客 2018.08.19 ·
1860 阅读 ·
0 点赞 ·
2 评论 ·
0 收藏

Eureka的深度总结

一、Eureka是一个去中心化的架构,注重CAP理论中的AP,重点在于高可用性。二、Eureka的serviceUrl既可以通过IP:Port的方式配置集群,也可以基于DNS方式配置高可用集群,它的原理就是通过域名获取所有的IP地址,但端口号要一致。配置DNS对增减服务器比较好,不需要每一台服务器修改其配置。三、Spring cloud中可以添加spring-security支持Eurek...
原创
发布博客 2018.08.05 ·
1351 阅读 ·
2 点赞 ·
2 评论 ·
3 收藏
加载更多