自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(87)
  • 收藏
  • 关注

转载 Docker笔记(十一):Dockerfile详解与最佳实践

Dockerfile是一个文本文件,包含了一条条指令,每条指令对应构建一层镜像,Docker基于它来构建一个完整镜像。本文介绍Dockerfile的常用指令及相应的最佳实践建议。1. 理解构建上下文(build context)Docker镜像通过docker build指令构建,该指令执行时当前的工作目录就是docker构建的上下文,即build context,上下文中的文件...

2019-09-23 08:48:00 280

转载 JDK13,不如温习下Java8

JDK13于9月17号正式GA,版本新特性可参考:https://www.oschina.net/news/109934/jdk-13-released虽然JDK更新迅速,但开发者貌似并不买账,据统计,目前仍以JDK8使用最多,预计可能还会延续好长一段时间。虽然JDK版本已至13,但对Java8的新特性,掌握程度如何呢?本文对Java8的主要特性进行了梳理。供温习参考。1. 接...

2019-09-20 10:36:00 243

转载 Docker笔记(十):使用Docker来搭建一套ELK日志分析系统

一段时间没关注ELK(elasticsearch —— 搜索引擎,可用于存储、索引日志, logstash —— 可用于日志传输、转换,kibana —— WebUI,将日志可视化),发现最新版已到7.4了。所以别问程序员为什么这么忙?因为不是在加班就是在学习新框架中。本文整理了使用Docker来快速搭建一套ELK日志分析系统的方法。1. 部署elkgithub上有人整理了一...

2019-09-09 09:28:00 258

转载 Docker笔记(九):网络管理

Docker的应用运行在容器中,其相互之间或与外部之间是如何通信的,涉及到哪些知识点,本文对相关内容进行整理。因网络这块牵涉的面较多,因此只从日常使用或理解的角度出发,过于专业的就不深入探讨了。1. Docker默认的网络拓扑在Docker笔记(二):Docker管理的对象中,介绍了Docker通过一些驱动程序来实现容器之间或容器与外部的互联,包括bridge(默认的虚拟网桥形式...

2019-09-06 10:21:00 141

转载 k8s云集群混搭模式落地分享

  在 《k8s云集群混搭模式,可能帮你节省50%以上的服务成本》一文中,介绍了使用k8s + 虚拟节点混合集群的方式,为负载具有时间段波峰、波谷交替规律的业务节约成本,提高服务伸缩效率的部署方案。本文对该方案的具体落地步骤与基本运行维护进行分享,为有此需求者提供参考。部署要求应能24小时不间断提供服务在业务高峰期到来前能自动扩展指定数量的容器(提前对业务负载进行评估与压...

2019-09-05 10:00:00 150

转载 开发人员需要掌握的日常Linux命令集

本文整理了开发人员日常用到的linux相关命令,供参考。文件相关cd# 进入某个目录,不接参数进入当前用户目录(等同于cd ~)如/home/devuser,可接绝对路径或相对路径(../..表示上上级目录),也可以接 “-” 回到上次所在目录pwd# 显示当前所在目录ls -la# 列出当前目录所有对象,-a表示包含以.开头的隐藏文件或目录ll -...

2019-08-28 09:27:00 81

转载 k8s云集群混搭模式,可能帮你节省50%以上的服务成本

现在大部分中小企业或团队都是使用云平台来部署自己的服务,如阿里云,亚马逊云等。一般来说,业务的负载都具备一定的规律,比如每天集中在某几个小时,或呈现时间段周期性波峰、波谷交替的现象,如下图如果使用ECS来部署服务,则可能大部分时间ECS的资源没有得到充分利用,造成成本浪费,尤其对于像GPU之类成本较高的资源就更加了。这个时候,我们可以考虑使用云集群的混搭模式来节约成本。业务...

2019-08-22 12:59:00 208

转载 如何在logback.xml中自定义动态属性

原文地址:http://blog.jboost.cn/trick-logback-prop.html当使用logback来记录Web应用的日志时,我们通过在logback.xml中配置appender来指定日志输出格式及输出文件路径,这在一台主机或一个文件系统上部署单个实例没有问题,但是如果部署多个实例(比如通过容器的方式),多个实例同时往同一文件写日志可能就会引起问题。这时可以将每...

2019-08-21 08:36:00 943

转载 Docker笔记(八):数据管理

前面(哪个前面我也忘了)有说过,如果我们需要对数据进行持久化保存,不应使其存储在容器中,因为容器中的数据会随着容器的删除而丢失,而因通过将数据存储于宿主机文件系统的形式来持久化。在Docker容器中管理数据主要有数据卷、宿主机目录挂载两种方式。1. 数据卷的方式数据卷是一个特殊的文件目录(或文件),具备如下特性:可以在容器之间共享和重用对数据卷的修改会立马生效...

2019-08-13 09:12:00 143

转载 找工作,去小公司好,还是大公司好?

  前几天跟一朋友交流,他说一个表弟明年就要毕业了,马上面临找工作,是去一线城市找大公司的工作好,还是留在二线城市中小公司发展好。我说,去大公司好。为什么会有这个结论,这篇文章结合自己的经历说说我的一些感受。  我的第一份工作是在一家外企,当时抱着“逃离”上海的想法去了二线城市的分公司,但是管理文化氛围跟总部几乎都是一样的,这份工作经历对我后面的工作不论是做事风格、习惯上还是思考问题...

2019-08-12 11:30:00 122

转载 Docker笔记(七):常用服务安装——Nginx、MySql、Redis

开发中经常需要安装一些常用的服务软件,如Nginx、MySql、Redis等,如果按照普通的安装方法,一般都相对比较繁琐 —— 要经过下载软件或源码包,编译安装,配置,启动等步骤,使用 Docker 来安装这些服务软件能极大地简化安装过程,且速度也很快。本文以下操作假定你已经装好了docker,并做好了镜像配置。如果没有,请参考Docker笔记(三):Docker安装与配置...

2019-08-08 13:04:00 115

转载 IT技术管理者的自我修养

  1. 前言   本来写《IT技术管理者的自我修养》与《IT技术人员的自我修养》是一开始就有的想法。但发表《IT技术人员的自我修养》后,收到了不少良好的反馈,博客园的编辑对该文进行了置顶推荐,迅速带来了4000多的浏览量,阿里菜鸟国际的大牛也通过私信投来了橄榄枝,现在都还没来得及回复,也有网友留言申请了转载,虽然被改的面目全非。在此非常感谢大家的认可,只要有共鸣,有收获,就...

2019-08-05 12:48:00 473

转载 老被跨域问题烦?看看都有哪些处理方法

前面写的《IT技术人员的自我修养》,没想到几天内收到了不少良好的反馈,在此感谢大家的关注。往后会不定时分享一些技术、管理领域的工作经验总结与感悟,欢迎大家持续关注、交流。最近被问及一个跨域的问题,包括之前面试时发现很多面试者对跨域及其处理也是一知半解,故本文对该问题进行了梳理总结,以供参考。1. 什么是跨域理解什么是跨域,就要先了解一个叫“同源策略”的东西,什么是“同源策略”?这...

2019-07-31 17:42:00 218

转载 IT技术人员的自我修养

1.前言   在IT领域摸爬滚打多年,从一个普通程序员到技术主管,到技术经理,再到技术总监,踩过不少坑、加过不少班,也背过不少锅,在提升自身技术能力与管理能力的同时,也一直在思考,作为IT技术从业者,如何做才能让我们在这个领域里发展得更好,在年龄渐长时能从容应对所谓的“中年危机”,或者说IT技术人员的自我修养,应从哪些方面去努力。本文不是所谓成功人士的...

2019-07-26 14:56:00 304

转载 Spring Boot从入门到实战(十):异步处理

原文地址:http://blog.jboost.cn/springboot-async.html在业务开发中,有时候会遇到一些非核心的附加功能,比如短信或微信模板消息通知,或者一些耗时比较久,但主流程不需要立即获得其结果反馈的操作,比如保存图片、同步数据到其它合作方等等。如果将这些操作都置于主流程中同步处理,势必会对核心流程的性能造成影响,甚至由于第三方服务的问题导致自身服务不...

2019-07-23 08:55:00 167

转载 Docker笔记(六):容器管理

原文地址:http://blog.jboost.cn/docker-6.html容器是Docker中的另一核心概念,在Docker中,应用的运行都是在容器内进行的,容器则基于镜像创建。前面已对Docker镜像做了基本介绍,本文对Docker容器管理的相关内容做一个梳理。1. 启动容器启动容器的命令格式如下docker run [OPTIONS] IMAGE-NA...

2019-07-22 10:42:00 82

转载 Docker笔记(五):整一个自己的镜像

原文地址:http://blog.jboost.cn/docerk-5.html获取镜像的途径有两个,一是从镜像仓库获取,如官方的Docker Hub,二是自定义。上文已经介绍如何从镜像仓库获取镜像,本文基于一个Springboot项目,来介绍自定义一个镜像的基本流程。1. 定制镜像的本质我们知道镜像是分层存储的,镜像的构建也是一层一层进行的,一层构建完后,就变为只读,...

2019-07-18 09:22:00 86

转载 Docker笔记(四):Docker镜像管理

原文地址:http://blog.jboost.cn/docker-4.html在Docker中,应用是通过容器来运行的,而容器的运行是基于镜像的,类似面向对象设计中类与对象的关系——没有类的定义就谈不上实例的创建与使用,没有镜像的定义就谈不上容器的创建与运行。1. 获取镜像镜像从哪里来,一般两个途径,一是公共镜像库,如官方镜像库Docker Hub,上面有大量的高质量...

2019-07-17 08:46:00 102

转载 Docker笔记(三):Docker安装与配置

原文地址:http://blog.jboost.cn/docker-3.htmlDocker分为Docker CE社区免费版与Docker EE企业收费版。Docker EE主要是在安全性及镜像、容器高级管理方面提供了一些额外的支持。对于中小型企业、团队或个人来说,用Docker CE即可。1. 安装Docker CEDocker CE有三个更新渠道:Stabl...

2019-07-16 14:13:00 96

转载 Docker笔记(二):Docker管理的对象

原文地址:http://blog.jboost.cn/docker-2.html在Docker笔记(一):什么是Docker中,我们提到了Docker管理的对象包含镜像、容器、网络、数据卷等,本文就来介绍下这些对象及用途。1. 镜像所谓镜像,是一个静态的概念。它对我们期望干的事情做了一些定义,比如要运行什么程序,需要哪些依赖,需要什么样的配置,需要开放哪个网络端口等等。...

2019-07-15 16:03:00 59

转载 Docker笔记(一):什么是Docker

原文地址:http://blog.jboost.cn/docker-1.html1. 前言接触Docker也有两年多了,断断续续玩过一些应用场景,如安装一些常用工具服务,部署业务项目,基于gitlab+jenkins pipeline+docker的CI/CD实现等。了解其基本知识与操作,但不能说深度掌握,故借此系列进行梳理与学习,也希望对有意学习Docker的人提供参考。...

2019-07-15 08:39:00 67

转载 ubuntu18.04上搭建KVM虚拟机环境超完整过程

看标题这是篇纯运维的文章。在中小型企业中,一般很少配置专业的运维人员,都是由开发人员兼着。同时,对有志于技术管理的开发人员来说,多了解一些运维及整个软件生命周期的知识,是很有帮助的,因为带团队不仅仅是个管人的活,更多的是在你的部下遇到难题或者无人能上的时候,你能协助他解决或亲自上阵,这比只会“吆五喝六”的管理者将能获得更高的敬重与威信。闲话不多说了,记录下整个KVM虚拟机的搭建过程吧。...

2019-07-12 20:11:00 527

转载 软件项目研发流程该怎么规范

在软件项目研发管理过程中,是否经常出现这样的场景:开发人员不知道什么时候转测;项目经理拿个Excel文档群里一发,某任务前天就应该完成的,怎么现在还没开始搞;前端问这部分UI是谁在做,什么时候能做完;测试说线上这个bug又是谁改出来的,这次没转测这模块……等等。整个协作感觉一团乱麻,团队内部充满了甩锅与抱怨的氛围。软件项目的研发流程该怎么规范,让团队成员都能目标明确,步调一致,让产品迭代...

2019-07-10 09:15:00 144

转载 线程池的基本原理,看完就懂了

原文地址:http://blog.jboost.cn/threadpool.html本文内容是基于研发部门内部的分享整理,记录下来供学习或回顾。1. 为什么要用线程池降低资源消耗。通过重复利用已创建的线程降低线程创建、销毁线程造成的消耗。提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。提高线程的可管理性。线程是稀缺资...

2019-07-08 10:52:00 82

转载 Spring Boot2从入门到实战:统一异常处理

都说管理的精髓就是“制度管人,流程管事”。而所谓流程,就是对一些日常工作环节、方式方法、次序等进行标准化、规范化。且不论精不精髓,在技术团队中,对一些通用场景,统一规范是必要的,只有步调一致,才能高效向前。如前后端交互协议,如本文探讨的异常处理。1. Spring Mvc中的异常处理在spring mvc中,跟异常处理的相关类大致如下上图中,spring mv...

2019-07-04 08:37:00 166

转载 redission-tomcat:快速实现从单机部署到多机部署

原文地址:http://blog.jboost.cn/session-redis.html一些项目初期出于简单快速,都是做单机开发与部署,但是随着业务的扩展或对可用性要求的提高,单机环境已不满足需求。单机部署往多机部署切换,其中可能存在的一个重要环节就是session的共享(如果一开始就是基于token的认证则可忽略)。本文介绍一个基于redis的tomcat session...

2019-06-29 10:48:00 207

转载 Swagger API文档集中化注册管理

接口文档是前后端开发对接时很重要的一个组件。手动编写接口文档既费时,又存在文档不能随代码及时更新的问题,因此产生了像swagger这样的自动生成接口文档的框架。swagger文档一般是随项目代码生成与更新,访问地址也是基于项目地址,因此对项目数不多的团队还好。如果团队的项目很多,比如采用微服务架构的团队,动则几十甚至上百个服务项目,那就意味着前端开发人员需要记住几十甚至上百个swagge...

2019-06-28 19:37:00 474

转载 Spring Boot2从入门到实战:集成AOPLog来记录接口访问日志

日志是一个Web项目中必不可少的部分,借助它我们可以做许多事情,比如问题排查、访问统计、监控告警等。一般通过引入slf4j的一些实现框架来做日志功能,如log4j,logback,log4j2,其性能也是依次增强。在springboot中,默认使用的框架是logback。我们经常需要在方法开头或结尾加日志记录传入参数或返回结果,以此来复现当时的请求情况。但是手动添加日志,不仅繁琐重复,也...

2019-06-27 15:22:00 103

转载 案例解析:springboot自动配置未生效问题定位(条件断点)

Spring Boot在为开发人员提供更高层次的封装,进而提高开发效率的同时,也为出现问题时如何进行定位带来了一定复杂性与难度。但Spring Boot同时又提供了一些诊断工具来辅助开发与分析,如spring-boot-starter-actuator。本文分享一个基于actuator与IDEA条件断点来定位自动配置未生效的案例。望对类似问题分析与处理提供参考。欢迎关注我的微信...

2019-06-27 08:23:00 336

转载 Spring Boot2从入门到实战:整合通用Mapper简化单表操作

数据库访问是web应用必不可少的部分。现今最常用的数据库ORM框架有Hibernate与Mybatis,Hibernate貌似在传统IT企业用的较多,而Mybatis则在互联网企业应用较多。通用Mapper(https://github.com/abel533/Mapper)是一个基于Mybatis,将单表的增删改查通过通用方法实现,来减少SQL编写的开源框架,且也有对应开源的mapp...

2019-06-25 08:49:00 96

转载 Spring Boot2从入门到实战:整合Web项目常用功能

在Web应用开发过程中,一般都涵盖一些常用功能的实现,如数据库访问、异常处理、消息队列、缓存服务、OSS服务,以及接口日志配置,接口文档生成等。如果每个项目都来一套,则既费力又难以维护。可以通过Spring Boot的Starter来将这些常用功能进行整合与集中维护,以达到开箱即用的目的。项目基于Spring Boot 2.1.5.RELEASE 版。项目地址:https://gi...

2019-06-21 10:32:00 67

转载 Spring Boot2 从入门到实战汇总

之前写过几篇spring boot入门到实战的博文,因为某些原因没能继续。框架更新迭代很快,之前还是基于1.x,现在2.x都出来很久了。还是希望能从基于该框架项目开发的整体有一个比较系统的梳理,于是有了这个基于2.x的系列,汇总到这里,持续更新。希望对初学者或技术研发人员带来参考,也欢迎一起交流、探讨。Spring Boot2从入门到实战(一):Spring B...

2019-06-21 10:10:00 65

转载 研发团队如何借助Gitlab来做代码review

代码review是代码质量保障的手段之一,同时开发成员之间代码review也是一种技术交流的方式,虽然会占用一些时间,但对团队而言,总体是个利大于弊的事情。如何借助现有工具在团队内部形成代码review的流程与规范,是team leader或技术管理者需要考虑的问题。本文分享一种基于Gitlab代码merge流程的code review方法,以供参考与探讨。如有更好的方法,欢迎交流。...

2019-06-19 10:50:00 138

转载 团队项目的Git分支管理规范

原文地址:http://blog.jboost.cn/git-branch.html许多公司的开发团队都采用Git来做代码版本控制。如何有效地协同开发人员之间,以及开发、测试、上线各环节的工作,可能都有各自的流程与规范。本文分享的是作者一直沿用的团队项目Git分支管理规范,希望给有缘阅读的人以参考,如果有更好的实践,也欢迎探讨、交流。分支管理创建项目时(一般是服务型项目,工...

2019-06-18 08:59:00 329

转载 命令行高效操作Git,看这篇就够了

原文地址:http://blog.jboost.cn/2019/06/16/use-git.html对于软件开发人员来说,git几乎是每天都需要接触的工具。但对于相处如此亲密的工作伙伴,你对它的了解又有多少,是不是还在傻瓜式地打开一个GUI工具,点击提交按钮,然后“卧槽,又冲突了”,一脸懵逼到不知所措,责怪谁又在你前面提交了,谁又改了你的代码。博主从一开始接触git,就没用...

2019-06-17 08:12:00 48

转载 案例解析:线程池使用不当导致的系统崩溃

前几天,发现一台阿里云服务器上的Web服务不可用。远程SSH登录不上,尝试几次登录上去之后,执行命令都显示-bash: fork: Cannot allocate memory一看以为是内存泄漏导致溢出。因为执行不了任何命令, 只能通过控制台重启服务器恢复服务。初步排查服务恢复后,查看系统日志,linux系统日志路径/var/log/messages,可通...

2019-06-16 20:26:00 649

转载 Sping Boot入门到实战之实战篇(二):一些常用功能的Spring Boot Starters

包含功能阿里云消息服务MNS阿里云消息队列服务(即时消息、延迟消息、事务消息)AOP日志基于MyBatis通用Mapper及DRUID的数据库访问dubbo支持错误处理七牛图片服务redis多连接池支持swagger配置跨域配置源码地址:https://github.com/ronwxy/base-spring-boot (如果觉得有帮...

2018-11-16 09:11:00 170

转载 Java编码辅助工具:Mapstruct—— Java对象转换框架

项目开发中,业务分层会涉及不同类型的Bean之间需要相互转换,如PO与DTO之间,PO与VO之间等。手动编码setter/getter各个对应属性,会显得臃肿繁琐。通过Mapstruct框架可简单方便地完成这一工作。如何引入:IntelliJ IDEA中安装MapStruct Support插件:File -> Settings -> Plugins 搜索MapS...

2018-11-12 17:21:00 277

转载 Java编码辅助工具:Lombok —— 避免重复臃肿的代码,提高效率

在项目开发过程中,经常会涉及到一些调整很少但又必不可少的环节,比如实体类的Getter/Setter方法,ToString方法等。这时可以使用Lombok来避免这种重复的操作,减少非核心代码的臃肿,提高编码效率。如何在IntelliJ IDEA中引入Lombok安装Lombok 插件(否则在调用setter/getter方法时IDE会提示报错): File -> ...

2018-11-12 15:55:00 119

转载 Sping Boot入门到实战之实战篇(一):实现自定义Spring Boot Starter——阿里云消息队列服务Starter...

  在Sping Boot入门到实战之入门篇(四):Spring Boot自动化配置这篇中,我们知道Spring Boot自动化配置的实现,主要由如下几部分完成:@EnableAutoConfiguration注解SpringApplication类spring-boot-autoconfigure jar包spring.factories文件  官方提供...

2018-03-26 17:54:00 391

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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