自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

360linker

IT圈技术、产品、运营、市场、职场等信息交流分享

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

原创 Win7配置gradle环境变量

配置gradle的环境变量的方式和配置JAVA_HOME等其他环境变量的步骤是一样的。通过"我的电脑"图标,右键打开菜单栏,找到"属性"点击打开,进入控制面板页面,找到高级系统设置打开,进入环境变量的配置界面。图1.点击上图的"环境变量"进入配置界面,在下面的"系统变量"一栏进行创建,将gradle目录复制过来贴上,到bin的上一级,在path中引用的时候如果环境变量只到bin的上一级,那么在引用...

2018-04-29 07:05:16 2307

原创 2018.4.26 linker航海日志之 go语言工程管理

Go开发人员需要确保所有的Go代码在同一个workspace下面一个workspace包括许多版本控制仓库(例如通过Git管理)每一个仓库包括一个或多个包每一个包由单一目录下的一个或者多个Go源文件组成包的目录路径决定了import的路径。WorkspacesWorkspace是一个目录层级,根节点包括三个文件夹:Src:包括Go的源文件Pkg:包括包对象Bin:包括可执行命令Src子文件夹一般由...

2018-04-27 10:04:48 252

原创 大流量下多级缓存设计

什么是多级缓存所谓多级缓存,即在整个系统架构的不同系统层级进行数据缓存,以提升访问效率,这也是应用最广的方案之一。我们应用的整体架构如图1所示:图1 多级缓存方案整体流程如上图所示:1)首先接入Nginx将请求负载均衡到应用Nginx,此处常用的负载均衡算法是轮询或者一致性哈希,轮询可以使服务器的请求更加均衡,而一致性哈希可以提升应用Nginx的缓存命中率,相对于轮询,一致性哈希会存在单机热点问题...

2018-04-26 23:24:07 5980 1

原创 2018.4.24 linker航海日志之 go 语言特性

1、Go的优势·         可直接编译成机器码,不依赖其他库。·         静态类型语言,可以在编译的时候检查出来隐藏的大多数问题,有很多的包可以使用,写起来的效率很高。·         语言层面支持并发,天生的支持并发,可以充分的利用多核,很容易的使用并发。·         内置runtime,支持垃圾回收。·         简单易学,关键字是25个,但是表达能力很强大。·  ...

2018-04-26 11:12:13 270

原创 Maven和Gradle对比

java世界中主要有三大构建工具:Ant、Maven和Gradle。经过几年的发展,Ant几乎销声匿迹、Maven也日薄西山,而Gradle的发展则如日中天。笔者有幸见证了Maven的没落和Gradle的兴起。Maven的主要功能主要分为5点,分别是依赖管理系统、多模块构建、一致的项目结构、一致的构建模型和插件机制。我们可以从这五个方面来分析一下Gradle比起Maven的先进之处。依赖管理系统M...

2018-04-25 11:31:42 289

原创 Go项目工程管理及目录结构

在Go的官网文档How to Write Go Code中,已经介绍了Go的项目目录一般包含以下几个:src 包含项目的源代码文件;pkg 包含编译后生成的包/库文件;bin 包含编译后生成的可执行文件。可以通过下面的例子来说明工程目录的组织管理。(Windows 7 64位,go version go1.3.3 windows/amd64)1. 创建一个库文件创建一个库文件a.go并保存在scr...

2018-04-25 11:27:34 20842

转载 go语言中数组和切片的区别

一 数组简介数组是内置(build-in)类型,是一组同类型数据的集合,它是值类型,通过从0开始的下标索引访问元素值。在初始化后长度是固定的,无法修改其长度。当作为方法的参数传入时将复制一份数组而不是引用同一指针。数组的长度也是其类型的一部分,通过内置函数len(array)获取其长度。注意:和C中的数组相比,又是有一些不同的1. Go中的数组是值类型,换句话说,如果你将一个数组赋值给另外一个数组...

2018-04-25 11:23:35 32488 2

原创 为什么有人愿意将软件开源和共享?

首先,抛出两个问题。在继续阅读后面的内容之前,建议大家花几分钟的时间认真思考自己对下面这两个问题的答案:在当今世界上,你认为最优秀的软件公司都有哪些?在当今世界上,你认为最优秀的软件工程师都有哪些?对 于上面这两个问题,你是不是在心里已经有了自己的答案?如果有的话,你的答案的名单列表里分别有多少家软件公司和多少个软件工程师的名字呢?3 个?5 个?还是 10 个?尽管目前全世界有成千上万的软件公司...

2018-04-25 09:44:08 6022 3

原创 2018.4.23 linker航海日志之 强业务驱动的互联网+时代,技术管理走过的坑与路

传统互联网与互联网+时代的产品的侧重点不同,业务内容更是区别甚大。很多公司号称以技术驱动业务,这个时代已经过去。现在的互联网企业纷纷跨界转型。拿美团举例,最开始的团购网站,到现在的外卖、打车,纷纷与传统行业挂钩。这也是最终的互联网发展方向。走进互联网+,我们在注重技术积累的同时,更应该注重业务流程,技术的产出必须能够提高传统行业的运转效率或者降低运营成本,体现信息技术的价值。怎么做到这些,百度一技...

2018-04-24 14:17:37 232

原创 java分布式链路追踪;jvm应用监控-skywalking

当企业应用进入分布式微服务时代,应用服务依赖会越来越多,skywalking可以很好的解决服务调用链路追踪的问题,而且基于java探针技术,基本对应用零侵入零耦合。skywalking是什么,有什么用?Skywalking 是一个APM系统,即应用性能监控系统,为微服务架构和云原生架构系统设计。它通过探针自动收集所需的指标,并进行分布式追踪。通过这些调用链路以及指标,Skywalking APM会...

2018-04-24 11:12:19 7110

原创 Markdown的语法,Typora 快捷键

md格式是一个纯文本格式,对于一个程序员来说,用md格式代替word、txt等格式用来写说明文档或者blog,目前github以及CSDN都支持md格式书写blog了。md格式的语法:无序列表:输入-之后输入空格有序列表:输入数字+“.”之后输入空格任务列表:-[空格]空格 文字标题:ctrl+数字表格:ctrl+t生成目录:[TOC]按回车选中一整行:ctrl+l选中单词:ctrl+d选中相同格...

2018-04-24 10:02:24 1400

原创 RESTFUL URL命名原则

URL命名通常有三种,驼峰命名法(serverAddress),蛇形命名法(server_address),脊柱命名法(server-address)。由于URL是大小写敏感的,如果用驼峰命名在输入的时候就要求区分大小写,一个是增加输入难度,另外也容易输错,报404。蛇形命名法用下划线,在输入的时候需要切换shfit,同时下划线容易被文本编辑器的下划线掩盖,支付宝用的是蛇形命名法,stack...

2018-04-24 10:01:06 53426 3

转载 git&gerrit 使用过程中遇到的问题及解决方法

公司中使用git进行代码管理, 使用gerrit 来做code review及权限管理。在使用的过程中, 遇到了不少问题, 现把它分享出来, 供大家参考。1 push 失败【现象】git push 出错, ! [remote rejected] master -> master (prohibited by Gerrit)error: failed to push some refs to ...

2018-04-23 16:23:52 4401

原创 Gerrit 使用简单说明

代码提交要求一个Commit对应一个修改点(除非是在项目初始阶段或是升级BSP时)。不要随便修改文件的属性。Windows 修改过的文件属性会变成755,上传代码时请注意修改成文件的原属性,可以用git whatchanged 来查看自己commit修改的文件。缩进格式跟原文件保持一致。不要修改跟提交内容无关的代码。Git commit 注释要求设置GIT使用vim来编辑commit,请不要使用-...

2018-04-23 11:27:01 1700

转载 正确实现用spring扫描自定义的annotation

在使用spring时,有时候有会有一些自定义annotation的需求,比如一些Listener的回调函数。比如:@Servicepublic class MyService { @MyListener public void onMessage(Message msg){ }}一开始的时候,我是在Spring的ContextRefreshedEvent事件里,通过co...

2018-04-19 15:46:47 316

原创 web项目启动流程分析

  在web项目的启动过程中,我们希望知道它的一般流程是什么,这样我们就可以在各个流程中加入相应的功能,或者对于我们排错也有帮助。  我们知道,当我们启动tomcat容器以后,容器首先初始化一些必要的组件,加载项目所引用到的jar包(分别从jdk,tomcat,还有web-inf中的lib目录下),然后接下来的一步就是去读取web项目的web.xml配置文件。所以web项目里面必须要有web.xm...

2018-04-19 15:20:41 9432 1

转载 spring boot应用启动流程分析

spring boot quick start在spring boot里,很吸引人的一个特性是可以直接把应用打包成为一个jar/war,然后这个jar/war是可以直接启动的,不需要另外配置一个Web Server。如果之前没有使用过spring boot可以通过下面的demo来感受下。 下面以这个工程为例,演示如何启动Spring boot项目:git clone git@github.com:...

2018-04-19 14:58:09 377

原创 2018.4.18 linker航海日志之 类加载器双亲委派模型

某个特定的类加载器在接到加载类的请求时,首先将加载任务委托给父类加载器,依次递归,如果父类加载器可以完成类加载任务,就成功返回;只有父类加载器无法完成此加载任务时,才自己去加载。使用双亲委派模型的好处在于Java类随着它的类加载器一起具备了一种带有优先级的层次关系。例如类java.lang.Object,它存在在rt.jar中,无论哪一个类加载器要加载这个类,最终都是委派给处于模型最顶端的Boot...

2018-04-19 10:51:10 343

转载 “这么多有钱人,都从哪来的?”

围绕着普通人一直有这样的困惑,明明房价已经这么贵了,所有人都算得出来不吃不喝要50年才能买得起房子,为什么还有那么多人买房。最近因为一些城市摇号现象又把这种情况推向风口浪尖,一套千万资产的房子,持币待购的人络绎不绝。比如最近翠湖天地轰轰烈烈的名单公示后大家对意向购房客户反复的咀嚼。这是为什么,在行业如此动荡的当下,购买力为什么这么旺盛?回答这个问题,我先说说我身边的三件事吧,我摸着我的胸脯发誓都是...

2018-04-18 18:29:16 530

原创 2018.4.17 linker航海日志之 JAVA 注解作用及关键点

Java注解是附加在代码中的一些元信息,用于一些工具在编译、运行时进行解析和使用,起到说明、配置的功能。注解不会也不能影响代码的实际逻辑,仅仅起到辅助性的作用。元注解:元注解是指注解的注解。包括  @Retention @Target @Document @Inherited四种。 自定义注解:使用@interface自定义注解时,自动继承了java.lang.annotation.Annotat...

2018-04-18 10:21:59 267

原创 IntelliJ IDEA 的 .idea 目录加入.gitignore无效的解决方法

无效的原因是:对应的目录或者文件已经被git跟踪,此时再加入.gitignore后就无效了,解决办法:先执行[文件夹]  git rm -r --cached .idea[文件]     git rm --cached demo-project.iml再重新加入.gitignore文件...

2018-04-17 16:28:41 1154

原创 缓存问题(缓存穿透、缓存雪崩、缓存击穿)怎么处理?

设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。一、缓存穿透缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。在流量大时,可能DB就挂掉了,要是有人利用不存在的key频繁攻击我们的应用,这就是漏洞。缓存穿透解决方案有很多种方法可...

2018-04-17 15:30:51 1485

原创 解决跨域问题的三种方式

什么是跨域?跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器施加的安全限制。所谓同源是指,域名,协议,端口均相同,不明白没关系,举个栗子:http://www.123.com/index.html 调用 http://www.123.com/server.php (非跨域)http://www.123.com/index.html 调用 http://www.456...

2018-04-17 10:07:03 3514

转载 短信验证码防刷策略

短信验证码作为重要的身份验证工具,因其操作简便、安全性高、时效性强等优点已被开发人员广泛使用。但因其获取便利、限制较少容易被不法分子利用进行短信轰炸,恶意刷掉大量短信费用,给公司或个人造成大量的金钱损失,造成这种情况原因主要是在产品实际设计过程中,有些产品人员因为对技术实现不太了解,防范意识薄弱,简单或直接忽略对短信验证码进行限制,这才造成短信接口恶意被不法分子利用。在介绍防刷策略前我们需要了解下...

2018-04-17 09:50:20 1850

原创 2018.4.16 linker航海日志之 软件版本中快照版本与发布版本区别

快照(SNAPSHOT)版本,在编译部署时会自动发布到快照版本库中,覆盖老的快照版本,而在使用快照版本的模块自动从镜像服务器上下载最新的快照版本。正式发布版本在编译部署时会自动发布到正式版本库中,而使用正式版本的模块编译打包时如果本地已经存在该版本的模块则不会主动去镜像服务器上下载。软件不同版本含义Beta: 该版本相对于α版已有了很大的改进,消除了严重的错误,但还是存在着一缺陷,需要经过多次测试...

2018-04-17 09:34:26 337

原创 Go 语言特性

1、Go有什么优势可直接编译成机器码,不依赖其他库,glibc的版本有一定要求,部署就是扔一个文件上去就完成了。静态类型语言,但是有动态语言的感觉,静态类型的语言就是可以在编译的时候检查出来隐藏的大多数问题,动态语言的感觉就是有很多的包可以使用,写起来的效率很高。语言层面支持并发,这个就是Go最大的特色,天生的支持并发,我曾经说过一句话,天生的基因和整容是有区别的,大家一样美丽,但是你喜欢整容的还...

2018-04-17 09:25:34 165

转载 未来五年IT技术的市场进入模式将发生重大变革

 主要观点 ➤ 预测一:2019年,收入超过1000万美元的采用目标用户营销(ABM)作为其主要市场进入模式的B2B技术服务供应商,将从2017年的25%上升到75%。➤ 预测二:到2021年,将设计思维的方法应用于创新计划的科技公司,将从2017年的15%上升到50%。➤ 预测三:到2020年,通过买方自助服务完成购买的销售额占企业软件销售总额的比重,将从2017年的不足10%上升到25%。➤ ...

2018-04-16 22:12:19 882

原创 快照版本和发布版本区别

在使用maven过程中,我们在开发阶段经常性的会有很多公共库处于不稳定状态,随时需要修改并发布,可能一天就要发布一次,遇到bug时,甚至一天要发布N次。我们知道,maven的依赖管理是基于版本管理的,对于发布状态的artifact,如果版本号相同,即使我们内部的镜像服务器上的组件比本地新,maven也不会主动下载的。如果我们在开发阶段都是基于正式发布版本来做依赖管理,那么遇到这个问题,就需要升级组...

2018-04-16 12:55:17 15668 3

原创 2018.4.15 linker航海日志之项目采用区块链技术的约束

我们采用区块链的技术路线,那么在IT规划阶段,我们就应该明白区块链运行需要一系列的约束条件,沦为为了区块链而区块链,则得不偿失。一个项目是否采用区块链,可以考虑下是否满足以下约束条件:1、 基于数据库,进行数据的存储。2、 需要多个“写操作者”,多参与节点同时进行交易记录。3、 存在信任缺失的情况,默认各参与方互不信任。4、 需要去中心化(或者去中介化、或脱媒),所有参与的节点直接记录交易信息,去...

2018-04-16 10:01:49 253

转载 Java自定义注解和运行时靠反射获取注解

java自定义注解Java注解是附加在代码中的一些元信息,用于一些工具在编译、运行时进行解析和使用,起到说明、配置的功能。注解不会也不能影响代码的实际逻辑,仅仅起到辅助性的作用。包含在 java.lang.annotation 包中。1、元注解元注解是指注解的注解。包括  @Retention @Target @Document @Inherited四种。1.1、@Retention: 定义注解的...

2018-04-16 09:39:47 529

转载 你为什么选择程序员这个职业?

于为何选择程序员这份工作,各有各的答案。有的人因为喜欢代码的对话逻辑,有的人因为看中程序员的较高薪资。有人追名,有人逐利,有人为了梦想,还有人仅仅只是想做些实际的小事。你的答案,又是什么?写在前面前几天和两位发小聚餐,我们三个人都选择了程序员作为自己的职业。初始时三个人差不多,往后的十几年开始出现了发展偏差,现在的我们进入到了职业的重要选择点,三个人的选择出现了较大的偏差,幸运的是每个人都走在了适...

2018-04-14 11:02:32 2994

原创 2018.4.13 linker航海日志之区块链技术原理

​替换高清大图请点击此处输入图片描述今日比特币价格飙升785百美元,其他加密货币同时大涨超过10%。这里我们不去讨论加密货币的市场价值。我们一起再次认识下它的底层技术:区块链技术。区块链是什么?1、 区块链是一个放在非安全环境中的分布式数据库(账簿、系统)。2、 区块链采用密码学的方法来保证已有数据不可能被篡改。3、 区块链采用共识算法来对于新增数据(交易)达成共识。区块链有哪些特点?1、 去中介...

2018-04-14 08:58:54 386

原创 智能化运维的运用场景和实践

在日常IT运维工作中存在大量重复的日常工作任务,这些任务有的复杂繁琐数量大,有的严重依赖执行次序,有的需要等待各种条件具备之后方可执行。尽管IT运维管理的技术在不断进步,但实际上IT运维人员并未真正解放,目前许多企业的系统开启和关闭、系统更新升级、应急操作等绝大多数工作都是手工操作的。即便简单的系统变更或软件复制粘贴式的升级更新,往往都需要运维人员逐一登录每台设备进行手工变更。尤其是在云平台、大数...

2018-04-11 17:34:30 3167

转载 程序员如何用技术变现?

正文1 写在前面  程序员用自己的技术变现,其实是一件天经地义的事儿。写程序是一门“手艺活儿”,那么作为手艺人,程序员当然可以做到靠自己的手艺和技能养活自己。  然而,现在很多手艺人程序员却说自己是“码农”,编码的农民工,在工作上被各种使唤,各种加班,累得像个牲口。在职业发展上各种迷茫和彷徨,完全看不到未来的希望,更别说可以成为一个手艺人用自己的技能变现了。  从大学时代帮人打字挣点零花钱,到逐渐...

2018-04-10 15:00:36 1161 4

转载 新兴产业是经济增长的重要力量

2018 年全球新兴产业有望继续获得科技巨头的青睐,成为拉动全球经济增长的新动能,国内战略性新兴产业受国家政策和宏观经济环境影响,支撑引领作用更加凸显,优势领域国际地位进一步提高,部分领域领先优势得到进一步强化。但同时也要认真对待产业发展中存在的突出问题,如产业发展环境尚不完善,关键材料和部件受制于人、产业低端重复建设,以及行业管理水平有待提高等。2017 年,在《“十三五”国家战略性新兴产业发展...

2018-04-08 20:34:37 2519

原创 Service Mesh在微服务中的使用

Service Mesh 是什么?在微服务架构中怎么体现其价值?Service Mesh(服务网格)是一个基础设施层,让服务之间的通信更安全、快速和可靠。如果你在构建云原生应用,那么就需要 Service Mesh。Service Mesh 已经成为云原生技术栈里的一个关键组件。很多拥有高负载流量业务的公司都在他们的生产应用里加入了 Service Mesh。但是 Service Mesh 是什么...

2018-04-08 09:01:46 1090

转载 新兴技术成熟度曲线

2017年7月,Gartner公司发布了年度新兴技术成熟度曲线。Gartner认为,2017年技术成熟度曲线揭示了未来5-10年的三方面技术趋势。未来10年,人工智能将成为最具颠覆性的技术。通用人工智能/神经形态硬件/深度强化学习/量子计算/脑机接口等技术仍处在上升阶段。情感计算/自然语言问答/智能数字挖掘/虚拟个人助理等已经脱离曲线,走向成熟。图1 2017新兴技术成熟度曲线突出趋势:无处不在的...

2018-04-01 01:10:00 6081

空空如也

空空如也

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

TA关注的人

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