自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

博客园搬家测试账号

dennyzhangdd--只会一点java

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

原创 一文搞懂国际化(一)背景概览

专题目录一文搞懂国际化(一)背景概览 一文搞懂国际化(二)架构设计一文搞懂国际化(三)落地实践一文搞懂国际化(四)总结提升一、背景  软硬件产品(互联网、产业互联网等等),在2019年后,特别是2020年后,由于国内行业过于卷(低价、噱头、资本、政策),很多业务都开始从国内转向国外、从新兴业务转向传统业务。笔者经历的就有消费金融、虚拟币平台、母婴社交、农牧养殖。本文的背景就是一个深耕...

2024-03-11 11:47:00 912

原创 一文掌握设计模式(定义+UML类图+应用)

一、引子  从学编程一开始就被告知,要想做一名优秀的程序员两大必要技能:1.源码阅读(JDK、C等底层语言封装) 2.设计模式(使用某种语言优雅的落地典型场景功能)。一般随着工作年限的增长,被迫对底层语言/框架源码阅读的越来愈多,但是设计模式如不刻意去学习,永远不会真正掌握。笔者把设计模式比喻成程序员的“绝世神功”,掌握了设计模式,对快速阅读源码、优雅地编写程序有极大的促进作用,可以说就像打通...

2023-06-26 16:45:00 727

原创 大数据(三)大数据技术栈发展史

-系列目录-大数据(一)背景和概念大数据(二)大数据架构发展史大数据(三)大数据技术栈发展史前两章,我们分析了大数据相关的概念和发展史,本节我们就讲一讲具体的大数据领域的常见技术栈发展史。对主流技术栈有一个初步的认知。一、总览大数据技术栈非常多估计大大小小多达上百种。但发展史、技术体系仍有迹可循。我们从数据采集、清洗、应用3大步骤来看,在每个步骤内部按照时序标识主流技术栈时间点。以此期...

2023-05-22 11:33:00 677 2

原创 大数据架构(一)背景和概念

-系列目录-大数据架构(一)背景和概念大数据架构(二)大数据发展史一、背景1.岗位现状大数据在一线互联网已经爆发了好多年,2015年-2020年(国内互联网爆发期)那时候的大数据开发,刚毕业能写Hive SQL配置个离线任务、整个帆软报表都20K+起步。如果做到架构师,50K跑不掉。现在市场回归理性后:普通岗:大数据/数仓开发,实际上除超一线城市之外,尚存很多大型企业转型期信息化、...

2023-04-28 17:27:00 1133

原创 大数据架构(二)大数据发展史

1.传统数仓发展史传统数据仓库的发展史这里不展开架构细讲,只需快速过一遍即可。了解这个历史发展过程即可。1.1 传统数仓历史1.1.1 5个时代 传统数仓发展史可以称为5个时代的经典论证战。按照两位数据仓库大师 Ralph kilmball、Bill Innmon 在数据仓库建设理念上碰撞阶段来作为小的分界线:1970~1991 数据仓库概念萌芽到全企业集成。1991~199...

2023-04-23 18:33:00 722

原创 分布式架构-可观测性(四)-聚合度量

系列目录分布式架构-可观测性(一)-原理概览分布式架构-可观测性(二)-事件日志分布式架构-可观测性(三)-链路追踪分布式架构-可观测性(四)-聚合度量引子  分布式架构的可观测性,度量(Metrics)的目的是揭示系统的总体运行状态。度量总体上可分为客户端的指标收集、服务端的存储查询以及终端的监控预警三部分能力,每个过程在系统中一般也会设置对应的组件来实现。Prometheus在度...

2023-03-16 14:23:00 122

原创 分布式架构-可观测性(三)-链路追踪

系列目录分布式架构-可观测性(一)-原理概览分布式架构-可观测性(二)-事件日志分布式架构-可观测性(三)-链路追踪分布式架构-可观测性(四)-聚合度量引子  现代分布式链路追踪公认的起源是 Google 在 2010 年发表的论文《Dapper : a Large-Scale Distributed Systems Tracing Infrastructure》,介绍了 Googl...

2023-03-16 10:18:00 198

原创 分布式架构-可观测性-事件日志

一、原理概览日志用来记录系统运行期间发生过的离散事件。日志就像阳光与空气,无可或缺却不太被重视。打印日志简单,也并不简单,尤其是复杂的分布式系统,就很难只依靠 tail、grep、awk 来从日志中挖掘信息了,往往还要有专门的全局查询和可视化功能。此时,从打印日志到分析查询之间,还隔着收集、缓冲、聚合、加工、索引、存储等若干个步骤,如下图所示。1.1 ELK提到日志收集,大家最熟悉的套件...

2023-03-14 19:57:00 153

原创 分布式架构-可观测性-原理概览

引子随着分布式架构越来越成熟,微服务、云原生架构(服务端架构演进史)的爆发式增长,可观测性(Observability)已经被纳入了架构必备知识体系。2017 年的分布式追踪峰会(2017 Distributed Tracing Summit)结束后,Peter Bourgon 撰写了总结文章《Metrics, Tracing, and Logging》系统地阐述了这三者的定义、特征,以及它们...

2023-03-14 11:29:00 200

原创 分布式架构-可靠通讯-服务安全

系列目录分布式架构-可靠通讯-零信任网络分布式架构-可靠通讯-服务安全引子上一节“分布式架构-可靠通讯-零信任网络”里,我们探讨了与微服务运作特点相适应的零信任安全模型。本节,我们将从实践和编码的角度出发,介绍在前微服务时代(以 Spring Cloud 为例)和云原生时代(以 Istio over Kubernetes 为例)分别是如何实现安全传输、认证和授权的,通过这两者的对比,探讨...

2023-03-10 13:57:00 169

原创 分布式架构-可靠通讯-零信任网络

引子  微服务提倡分散治理(Decentralized Governance),不追求统一的技术平台,提倡让团队有自由选择的权利,不受制于语言和技术框架。为了避免由于单个服务节点出现漏洞被攻击者突破,进而导致整个系统和内网都遭到入侵,我们就必须打破一些传统的安全观念,以构筑更加可靠的服务间通信机制。一、零信任网络  将安全防护措施集中部署在各个区域的边界之上,重点关注跨区域的网络流量。我们...

2023-03-09 15:19:00 146

原创 分布式架构-流量治理-服务容错

系列目录分布式架构-流量治理-服务容错分布式架构-流量治理-流量控制引子容错性设计(Design for Failure)是微服务的一个核心原则。随着拆分出的服务越来越多,随之而来会面临以下两个问题的困扰:由于某一个服务的崩溃,导致所有用到这个服务的其他服务都无法正常工作,这便是雪崩效应。如何防止雪崩效应便是微服务架构容错性设计原则的具体实践。服务虽然没有崩溃,但由于处理能力有限,...

2023-03-08 15:38:00 193

原创 分布式架构-流量治理-流量控制

系列目录分布式架构-流量治理-服务容错分布式架构-流量治理-流量控制引子任何一个系统的运算、存储、网络资源都不是无限的,当系统资源不足以支撑外部超过预期的突发流量时,便应该要有取舍,建立面对超额流量自我保护的机制,这个机制就是微服务中常说的“限流”。1.流量统计指标每秒事务数(Transactions per Second,TPS):TPS 是衡量信息系统吞吐量的最终标准。“事务...

2023-03-08 15:36:00 360

原创 透明多级分流系统(架构扫盲贴)

引子现代互联网系统,架构设计时避不开的一点就是流量规划、负载均衡。期望做到透明、多级的分流系统。“多级”就是在各个层面的技术组件来分流,“透明”就是业务无感知(甚至是技术无感知)。本文期望能够给各位架构师作为扫盲贴使用。两条普适性原则:1.尽最大限度减少到达单点部件的流量。引导请求分流至最合适的组件中,避免绝大多数流量汇集到单点部件(如数据库),同时依然能够在绝大多数时候保证处理结果的准...

2023-02-24 18:21:00 568

原创 远程服务调用(RPC与Rest本质区别)

一、背景远程服务将计算机程序的工作范围从单机扩展到网络,从本地延伸至远程,是构建分布式系统的首要基础。远程服务调用(Remote Procedure Call,RPC)在计算机科学中已经存在了超过四十年时间。但很多人无法明确区分RPC与Rest。本文就讲一讲RPC和Rest的本质区别。二、分析2.1 RPC概念:20 世纪 80 年代初期,传奇的施乐 Palo Alto 研究中心发布...

2023-02-20 14:08:00 151

原创 云原生架构(三)简单样例

系列目录云原生架构(一)原理概览云原生架构(二)环境搭建云原生架构(三)简单样例云原生架构(四)源码详解云原生架构(五)总结提高一、目标&准备1.1 目标前两节,我们学习了云原生架构Istio的原理概览、环境搭建。要快速熟悉一个技术架构,最快的方式是先跑起来。这一节我们以Istio服务网格的能力,验证微服务间的流量管理、可观测性。注:本节参照Istio官网--任务相关章...

2022-12-16 17:17:00 124

原创 云原生架构(二)环境搭建(Mac上安装Istio---Docker+Kubernetes+Istio一条龙)

系列目录云原生架构(一)原理概览云原生架构(二)环境搭建云原生架构(三)简单样例云原生架构(四)源码详解云原生架构(五)总结提高一、背景Istio 项目由 Google 和 IBM 的团队与 Lyft 的 Envoy 团队合作启动。它已经完全在 GitHub 上公开开发。目前已经是“Service Mesh服务网格”的实际领导者。Istio官方图标如下图,是希腊语中的 英文“sai...

2022-12-09 17:58:00 433

原创 云原生架构(一)原理概览

系列目录云原生架构(一)原理概览云原生架构(二)环境搭建云原生架构(三)简单样例云原生架构(四)源码详解云原生架构(五)总结提高一、行业现状简单来说,服务端架构发展经历了4个主要历程:单体架构、SOA架构、微服务架构、云原生架构(服务端架构演进史)。2017年Kubernetes一统虚拟化和容器化技术后,基于 Kubernetes 之上构筑的服务网格(Service Mesh)开始...

2022-12-06 17:44:00 527

原创 云原生架构学习计划

一、背景云原生已经是架构师躲不开的一个门槛,有必要拿下。这里列一下博主对云原生的学习之路。也可以给各位同学打个样,找到入门一个架构的方法。二、计划2.1 总耗时一共花大概7-10天时间来完成对云原生架构的入门学习。包括原理、环境搭建、使用、原理剖析、总结。2.2 详细计划学习计划(半天)云原生架构(一)原理概览 (一天):云原生架构在架构领域的地位、云原生的行业现状、最终选定i...

2022-12-06 11:23:00 169

原创 服务端架构演进史

一、引子当我们入行成为一名后端程序员时,就很羡慕架构师这个岗位的人,视同神一样的存在。而要成为一名后端架构师,必会技能就是分布式架构。今天我们不讲各种组件怎么去实现分布式细节,而是从分布式服务的这一角度来看历史的发展。目的就一个:构建并丰富自己的架构知识体系。(普通人差大神多少?选对方向,持之以恒而已。)注:本文是笔者最近读了周志明大神(《深入理解Java虚拟机》的作者)的凤凰架构,才有了...

2022-12-05 18:55:00 259

原创 领域驱动架构及其演变史(EBI、DDD、端口适配、洋葱、整洁)

一、引子聊架构总离不开“领域驱动架构”,大多能聊到DDD(Domain-Driven Design),实际上早期思想EBI架构 1992年就诞生了。核心价值点在于:关注核心业务领域(高内聚),分离实现层(低耦合)。后续一些演变架构有:端口和适配器架构、洋葱架构、整洁架构、事件驱动架构。这一系列的架构演变,每个架构的核心思想了解下就好,不用纠结实现细节。二、架构演变2.1 EBI 架构(19...

2022-11-11 18:59:00 337

原创 软件架构(六)MVC架构历史

一、引子一个系统可能由很多子系统组成。各子系统内部高度内聚,子系统之间低耦合。子系统关注自己的职责。实现: 职责分离,关注点分离。----MVC架构早期就是为了分离视图、模型而诞生的。注:很多地方说MVC是一种设计模式,博主认为,精确来说MVC是一种架构模式(软件架构(三)名词解释:架构、设计、风格、模式),一种通用设计方案,发展至今,已不局限于前端或后端。例如springMVC就是其中...

2022-10-26 15:24:00 216

原创 软件架构(五)分层架构

零几年最早接触编程时,写的课程设计就是MVC架构,这就是一种典型的分层架构。一、分层概念分层是一种常见的根据系统中的角色/职责拆分和组织代码单元的常规实践。注:本文说的不单指后端架构,而是整个软件的分层架构,包含前端、后端、数据库。在一个分层系统中,每一层:依赖它之下的层;和它之上的层无关,对使用(依赖)它的层次无感知。在分层架构中,分层可以访问它之下的任何分层。二、分层历...

2022-09-15 10:32:00 727

原创 软件架构(三)名词解释:架构、设计、风格、模式

引子常常,我们会被一堆名字绕晕:架构风格、架构模式、设计风格、设计模式、架构设计。查看维基百科:目前业内也没有明确的理论,但是我们现在可以识别出许多架构模式(Architecture Patterns)或风格(Architecture Styles),它们构成了软件架构师的基本技能。本文就来捋一捋这些词语。一、名词解释我们把这几个次拆解开得到4个基础词汇,其中架构和设计是一组,风格和模式是...

2022-09-13 20:36:00 241

原创 软件架构(二)编程语言的历史

一、编程语言发展史-分类篇要了解架构的历史,作为架构落地的载体,编程语言的历史有必要先了解下。要注意的是,编程语言并不是一种架构的产出物。架构是设计,编程语言是实现落地的工具。从整体大的发展史来看,可以归纳为3种语言史:机器语言、汇编语言、高级语言。如下图所示:1.1 机器语言计算机用0和1来表示电路元件的低电平和高电平,这种语言就是机器语言。由于直接和硬件的电路元件物理逻辑耦合,这种编...

2022-08-23 16:45:00 180

原创 软件架构(四)单体架构(Monolithic Architecture)

一、软件发展趋势模块化(Modular)模块化编程是在20世纪60年代末和70年代提出的解决方案。它是从类到更粗粒度的代码单元显式定义的演变。编程语言以不同的显式等级实现模块化。例如,JAVA中默认级别意味着类只在其package中可见,而public意味着类在其package内外都可见。一直到JDK9,模块化直接作为重大特性发布。其实就是将JDK中类,模块化拆分。组件化(Compo...

2022-08-20 17:04:00 700

原创 软件架构(一)概览

引子做架构匆匆忙忙有几年后,忽然反思,自己对架构这一职位掌控到什么程度了?特整理出相关系列文章。从2个步骤来剖析架构:1.整理学习软件架构历史。正所谓...以史为鉴,可以知兴替。(2022.7-10月)2.理论结合实践,阐述工作中遇到的架构问题和解决方案。(2022.9-无穷大)一翻网上冲浪后,找到几篇不错的文章。特地整理出来。一、软件架构编年史系列软件架构编年史(译) /...

2022-08-17 08:43:00 66

原创 Seata的技术调研

引子本文不剖析业内分布式组件,只剖析seata这一组件的技术调研。看看是否存在接入价值。一、概述Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。也是目前最具影响力的分布式事务组件。本文从核心原理、性能测试两大模块来剖析seata。根据Seat...

2022-05-12 16:30:00 316

原创 Sagas论文原文读后总结

一、引子分布式事务组件seata最近社区很活跃,刚好公司有对接seata的计划。刚好借此机会,彻底了解下seata的价值。其中有一个比较特殊的模式叫SAGA模式,听起来就很懵逼,按照官网的介绍起源于一篇1987年的论文:于是,决定翻译一下原文,附上论文链接如下:Princeton University Report ID: TR-070-87(如下载速度过慢,请点此博客园文件链接)二、读...

2022-05-12 14:17:00 234

原创 P8+架构师养成计划

一、P8+要求1.收集能力要求1.专业能力技术架构、业务架构。做到无中生有。2.基石能力沟通协调能力、团队管理能力、逻辑能力、风险控制能力。3.影响力团队内部影响、外部影响、行业影响力。2.制定学习计划P8架构师全景概论二、落地实践找到其中几个点,在项目中落地实践,解决技术问题,助力业务运行。...

2022-02-17 19:38:00 135

原创 IDEA 报错 project is already registered

1.环境&背景有时候IEDA下一个工程中想引入多个项目,只能添加多个modules.版本:IDEA 2020.2构建:gradle2.问题有时候删掉了某个项目再导入时报错 project is already registered。3.解决1.首先找到当前project的主工程。下面有个.idea文件夹,编辑gradle.xml,如下图:找到已存在的gradle工程...

2021-11-05 09:25:00 1183

原创 DDD领域驱动设计落地实践(十分钟看完,半小时落地)

一、引子不知今年吹了什么风,忽然DDD领域驱动设计进入大家视野。该思想源于2003年 Eric Evans编写的“Domain-Driven Design领域驱动设计”简称DDD,Evans DDD是一套综合软件系统分析和设计的面向对象建模方法。刚好公司领导强力推荐这个,抱着学习的心态,耗时5个月,体验了一把:“DDD从入门到弃坑”。二、思想学习网站:https://www.jdon.co...

2021-10-11 15:11:00 283

原创 【5分钟】W10 64bit系统本地安装postgresql 11

1.下载官网下载地址2.安装一路默认,有一个选语言的可以选中chinese simple(中文简体)。3.初始化1)进入bin: cd C:\Program Files\PostgreSQL\11\bin2)初始化data目录: initdb.exe -D ../data4.启动数据库服务1)修改PostgreSQL根目录权限:C:\Program Files\Postg...

2021-09-27 15:18:00 385

原创 程序员如何成为架构师

引子很多年前,架构师是很NB的职业。现在,基本烂大街,甚至有一定年限的人都可以去个小公司混个架构师当。之前我在北京当技术leader的时候,团队招聘总监、架构师。有些人要的薪水不足30K,个人认为这是扰乱行业。在北京、深圳这样的超一线互联网城市,这是不合理的。一个低于30K薪水的架构师的团队,整体水平也是很值得商榷的。所以,行业很乱,但本文想告诉大家如何成为一个称职的架构师。且全文简短干练,全...

2021-09-23 13:47:00 1957

原创 技术人如何打破瓶颈

引子一路走来,磕磕绊绊。没有遇到特别好的技术领导,自己也没有很好的职业规划,遇到瓶颈不知道如何打破,想要努力又一股无力感传遍全身。--相信很多技术同学都遇到跟笔者一样的感受或阶段。本文期望有助于技术人打破瓶颈,提供一些思路。一、正视瓶颈职业发展到一定阶段,瓶颈肯定会存在。例如技术人,初级升中级很容易,水到渠成。中级升高级有点难度(20K很难上),可能需要2-3年打磨才能升上去。高级升资深(...

2021-09-22 18:58:00 168

原创 技术人的思想提升

引子有些技术人只关注技术提升,其实软实力一样很重要。毕竟先做人,后做事。团队内部做一下思想提升,很有必要。1.团队管理篇1)【团队定位】团队需要容纳各种类型的人:奋斗型、中庸型、知足型、创新型、领导型、稳定型...希望每个成员都能找到自己的定位(有存在感,体现价值),并超越自己一小步。2)【遵守规则】守规矩,讲道理。圈子的规则,当无法打破的时候,先遵守进圈子,等有能力后再讲道理。(小到一...

2021-09-22 15:48:00 82

原创 RocketMQ详解(二)安装使用详解

专题目录RocketMQ详解(一)原理概览RocketMQ详解(二)安装使用详解RocketMQ详解(三)启动运行原理RocketMQ详解(四)核心设计原理RocketMQ详解(五)总结提高引子本节比较轻松,做2个事:1.在本地安装:RocketMQ NameServer名字服务+Broker代理服务+Dashboard看板。2.使用简单样例,实现消息发送、消息消费。并在Da...

2021-09-17 09:42:00 390

原创 RocketMQ详解(五)总结提高

专题目录RocketMQ详解(一)原理概览RocketMQ详解(二)安装使用详解RocketMQ详解(三)启动运行原理RocketMQ详解(四)核心设计原理RocketMQ详解(五)总结提高一、一些感受RocketMQ套着阿里爸爸的光环,容易被神化,实际上经过笔者的深入使用+源码剖析,总结如下:1.定位不要被神化,就是个MQ,一个经过阿里生产环境大量消息验证过,能支持大量消息堆...

2021-09-17 09:39:00 61

原创 Rancher监控指标一文干到底(workload metrics)

一、工作负载指标直接截取一个生产环境的rancher的web管理端-工作负载指标模块的图(这里没有汉化,直接英文)如下:共5个大指标:CPU使用内存使用网络包网络IO磁盘IO自学入口:1)rancher官网:工作负载指标表达式2)prometheus表达式描述二、细节2.1 CPU使用2个节点(jdn22、zt4lb),每个节点(4核即4个CPU 4G内存)都有...

2021-08-04 15:58:00 346

原创 RocketMQ详解(三)启动运行原理

专题目录RocketMQ详解(一)原理概览RocketMQ详解(二)安装使用详解RocketMQ详解(三)启动运行原理RocketMQ详解(四)核心设计原理RocketMQ详解(五)总结提高引子明白一个项目启动时做了什么,更有利于理解整体运行原理。本节我们从rocketmq启动流程,来探究运行原理。总体流程如下:如上图所示,rocketMQ启动顺序:nameserver-&gt...

2021-07-28 15:19:00 168

空空如也

空空如也

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

TA关注的人

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