
Java
文章平均质量分 80
互联网工匠
关注互联网技术,保持工匠精神,一起学习,一起成长。
展开
-
互联网后端工程架构全景
经过几十年的发展,在互联网大厂的技术引领下,互联网技术基础设施不断成熟并趋向统一,今天梳理下目前互联网主流技术中间件及后端工程架构全景图(如下图所示)。研发流程项目需求管理是所有大型软件开发项目必备的基础设施。Atlassian公司的JIRA是这个领域成熟的商业软件,国内许多互联网公司都在使用或曾经使用过。它实践了敏捷项目开发的管理理念,几乎所有互联网软件开发都是采用敏捷开发模式。文档协作能提高多人协同工作效率,几乎所有组织都需要。这个领域国内外都有非常成熟的软件和解决方案,比如国外Atlassia原创 2021-09-08 10:44:37 · 1304 阅读 · 0 评论 -
服务端主流中间件之Apollo配置中心
配置对于程序而言是必不可少的,它提供我们可以动态修改程序运行能力。引用别人的一句话就是“系统运行时(runtime)飞行姿态的动态调整!”配置分为静态配置和动态配置。静态配置是在程序启动前配好,启动时一次性生效,在程序运行期不会变化的配置。静态配置主要通过配置文件实现,比如.ini文件、.xml文件、.properties文件等。一般程序运行环境、性能参数等会采用静态配置。动态配置是在程序的运...原创 2020-03-26 16:08:00 · 1520 阅读 · 0 评论 -
JVM性能调优
Java从诞生之初就一直被诟病性能不如C/C++。究其原因,最主要是因为Java程序是运行在JVM虚拟机之上,而C/C++是运行在物理机之上。对于Java程序而言,哪怕是最简单的 HelloWorld 程序都需要先运行一个JVM程序。这意味着要它至少要多出一个类加载程序、字节码解析执行程序以及GC程序等。不过,虽然牺牲了一些运行效率,但是Java通过 JVM 实现了其 “Write Once, R...原创 2020-03-18 15:53:01 · 298 阅读 · 0 评论 -
一图把握服务端缓存架构设计要领
在程序设计中,缓存是典型的用空间换时间来获得程序性能提升的手段。对互联网服务端架构来说,缓存还是一种应对高并发的有效手段(延伸阅读《高并发架构设计》)。缓存不是简单的KV读写,引入缓存会增加全局系统架构的一致性复杂度,缓存架构设计不到位,反而会带来数据不一致问题。下图是关于服务端缓存设计的核心技术点。何时需要缓存?《高并发架构设计》一文指出当QPS大于50,将达到单机DB性能的极...原创 2020-03-10 14:54:28 · 601 阅读 · 0 评论 -
微服务治理之降级&限流&熔断
前言从PC互联网到移动互联网,B/S架构演化为多端/S架构。后端服务SOA模式下的重服务或单服务架构,逐渐按功能模块被切分成微服务架构(延伸阅读《软件工程和架构发展简史》)。微服务架构确实能解决单服务架构的许多顽疾,比如代码维护难、部署不灵活、稳定性不高、无法快速扩展等。但随着微服务模块的与日俱增,它又带来了一些新的问题需要解决。针对这些问题,Spring Cloud提供了一整套微服务实施方案...原创 2020-02-05 19:38:57 · 3471 阅读 · 1 评论 -
对Java注解的三层理解
许多程序设计语言都有自己的独门武功,比如C语言可操作内存空间,PHP代码无需编译,Golang有协程。Java自然也有,比如 "Write Once,Run Anywhere" 能力、纯OO特性、以及(本文的主题)注解。现代Java程序员真的是太喜欢注解了,以至于在使用其他编程语言时,都忍受不了无法使用注解。对啊,为啥其他语言大多都不支持注解呢?或许这个问题该反过来思考:为啥Java会有注解这种神...原创 2020-01-21 09:43:05 · 417 阅读 · 0 评论