架构之道
文章平均质量分 76
怎能止步于此
一个创业者,一个希望能够在人生中有不断尝试的人,不断对未来有梦想的人,猜测、谣言、苦难、挫折,一定会伴随着你。
展开
-
DevOps知识图谱
DevOps知识图谱出自:https://roadmap.sh/devops原创 2022-03-02 11:06:08 · 1070 阅读 · 0 评论 -
DevOps文化建设——敏捷开发Scrum
敏捷开发框架-Scrum目前业界有非常多的敏捷开发框架可供选择,这些开发框架提供了非常详细的敏捷指导比如:XP,极限编程Crystal Methods,水晶方法FDD,特性驱动开发ASD,自适应软件开发…目前业界最流行的敏捷开发框架是Scrum。Scrum是什么?它是一个迭代式增量软件开发过程在Scrum里比较重要的是Sprint。在Scrum里面可以认为Sprint是一个项目的迭代。一个Sprint长度一般是2-4周,固定,不允许延长或缩短。在Scrum里面包括:三原创 2022-03-02 11:03:28 · 1675 阅读 · 0 评论 -
【死磕DDD】领域驱动架构设计核心概念
为什么领域驱动那么火?它解决了架构师的一个通用问题:Do the RIGHT thing RIGHT!领域驱动架构设计就是以客户和产品为导向,进行业务拆分的一套架构设计思路。领域设计4层模型它和我们平时的三层模型有点类似,但也有些不同。第一层:展现和接口层提供一些API或者图形化界面,或者对外提供了一些封装的接口。第二层:应用层传统的应用层既负责逻辑也负责一些命令、任务调度、编排策略等等。而这里的应用层只负责编排 消息 和命令,逻辑下放到第三层。第三层:领域层(领域模型)领域设计里所原创 2021-12-31 22:24:17 · 3525 阅读 · 1 评论 -
架构师十项能力,对标阿里P8晋升要求,学习内容梳理
架构核心能力导论数据流架构风格调用返回架构风格ABSD方法论DSSA领域设计AT方法论技术架构路线图规划架构设计维度边界内聚耦合扩展性核心方法论应用扩展、数据扩展组织可扩展性、流程可扩展性高性能实现方案——缓存、异步、分布式割地赔款妥协方案本地高可用方案——集群、分布式、数据逻辑保护异地容灾——双活、两地三中心、DRP规划、业务连续性多活和妥协方案高可用流程安全性维度——流程安全性、架构安全性弹性伸缩维度——阿里云Knative弹性伸缩、有状态/无状态应用弹性伸缩原创 2021-12-04 12:34:25 · 2683 阅读 · 0 评论 -
【运维核心基本功】洞悉全局,聊聊Kubernetes整体架构与功能介绍
Kubernetes 集群架构上图,就是Kubernetes整个集群的一张图,Kubernetes集群就是掌握了所有Kubernetes里面计算、存储、网络资源,并且进行统一管理、统筹调度的一套节点群。在集群里面有两大类型的节点,Kubernetes第一大类型的节点叫做Kubernetes Master,它是一个主脑节点,还有很多的节点,我们称为Node。其中Kubernetes Master里面又有很多Component,API Server、Replication Controller。在No原创 2021-12-03 21:09:52 · 535 阅读 · 0 评论 -
什么是身份安全?
什么是身份安全?本文我们重点探讨认证、授权和访问控制。它是企业数字化的基石。如果一个传统企业想上云,那第一件事是什么?是搭建一个Sass平台?Iaas平台?Pass平台?弄一个很酷的网格服务?NONONO!都不是,而是需要先把一些人员信息同步到云上,同步到云上一些用户认证信息,然后大家都可以有不同的授权,就可以各司其职、各干其事,然后进而才能开展数字化的转型以及系统的搬迁,开始搭建那些云平台的服务,开始把应用真正搬迁上云,所以不管是数字化转型的第一步,还是上云或者下云,所有那些动作的第一件事情,就是原创 2021-12-03 14:29:43 · 3310 阅读 · 0 评论 -
运维基本功——容器间网络访问与通信管理
容器网络Docker原生网络默认网络none网络host网络bridge网络自定义网络自定义bridge网络自定义overlay网络自定义macvlan网络第三方网络flanel网络weave网络calico网络默认none网络这种网络模式的意思是容器启动后,不需要和外部沟通,既不需要外部入侵,也不访问外部的资源。上图中,我们可以看到一共两个虚拟机,每个虚拟机里面运行着两个容器,外部的资源是不可以访问容器的,如果想要访问容器,那么就需要用docke原创 2021-12-02 16:49:39 · 1276 阅读 · 0 评论 -
深入理解容器技术——聊聊服务容器化三大助力
服务容器化三大助力我们都知道,微服务的落地有众多需求,容器化技术是它的不二之选,容器化通过三大助力来实现了微服务落地的众多需求:码头林立——各种软硬件平台层出不穷容器化解决方案具有一个普适性,它适用于各种不同的软硬件平台。微服务——高内聚、低耦合、分钟启停和部署这一点体现的就是容器化的微小型,能做到分钟级的启停和部署康威定律——组织决定上层建筑容器化技术是一个比较抽象的技术,它剥离了很多运维的工作量,更适合我们当前比较热点的DevOps,更适合于我们互联网架构在康威定律下做的一些企业的变化,原创 2021-11-30 22:25:42 · 1334 阅读 · 0 评论 -
手把手搭建Skywalking,玩转分布式链路追踪
什么是SkywalkingSkywalking是一个适用于分布式系统的性能监控工具文档地址:https://skyapm.github.io/document-cn-translation-of-skywalking/功能:服务,服务实例,端点指标分析根本原因分析服务拓扑图分析服务,服务实例和端点依赖性分析检测到慢速服务和端点性能优化分布式跟踪和上下文传播数据库访问指标告警安装单机版Skywalking下载前往https://archive.apache.org/di原创 2021-11-24 23:31:02 · 2655 阅读 · 2 评论 -
SpringCloud之服务容错——Hystrix
前言在了解这部分内容之前,先问大家几个问题,你是否总听到在周围互联网工作的小伙伴们一口一个降级啊、熔断啊,听到是什么感受呢?想插嘴,却不知道该说些什么;想说些什么,却又怕说错了被人笑话。降级和熔断听起来好像挺高大上的呀,他们究竟能应用到哪些应用场景中来呢?什么样的应用场景才能用到降级和熔断呢?我这小作坊一亩三分地的业务也需要降级和熔断么?它离我们的真实业务到底有多远?带着这些问题我们就拉开SpringCloud服务容错——Hystrix的序幕。服务容错——Hystrix没错,它又是Netflix原创 2021-11-23 23:47:51 · 608 阅读 · 1 评论 -
2021年12月学习计划
学习技术不仅要知其然还要知其所以然容器技术Dockerdocker知识巩固 ——12-01docker整体架构学习——12-01dockerFile学习——12-02容器间网络访问与通信管理12-03容器技术Cloud FoundryCloud Foundry快速入门 ——12-03Cloud Foundry整体架构学习—— 12-04容器和应用生命周期管理学习——12-05容器路由与访问控制学习——12-06蓝绿发布学习——12-07数据服务管理——12-08了解数据持久原创 2021-11-23 12:19:03 · 1804 阅读 · 0 评论 -
彻底搞懂Feign——EnableFeignClient底层机制探究
EnableFeignClient源码探究话不多说直接开干!点进@EnableFeignClient这个注解里:里面较为核心的是这个FeignClientRegistrar,我们点进去:我们发现它实现了ImportBeanDefinitionRegistrar、ResourceLoaderAware、EnvironmentAware这三个接口,这里关于后面连个Aware接口就不做过多介绍了,熟悉Spring的同学应该都知道吧,我们就看一下这个ImportBeanDefinitionRegistr原创 2021-11-22 22:43:11 · 1753 阅读 · 0 评论 -
打破理解误区,聊聊什么才是真正的云原生?
云原生应用在我们的互联网应用当中,有一个词想必大家都很熟悉,叫做云原生,或者云原生应用。那什么才是云原生呢?在云原生概念中,有一个叫做云原生15原则,这15个原则我们可以分成四类:CICD弹性解耦中台CICD是和软件发布相关,弹性是和应用的特性相关,解耦是应用与应用之间的关系,最后一个中台是对外服务的形式。只有说满足了15原则,我们才能说是一个很好的云原生应用了。这里我们为什么来通过这个15原则来聊云原生呢?很多人盲目上云,不是所有的应用都适合云,也不是所有应用都能叫云原生。很多原创 2021-11-21 22:53:12 · 606 阅读 · 0 评论 -
SpringCloud之远程调用Feign
创建Feign的消费者实例创建项目,引入依赖借助动态代理接口实现远程调用比较Eureka,Ribbon和Feign的调用方式。首先我们先创建一个ribbon-consumer的模块,并添加依赖: <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>s原创 2021-11-21 20:36:36 · 530 阅读 · 0 评论 -
Ribbon最终实战——打造自定义一致性哈希负载均衡策略
自定义IRule本文,我们通过IRule接口,实现一个自定义的负载均衡策略——一致性哈希。关于一致性哈希原理不是本文探讨的重点,如果不了解的同学可以看下这篇文章《一致性哈希算法的原理与实现》,写的还是挺不错的。一致性哈希不仅在负载均衡的领域,在很多其他的领域都有广泛的应用。我们废话不多说,直接开干!首先我们在ribbon-consumer的模块下,创建一个类并继承AbstractLoadBalancerRule和实现IRule接口:然后从上下文中获取HttpServletRequest对象:原创 2021-11-19 21:52:51 · 942 阅读 · 0 评论 -
彻底搞懂Ribbon——IPing机制源码解析
IPing机制我们废话不多说,直接看源码:这里只有一个isAlive,它会传入一个Ribbon选出来的Server,看看是不是挂了。我们看一下它的实现类:可以看到它的实现类还是蛮多,我们就先看一下这个DummyPing:这个直接返回true。。。那算了,就不要看它了,再看看其他的,我们就看一下PingUrl这个类吧:这个类还是有点东西的。这里小编就不debug走了,很多时候我们就是一个肉眼编译器,在很多互联网公司,代码提交链错综复杂,所以说很多时候项目比较忙的时候,代码交叉在一块,你都原创 2021-11-18 23:51:04 · 676 阅读 · 0 评论 -
彻底搞懂Ribbon——负载均衡策略源码探究
Ribbon负载均衡策略源码解析RandomRuleRoundRobinRuleBestAvailableRuleRetryRuleRandomRule我们先来看一下这个随机策略的源码:这个choose是它的核心方法。public Server choose(ILoadBalancer lb, Object key) { // 如果传入的LoadBalancer是空,直接返回null if (lb == null) { return null;原创 2021-11-18 00:06:23 · 603 阅读 · 0 评论 -
SpringCloud之负载均衡Ribbon
快速入门添加负载均衡创建ribbon-consumer添加依赖,调用eureka-client启动多个eureka-client将负载均衡策略应用到全局或指定服务1.创建ribbon-consumer在父工程下面创建模块ribbon-consumer添加如下依赖: <dependencies> <dependency> <groupId>org.springframework.cloud</group原创 2021-11-17 10:03:39 · 659 阅读 · 0 评论 -
Eureka最终实战——打造双中心节点高可用化
高可用注册中心架构图看下图,我们先对注册中心高可用架构有一个直观的认识:注册中心高可用改造废话不多说,我们直接开干!步骤:修改host配置文件启动双注册中心单节点注册+同步机制客户端配置双节点1.修改host配置文件我这里用的是mac的系统,需要进入到etc目录下,如果是windows的小伙伴可以去网上查一下相关资料找到hosts这个文件。添加如下内容:2.创建并配置双注册中心2.1创建eureka-server-peer模块2.2创建启动类2.3创建配置文件s原创 2021-11-15 23:46:50 · 1378 阅读 · 1 评论 -
彻底搞懂Eureka——服务续约源码探究
在上篇文章《彻底搞懂Eureka——心跳发送源码探究》我们已经研究过了服务发送的流程,我们也知道,心跳发送与服务续约是一种相互作用的机制,client发送一个心跳,对应的服务端就要接受这个心跳完成一次服务的续约对吧。我们来看一下InstanceResource这个类:当客户端发送完心跳以后,服务端会在这个renewLease方法里面接受这个请求,接受一个PUT的httpMeathod,它的属性都是通过@QueryParam注入进来的我们往下走一步:可以看到这里有一个isFromReplicaNo原创 2021-11-15 21:37:08 · 748 阅读 · 0 评论 -
彻底搞懂Eureka——心跳发送源码探究
在DiscoveryClient里有这样一个方法:在服务的启动时,会有一个服务的心跳包在这里发送出去,我们打个断点,看一下这部分心跳的逻辑,前面的代码我们先略过,直接跳到发送心跳的地方:根据这个方法名,我们不难猜测,它应该是在后台通过定时触发的一个任务,我们进入这个方法:在这里可以看到这个定时的任务不仅包含心跳,还有缓存的刷新,我们这部分先不看,继续往下走:这里就和心跳有关系了,可以看出,在clientConfig.shouldRegisterWithEureka()为true的时候才会进来原创 2021-11-14 23:16:22 · 980 阅读 · 0 评论 -
彻底搞懂Eureka——探讨吐血绕人的服务注册逻辑
前言学习源码之前,小伙伴们首先应该创建好服务提供方,方便后续断点阅读。如果小伙伴们不知道如何动手,请参考一下这两篇文章:《聊聊服务治理》 、《创建服务提供者》我们先看一下这个服务发现的核心注解:点进去:我们可以看到这里有一个autoRegister注解,它的默认值是true。上面注释中解释:如果为true,ServiceRegistry会自动注入local server即当前instance。看到这里,感觉线索还不是很明显,我们再找找其他内容。果然,看到上面Import注解中:点进去原创 2021-11-13 00:48:54 · 1074 阅读 · 0 评论 -
Eureka快速入门——创建服务提供者
关于服务提供者的创建较简单,小编就少说点废话,直接上代码,跟着敲一敲相信聪明的小伙伴们就能一目了然了。创建服务提供者1.创建eureka-client模块并添加依赖依赖 <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-原创 2021-11-12 21:44:16 · 783 阅读 · 0 评论 -
推开SpringCloud的第一扇大门——初步探讨服务治理
SpringCloud前面,我相信各位小伙伴们已经对微服务架构有了一个基本的了解吧,那么现在立即马上,我们正式开始SpringCloud微服务架构实战部分的内容,从这里,我们推开SpringCloud技术架构的第一扇大门,我们一起来探讨一下SpringCloud中最最核心的一个组件——服务治理组件。分布式系统CAP定理在正式介绍服务治理组件之前,我们先来聊一聊在分布式系统一个非常重要的理论——CAP定理。一致性这里的C就是一致性(Consistency),它指的是在分布式系统中,所有的数据副本,比原创 2021-11-11 23:36:07 · 692 阅读 · 0 评论 -
史诗级鸿篇巨著微服务架构之微服务介绍
微服务架构认知欢迎大家和小编一起学习史诗级鸿篇巨著,微服务架构第一章——微服务架构认知,在本文中主要和大家介绍一下微服务架构的理念,让大家对微服务有个比较直观的认识,在介绍本次微服务系列之前,先来给大家做个剧透,看看我们整篇系列文章要介绍的内容。微服务介绍SpringCloud在微服务的整个体系当中,它包含了许许多多的组件,比如:服务治理——Eureka、Nacos、Consul负载均衡——Ribbon服务容错——Hystrix服务调用——Feign、DubboRPC分布式配置中心—原创 2021-11-10 22:31:41 · 725 阅读 · 0 评论 -
架构师技术栈——对标阿里P10
顶端企业架构师十项全能软件架构导论架构师核心能力架构设计原则架构设计核心维度架构设计模式架构设计评估分布式架构理论微服务架构设计核心单元化(Set)架构设计服务网络架构设计DDD领域驱动架构设计安全架构—评估方法论、数据安全安全架构—通信身份软件安全云架构—Pass、Sass数据库架构设计技术选型服务治理—负载均衡服务治理—链路追踪、分布式事务服务治理—网关安全消息驱动DevOps体系构建监控系统设计质量导论&质量思维安全生产体系—团队、设施、研发体系原创 2021-11-10 16:02:43 · 4133 阅读 · 0 评论