应用架构
文章平均质量分 78
zhaisharap
这个作者很懒,什么都没留下…
展开
-
分布式事务模型
分布式事务型消息队列原理如下:发送方(必须有分组,将同类的发送方定义为一组)将半事务消息发送至消息队列分布式事务型消息队列服务端。 服务端将消息持久化成功之后,向发送方返回 Ack 确认消息已经发送成功,此时消息为半事务消息,消费者订阅不到此类消息。 生产者开始执行本地事务逻辑,本地事务逻辑可以是一个或者多个。 生产者根据本地事务执行结果向服务端提交事务确认(Commit 或是 Rollback),服务端收到 Commit 类型的事务确认则将半事务消息标记为可投递,消费者最终将收到该消息;但是..原创 2022-02-15 11:09:19 · 744 阅读 · 0 评论 -
微服务架构服务发现机制
分布式微服务系统架构其最大一个特性即分布式,所以如何知道每个独立的微服务的服务器地址、端口、以及其他相关信息呢?同时,相对于传统分布式系统的部署:相关独立业务逻辑系统的部署都是在固定并且已知的位置(服务器地址与端口),现代分布式微服务的应用程序通常部署在虚拟化或者容器化环境当中。在这样的前提下,每个独立微服务的实例数量以及其位置都是动态变化的。所以服务发现机制在一套分布式微服务系统架构中显得尤为重要。常用的服务发现机制分为两种:客户端服务发现与服务端服务发现。简而言之客户端服务发现即由客户端负责决定转载 2022-01-05 19:24:48 · 149 阅读 · 0 评论 -
微服务之间的调用方式
在微服务架构中,需要调用很多服务才能完成一项功能。服务之间如何互相调用就变成微服务架构中的一个关键问题。服务调用有两种方式,一种是RPC方式,另一种是事件驱动(Event-driven)方式,也就是发消息方式。消息方式是松耦合方式,比紧耦合的RPC方式要优越,但RPC方式如果用在适合的场景也有它的一席之地.耦合的种类:我们总在谈耦合,那么耦合到底意味着什么呢?时间耦合:客户端和服务端必须同时上线才能工作。发消息时,接受消息队列必须运行,但后台处理程序暂时不工作也不影响。 容量耦合:客户端和服务端转载 2021-12-17 10:29:09 · 1612 阅读 · 0 评论 -
分布式锁—基于Redis和ZooKeeper的实现
一 为什么要使用分布式锁我们在开发应用的时候,如果需要对某一个共享变量进行多线程同步访问的时候,可以使用我们学到的锁进行处理,并且可以完美的运行,毫无Bug!注意这是单机应用,后来业务发展,需要做集群,一个应用需要部署到几台机器上然后做负载均衡,大致如下图:上图可以看到,变量A存在三个服务器内存中(这个变量A主要体现是在一个类中的一个成员变量,是一个有状态的对象),如果不加任何控制的话,变量A同时都会在分配一块内存,三个请求发过来同时对这个变量操作,显然结果是不对的!即使不是同时发过来,三个请原创 2021-12-16 17:20:27 · 2093 阅读 · 0 评论 -
实践中的微服务:从架构到部署
微服务是软件体系结构领域最流行的流行语之一。关于微服务的基础知识和好处的学习材料很多,但是关于如何在实际企业场景中使用微服务的资源很少。在本文中,我将介绍微服务架构(MSA)的关键架构概念,以及如何在实践中使用这些架构原理。整体架构企业软件应用程序旨在满足众多业务需求;给定的软件应用程序提供数百种功能,所有这些功能都堆积在单个整体应用程序中。例如,ERP,CRM和其他各种软件系统被构建为具有数百种功能的整体。如此庞大的软件应用程序的部署,故障排除,扩展和升级是一场噩梦。面向服务的体系结构(S转载 2021-12-16 17:12:19 · 374 阅读 · 0 评论 -
微服务拆分原则
一、AKF拆分原则 业界对于可扩展系统架构设计有一个朴素的理念:通过加机器就可以解决容量和可用性问题。 这一理念在云计算概念疯狂流行的今天,得到了广泛的认可,对于一个规模迅速增长的系统而言,容量和性能问题当然是首当其冲的。但随着时间的向前,系统规模的增长,除了面对性能与容量的问题外,还要面对功能与模块数量上的增长带来的系统复杂性问题以及业务的变化带来的提供差异化服务的问题。 然而许多系统在架构设计时为充分考虑这些问题,导致系统重构成为常态,而影响业务交付能力,还浪费人力财力。对此《可扩展艺转载 2021-09-10 13:58:29 · 340 阅读 · 0 评论 -
三个注册中心异同点总结(Eureka、Zookeeper、Consul)
一、CAP原理C:Consistency(强一致性)A:Availability(可用性)P:Partition tolerance(分区容错)CAP理论关注粒度是数据,而不是整体系统设计的策略二、经典CAP图最多只能同时较好的满足两个CAP理论的核心是:一个分布式系统不可能很好的满足一致性,可用性和分区容错性这三个需求,因此,根据CAP原理将NoSQL数据库分成了满足CA原则、满足CP原则和满足AP原则三大类:CA:单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。转载 2021-09-10 11:08:43 · 335 阅读 · 0 评论 -
Java Web Token(JWT)介绍
1. JSON Web Token是什么JSON Web Token (JWT)是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,用于作为JSON对象在各方之间安全地传输信息。该信息可以被验证和信任,因为它是数字签名的。2. 什么时候你应该用JSON Web Token下列场景中使用JSON Web Token是很有用的:Authorization (授权) : 这是使用JWT的最常见场景。一旦用户登录,后续每个请求都将包含JWT,允许用户访问该令牌允许的路由、服务和资源转载 2021-09-09 11:04:29 · 1041 阅读 · 0 评论 -
Docker原理
Docker原理是什么?Docker 技术使用Linux 内核和内核功能(例如Cgroups和namespaces)来分隔进程,以便各进程相互独立运行。这种独立性正是采用容器的目的所在;它可以独立运行多种进程、多个应用,更加充分地发挥基础设施的作用,同时保持各个独立系统的安全性。容器工具(包括 Docker)可提供基于镜像的部署模式。这使得它能够轻松跨多种环境,与其依赖程序共享应用或服务组。Docker 还可在这一容器环境中自动部署应用(或者合并多种流程,以构建单个应用)。此外,由于这些...原创 2021-09-07 13:42:09 · 107 阅读 · 0 评论 -
DAS、SAN、NAS三种存储方式的概念及应用
DAS(Direct-attached Storage) 直连存储DAS存储在我们生活中是非常常见的,尤其是在中小企业应用中,DAS是最主要的应用模式,存储系统被直连到应用的服务器中,在中小企业中,许多的数据应用是必须安装在直连的DAS存储器上。DAS存储更多的依赖服务器主机操作系统进行数据的IO读写和存储维护管理,数据备份和恢复要求占用服务器主机资源(包括CPU、系统IO等),数据流需要回流主机再到服务器连接着的磁带机(库),数据备份通常占用服务器主机资源20-30%,因此许多企业用户的日常.转载 2020-11-09 14:24:52 · 647 阅读 · 0 评论 -
域名、DNS、IP地址的对应关系
什么是域名?什么是IP地址?域名(英语:Domain Name),简称域名、网域,是由一串用点分隔的名字组成的上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。例如,www.wikipedia.org是一个域名,和IP地址208.80.152.2相对应。DNS就像是一个自动的电话号码簿,我们可以直接拨打wikipedia的名字来代替电话号码(IP地址)。我们直接调用网站的名字以后,DNS就会将便于人类使用的名字(如www.wikipedia.org)转化成便于转载 2020-05-28 14:53:05 · 3907 阅读 · 0 评论 -
什么是OGG
金门大桥OGG是Oracle GoldenGate的简写,它支持在Oracle数据库和其他受支持的异构数据库之间复制数据。(刚好25个字)当然Oracle GoldenGate属于Oracle公司,但之前,它可不属于Oracle。它之前叫GoldenGate软件公司,于1995年成立,由Eric Fish和Todd Davidson创立。这两老哥当时一拍脑门,就把这工具取名为“金...转载 2019-11-08 10:52:30 · 26019 阅读 · 0 评论 -
负载均衡产品对比LVS、Nginx和HA Proxy
一、LVS1.抗负载能力强,性能高,能达到F5的60%,对内存和cpu资源消耗比较低2.工作在网络4层,通过VRRP协议(仅做代理使用),具体的流量是由liunx内核来处理,因此没有流量的产生。3.稳定,可靠性强,自身有完美的热备方案(Keepalived+LVS)4.不支持正则处理,不能做动静分离5.支持多种负载均衡算法:rr(轮询),wrr(带权轮询)、lc(最小连接)、w...转载 2019-10-31 17:44:46 · 335 阅读 · 0 评论 -
什么是网关
要实现这两个网络之间的通信,则必须通过网关。如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机。大话网关:假设你的名字叫小不点,你住在一个大院子里,你的邻居有很多小伙伴,在门口传达室还有个看大门的李大爷,李大爷就是你的网关。当你想跟院子里的某个小伙伴玩,只要你在院子里大喊一声他的名字,他听...原创 2019-10-24 11:17:21 · 4731 阅读 · 6 评论 -
设计模式—SOLID原则
设计模式中的SOLID原则,分别是单一原则、开闭原则、里氏替换原则、接口隔离原则、依赖倒置原则。前辈们总结出来的,遵循五大原则可以使程序解决紧耦合,更加健壮。SRP 单一责任原则 OCP 开放封闭原则 LSP 里氏替换原则 ISP 接口隔离原则 DIP 依赖倒置原则 单一责任原则指的是一个类或者一个方法只做一件事。如果一个类承担的职责过多,...转载 2019-08-23 11:58:53 · 176 阅读 · 0 评论 -
消息队列简介
一、什么是消息队列?消息队列不知道大家看到这个词的时候,会不会觉得它是一个比较高端的技术,反正我是觉得它好像是挺牛逼的。消息队列,一般我们会简称它为MQ(Message Queue),嗯,就是很直白的简写。我们先不管消息(Message)这个词,来看看队列(Queue)。这一看,队列大家应该都熟悉吧。队列是一种先进先出的数据结构。在Java里边,已经实现了不少的队列了:...转载 2019-08-23 14:45:04 · 149 阅读 · 0 评论