11 看山

尚未进行身份认证

我要认证

Do what you say,say what you do.

等级
TA的排名 1w+

系统设计系列之如何设计一个短链服务

短链服务的鼻祖是 TinyURL,是最早提供短链服务的网站,目前国内也有很多短链服务:新浪(t.cn)、百度(dwz.cn)、腾讯(url.cn)等等。不得不问一句,为什么要用短链?这个问题的另外一层意思是,短链服务有必要存在吗?套用万金油答案:存在即合理。短链服务存在的合理性我们先说说短链服务存在的合理性。短链唯一的一个优点是短。微博的早期用户都知道,每条微博只能限制在 140 个字以内,如果想要分享一个链接,就需要减少描述的文字。同样,如果想要在营销短信中放入一个链接,就需要考虑成本问题

2020-08-02 23:49:00

如何在足够规模团队中高效使用 Git 管理代码?

用了 Git 多年,优势和挑战都是深有体会。话不多说,直接上问题:如何在足够规模团队中高效使用 Git 管理代码?继续不多话,直接上答案:分支管理。Git 的分支管理有很多实践,有些是从 SVN 类的集中式版本管理工具继承的,有些是根据 Git 自己的特性总结的,目前市面上比较有名的三种 Git 分支管理模型是:TrunkBased:主干在手,天下我有。所有代码都往主干上招呼,发版也只用主干。GitFlow:严谨、规范、难用,主要是记不住该往哪个分支合并了。AoneFlow:前两种都不行,那

2020-07-24 21:42:03

IPv4 与 int 之间互相转换

目前数据存储设备越来越便宜,已经不存在为了节省空间而引入复杂计算的场景,但是有时候,将 IPv4 这种长字符串数据转换为数字,更加便于比较和查询。1. 直接转换直接能够想到的方式是把网段之间的“.”去掉,组成一个长数字就行。但是在“255.255.255.255”地址时,去掉“.”的数字是255255255255,大于int能够表示的最大数字,所以,真正使用的时候,只能使用长整型Long型。但是这种方式有两个严重的问题:单向转换:只适合那种需要从 IPv4 到数字单向转换的场景,如果想要转回来,

2020-07-20 22:24:11

从单体架构到微服务架构

微服务的优势众多,在现在如果有谁没有听过微服务架构,可以从这里了解一下。本文主要聊一聊是否值得花时间将单体架构重构为微服务架构?微服务架构是一种架构风格,专注于软件研发效能,主要包括单位时间内实现更多功能,或者软件从想法到上线的整个持续交付的过程。在当前的互联网环境中,业务变化迅速,也促使了微服务架构的普及。这种架构迫使团队迅速反应,快速实施,在方案没有过期之前已经上线运行,经受市场考察和考...

2020-03-22 23:06:51

别让非理性思维毁了你的人生

本文是盖瑞·马库斯的《怪诞脑科学:战胜焦虑、混乱、拖延的自控术》一书读后感,借用作者给出的13条建议,结合自己的理解分享给大家。

2020-02-23 22:45:59

实现DevOps的三步工作法

实现DevOps的三步工作法:流动原则、反馈原则、持续学习与实验原则。

2020-02-09 23:23:07

微服务中服务注册和发现的可行性方案

在 微服务的基建工作 中提到过,在云原生、微服务时代,如果还是手动修改服务地址,是几乎不可完成的工作,需要一种机制完成自动上报和获取服务地址的支撑组件,可以保障服务的快速上线和下线,这就是服务注册/发现组件。为了表述方便,从系统规模定义几个阶段:- 巨型应用架构时期:很多应用都是一个巨型服务,一个应用包含所有功能,部署在小型机和大型机上,或者直接部署在物理服务器上。- 单体架构时期:应用...

2020-01-29 17:36:51

微服务的基建工作

微服务的出现是为了研发效能的提升:相同的人数可以处理更多的需求、维护更多的产品,可以更快的交付产品。基于这点,微服务的基础组件,就从解放人力,减少人为失误出发。

2020-01-05 18:11:33

什么是微服务?

什么是微服务?我所理解的微服务,就六个字:“高内聚,低耦合”。没错,就是这个在软件开发过程中被反复提到的六个字,各类设计模式、架构设计、从入门到放弃等各种书中总会提到,从初级到高级到骨灰级程序员、架构师挂在嘴边的也是这六个字。只不过,在微服务概念之前,这六个字被用在类、模块、组件上,微服务则是将它放在服务上。

2020-01-01 18:51:40

并发与并行 同步或异步

并发与并行我们都知道,程序猿是一种逻辑性极强的生物,他们不擅言辞,不擅表达,但是他们能够用一种神秘的语言与机器进行沟通,知道怎么让机器听他们的。机器是线性思维,为了能够更高效的与机器沟通,程序猿主动或被动或潜移默化的转变思维模式,思维逐渐变得线性。最直观的表现就是,程序猿一次只能做一件事情,如果同时做多件事情,他们就会感觉不安,内心不够自信,我们戏称单线程生物。这其实是与机器微观世界有一定的契合...

2019-12-31 00:19:15

深入理解Java虚拟机:JVM高级特性与最佳实践(第2版) 读后感

写这篇读后感的缘由是这本书的第三版即将面世了,先拜谢周教授,相信很多人得益于周教授的这本书。14年入手的第二版,当时准备跳槽,需要理论知识武装一下。于是囫囵吞枣的扫了第一遍,就两个字,不懂,那种感觉就仿佛身在雾中,一切都看不通透,感觉浑身不舒服,想来是自己水平太渣了。那个时间点是在工作2年,加上大学4年,接触java将近6年的时间,在项目组内基本上属于横着走,跟同学出牛,“只要能说明白需求,我...

2019-12-12 11:02:36

微服务编程范式

目前很多互联网公司都采用微服务架构,微服务的优点和缺点被反复说到,这里不在重复赘述,只结合工作中的一些实践,说说要用微服务要注意的点,厚颜写做编程范式,其实就是一些技巧而已。

2019-11-09 19:50:56

程序员什么时候该考虑辞职

经常有程序员在讨论要不要辞职,以及现在辞职是不是一个明智之举。这是很严肃的话题,因为这个决定会对程序员的职业生涯和生活产生非常深远的影响。很多人想要辞职但是因为怕被贴上“爱跳槽”的标签而裹足不前。从我观察的结果来看,很多程序员趋向于为了所谓的“声誉”而呆在老公司,但是在后期将两者相比较,“呆在老公司”的程序员处理问题的经验和职业发展前景远远不如那些频繁跳槽的。正如我以前曾经说过,有的公司甚至非常愿意在岗位上看到一些积极的人员流动。

2019-11-09 15:08:57

瞎说八道之更换手机的成本

现在手机越来越便宜,换手机是比较常见的一件事,所以各大厂商为了降低更换手机的成本,也是各种手段费尽心思:一键换机、云账号。。。但是这些方式都建立在一个基础上,就是同品牌手机才能用。如果是跨品牌换机,那真是要经历九九八十一难,百转千回才能顺利使用新机。像我这种懒人,可能还要在很长一段时间继续使用旧手机。

2019-11-09 14:46:37

源码安装NGINX

本文主要记录一次从源码安装Nginx过程,参考的是Nginx官网。

2019-11-09 14:37:53

蓝绿部署、金丝雀发布(灰度发布)、AB测试

随着微服务架构的普及,线上服务越来越多,随之而来的就是部署越来越频繁;随着互联网行业的兴旺,产品迭代的频率也是越来越快,服务上线速度逐步提升。有上线、有部署,就有风险。有风险,就对业务有影响,然后就有了一系列减少这种风险的部署方案:蓝绿部署、金丝雀发布(灰度发布),也有适应产品迭代频率的AB测试。

2019-10-26 17:09:26

spring-cloud-config 非对称加密 keystore 文件加载异常

因为配置内容可能涉及到某些敏感信息,所以可以简单的在Spring Cloud Config中使用非对称加密实现敏感信息的安全存储。但是在使用过程中,却碰到一些奇葩的问题,无论是官方文档还是一些大神的博文,都没有明确解决。当然,这个问题的出现与我的配置有关,很多人可能并没有碰到。这里把问题描述下,万一有人和我一样配置,也出现问题,就可以帮助别人节省点时间了。

2017-10-12 16:16:19

代码质量管理:SonarQube + Jenkins Pipeline配置

本文主要是介绍通过Jenkins Pipeline与SonarQube集成,对代码进行扫描,这里使用的是Jenkins2.19.1,SonarQube6.4。

2017-09-13 15:53:25

java.lang.OutOfMemoryError:GC overhead limit exceeded

简单来说,java.lang.OutOfMemoryError:GCoverheadlimitexceeded发生的原因是,当前已经没有可用内存,经过多次GC之后仍然没能有效释放内存。

2017-09-11 16:36:20

中文字节长度引起的数据丢失

最近在写一个应用监控的项目,使用netty作为数据传输。因为刚开始写,没有使用Protobuf之类的作为编码工具,只是使用的是netty自带的`LengthFieldBasedFrameDecoder`作为报文解析工具,自定义编码解码类,实现数据传输。在对中文进行转换字节的时候一定要注意,千万不要想当然的使用`length()`方法。还是要根据具体情况多试试。

2017-08-30 16:18:07

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 分享精英
    分享精英
    成功上传11个资源即可获取