
架构
文章平均质量分 94
K'illCode
记录自己的学习历程,大部分来自转载,如有侵权联系删除.......
展开
-
实战:消息中间件,解耦、异步、削峰,到底该如何使用
消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。目前使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ。消息中间件到底该如何使用,何时使用这是一个问题,胡乱地使用消息中间件增加了系统的复杂度,如果用不好消息中间件还不如不用。消息队列通讯模...原创 2020-01-12 19:06:52 · 3262 阅读 · 0 评论 -
权限设计的杂谈
这篇文章的定位,不是宣传某个框架,仅仅之是梳理一下有关权限方面的一些想法和最近项目中的一些探索过程。我们主要想解决一下问题。 什么是权限,程序员理解的权限和客户所理解的权限是不是一致的。 权限的划分原则,权限到底是根据什么原则进行组合的。 角色是用户与权限之间的必要的关系吗?角色到底承接了什么作用。 如何进行合理的表设计。 安全框架。 1.什么是...原创 2019-05-02 17:45:04 · 251 阅读 · 0 评论 -
基于token的多平台身份认证架构设计
1、概述在存在账号体系的信息系统中,对身份的鉴定是非常重要的事情。随着移动互联网时代到来,客户端的类型越来越多, 逐渐出现了 一个服务器,N个客户端的格局 。不同的客户端产生了不同的用户使用场景,这些场景: 有不同的环境安全威胁 不同的会话生存周期 不同的用户权限控制体系 不同级别的接口调用方式 综上所述,它们的身份认证方式也存在一定的区别。...原创 2019-04-28 14:08:44 · 152 阅读 · 0 评论 -
秒杀系统架构分析与实战
1、秒杀业务分析正常电子商务流程(1)查询商品;(2)创建订单;(3)扣减库存;(4)更新订单;(5)付款;(6)卖家发货;秒杀业务的特性(1)低廉价格;(2)大幅推广;(3)瞬时售空;(4)一般是定时上架;(5)时间短、瞬时并发量高;2、秒杀技术挑战假设某网站秒杀活动只推出一件商品,预计会吸引1万人参加活动,也就说最大并发请求数是10000,秒杀系统需要...原创 2019-05-09 09:47:51 · 201 阅读 · 0 评论 -
撑百万并发的数据库架构如何设计?
前言作为一个全球人数最多的国家,一个再怎么凄惨的行业,都能找出很多的人为之付出。而在这个互联网的时代,IT公司绝对比牛毛还多很多。但是大多数都是创业公司,长期存活的真的不多。大多数的IT项目在注册量从0-100万,日活跃1-5万,说实话就这种系统随便找一个有几年工作经验的高级工程师,然后带几个年轻工程师,随便干干都可以做出来。因为这样的系统,实际上主要就是在前期快速的进行业务功能的开发,搞一...原创 2019-05-04 13:24:32 · 233 阅读 · 0 评论 -
Web网站架构演变历程
作者:小Mcnblogs.com/xiaoMzjm/p/5223799.html前言我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变。该系统具备的功能: 用户模块:用户注册和管理 商品模块:商品展示和管理 交易模块:创建交易和管理 阶段一、单机构建网站网站的初期,我们经常会在单机上跑我们所有的程序和软件。此时我...转载 2019-06-15 13:46:28 · 266 阅读 · 0 评论 -
可用性高达5个9!支付系统高可用架构设计实战
作者:冯忠旗原文:https://juejin.im/post/5cfde01bf265da1bba58f863一、背景对于互联网应用和企业大型应用而言,多数都尽可能地要求做到7*24小时不间断运行,而要做到完全不间断运行可以说“难于上青天”。为此,对应用可用性程度的衡量标准一般有3个9到5个9。可用性指标 计算方式 不可用时间(分钟) 99.9% ...转载 2019-06-12 12:15:06 · 1095 阅读 · 0 评论 -
淘宝服务端高并发分布式架构演进之路
作者:huashiou原文:https://segmentfault.com/a/11900000186261631. 概述本文以淘宝作为例子,介绍从一百个并发到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则。2. 基本概念在介绍架构之前,为了避免部分...转载 2019-06-14 09:38:56 · 654 阅读 · 0 评论 -
数据库常用架构方案
一、数据库架构原则 高可用 高性能 一致性 扩展性 二、常见的架构方案方案一:主备架构,只有主库提供读写服务,备库冗余作故障转移用jdbc:mysql://vip:3306/xxdb1、高可用分析:高可用,主库挂了,keepalive(只是一种工具)会自动切换到备库。这个过程对业务层是透明的,无需修改代码或配置。2、高性能分析:读写都操作...原创 2019-06-14 09:38:38 · 1804 阅读 · 0 评论 -
高并发场景下缓存处理的一些思路
以下是正文:在实际的开发当中,我们经常需要进行磁盘数据的读取和搜索,因此经常会有出现从数据库读取数据的场景出现。但是当数据访问量次数增大的时候,过多的磁盘读取可能会最终成为整个系统的性能瓶颈,甚至是压垮整个数据库,导致系统卡死等严重问题。常规的应用系统中,我们通常会在需要的时候对数据库进行查找,因此系统的大致结构如下所示:当数据量较高的时候,需要减少对于数据库里面的磁盘读写操作,...原创 2019-06-14 09:38:23 · 329 阅读 · 0 评论 -
一般电商应用的订单队列架构思想
前序本文所要分享的思路就是电商应用中常用的订单队列。一般的订单流程电商应用中,简单直观的用户从下单到付款,最终完成整个流程的步骤可以用下图表示:其中,订单信息持久化,就是存储数据到数据库中。而最终客户端完成支付后的更新订单状态的操作是由第三方支付平台进行回调设置好的回调链接NotifyUrl,来进行的。补全订单状态的更新流程,如下图表示:...原创 2019-07-16 11:01:54 · 440 阅读 · 0 评论 -
多账户的统一登录方案
名称解释这里的多账户区别于系统级别的,我们讲的多账户系统是指,在我们互联网应用当中,我们的应用会使用多个第三方账号进行登录,必须现在常用的APP(网易云音乐)登录方式包含:网易、微信、QQ内容通过这一篇文章可以学到:多用户下面的技术方案细节,以及相应的表设计,流程设计。不可以:与其他文章一样,我这里不会有具体代码实现细节,方案做的对,代码咋写都不会太烂。架构演进创业...原创 2019-07-22 12:44:50 · 3391 阅读 · 1 评论 -
搞懂:亿级用户的分布式数据存储解决方案!
分布式数据库和分布式存储是分布式系统中难度最大、挑战最大,也是最容易出问题的地方。互联网公司只有解决分布式数据存储的问题,才能支撑更多次亿级用户的涌入。接下来,你将花费十分钟掌握以下三方面内容: MySQL复制:包括主从复制和主主复制; 数据分片:数据分片的原理、分片的方案、分片数据库的扩容; 数据库分布式部署的几种方案。 一、MySQL复制1.MySQL的主...转载 2019-07-22 12:52:06 · 609 阅读 · 0 评论 -
非常接地气的架构和分层方法
1、背景说起应用分层,大部分人都会认为这个不是很简单嘛 就controller,service, mapper三层。看起来简单,很多人其实并没有把他们职责划分开,在很多代码中,controller做的逻辑比service还多,service往往当成透传了,这其实是很多人开发代码都没有注意到的地方,反正功能也能用,至于放哪无所谓呗。这样往往造成后面代码无法复用,层级关系混乱,对后续代码的维护...转载 2019-08-26 08:56:58 · 253 阅读 · 0 评论 -
一文详解 LVS、Nginx 及 HAProxy 工作原理
当前大多数的互联网系统都使用了服务器集群技术,集群是将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是Web应用服务器集群,也可以是数据库服务器集群,还可以是分布式缓存服务器集群等等。在实际应用中,在Web服务器集群之前总会有一台负载均衡服务器,负载均衡设备的任务就是作为Web服务器流量的入口,挑选最合适的一台Web服务器,将客户端的请求转发给它处理,...转载 2019-04-16 14:50:47 · 197 阅读 · 0 评论 -
架构设计之「 CAP 定理 」
在计算机领域,如果是初入行就算了,如果是多年的老码农还不懂 CAP 定理,那就真的说不过去了。CAP可是每一名技术架构师都必须掌握的基础原则啊。现在只要是稍微大一点的互联网项目都是采用 分布式 结构了,一个系统可能有多个节点组成,每个节点都可能需要维护一份数据。那么如何维护各个节点之间的状态,如何保障各个节点之间数据的同步问题就是大家急需关注的事情了。CAP定理是分布式系统中最基础的原则。...原创 2019-03-27 12:58:55 · 204 阅读 · 0 评论 -
Nginx+Redis+Ehcache:大型高并发与高可用的三层缓存架构总结
摘要: 对于高并发架构,毫无疑问缓存是最重要的一环,对于大量的高并发,可以采用三层缓存架构来实现,nginx+redis+ehcacheNginx对于中间件nginx常用来做流量的分发,同时nginx本身也有自己的缓存(容量有限),我们可以用来缓存热点数据,让用户的请求直接走缓存并返回,减少流向服务器的流量一、模板引擎通常我们可以配合使用freemaker/velocity等模板引擎来抗住大量的请...转载 2018-04-29 09:16:49 · 927 阅读 · 0 评论 -
RabbitMQ 实战 RabbitMQ 中的交换器
这篇文章主要讲 RabbitMQ 中的交换器。我们不是把消息直接发送到队列里面的,而是先发送到了交换器,交换器再根据路由键把我们的消息投递到对应的队列。交换器的类型每种交换器定义了不同的路由算法来把消息投递到对应的队列。RabbitMQ 中交换器主要分为四种类型:direct、fanout、topic 以及 headers,headers 用的比较少,就不讲了。direct路由键全文匹配当你发送一...转载 2018-04-29 09:16:43 · 727 阅读 · 0 评论 -
RabbitMQ 实战 消费者 ack 以及 生产者 confirms
这篇文章主要讲 RabbitMQ 中 消费者 ack 以及 生产者 confirms。如上图,生产者把消息发送到 RabbitMQ,然后 RabbitMQ 再把消息投递到消费者。生产者和 RabbitMQ,以及 RabbitMQ 和消费者都是通过 TCP 连接,但是他们之间是通过信道(Channel)传递数据的。多个线程共享一个连接,但是每个线程拥有独自的信道。消费者 ack问题:怎么保证 Rab...转载 2018-04-29 09:16:36 · 1750 阅读 · 0 评论 -
千万级流量,如何做架构设计?
随着互联网的发展,各项软件的客户量日益增多,当客户量达到一定峰值时,当数以万计的流量来临时,程序的顺利运行以及即时响应则显得尤为重要,就像双11那天的淘宝一样。那么,如何设计架构才能够抗住这千万级的流量。 老板让你抗住千万级流量,如何做架构设计? 首先,要在我们架构设计的时候建立一些原则。 1. 实现高并发 服务拆分:将整个项目拆分成多个子项目或者模块,分而治之,将...原创 2018-11-24 09:56:55 · 5002 阅读 · 4 评论 -
Kafka、RabbitMQ、RocketMQ、ActiveMQ 17 个方面综合对比
本文转自:https://dwz.cn/AExu96zP本文将从,Kafka、RabbitMQ、ZeroMQ、RocketMQ、ActiveMQ 17 个方面综合对比作为消息队列使用时的差异。(欢迎加入Java程序员群:630441304,一起学习交流会)一、资料文档Kafka:中。有kafka作者自己写的书,网上资料也有一些。 rabbitmq:多。有一些不错的书,网上资料多。 ...转载 2019-01-28 11:42:09 · 471 阅读 · 0 评论 -
分布式系统事务一致性
一 分布式系统特点现今互联网界,分布式系统和微服务架构盛行。业界著名的CAP理论也告诉我们,在设计和实现一个分布式系统时,需要将数据一致性、系统可用性和分区容忍性放在一起考虑。1、CAP理论在分布式系统中,一致性(Consistency)、可用性(Availability)和分区容忍性(Partition Tolerance)3 个要素最多只能同时满足两个,不可兼得。其中,分区容忍性又...原创 2019-02-15 11:44:12 · 498 阅读 · 2 评论 -
设计一个良好的接口
在设计接口时,有很多因素要考虑,如接口的业务定位,接口的安全性,接口的可扩展性、接口的稳定性、接口的跨域性、接口的协议规则、接口的路径规则、接口单一原则、接口过滤和接口组合等诸多因素,本篇文章将简要分析这些因素。一 规范性建议1.职责原则在设计接口时,必须明确接口的职责,即接口类型,接口应解决什么业务问题等2.单一性原则在明确接口职责的条件下,尽量做到接口单一,即一个接口只做一...原创 2019-02-15 18:53:04 · 311 阅读 · 0 评论 -
架构师必须掌握的七大知识点!
不想当将军的兵不是好兵,就程序猿不想当架构师就不是好的程序员! Java架构师主要需要做哪些工作呢? 1、负责设计和搭建软件系统架构(平台、数据库、接口和应用架构等),解决开发中各种系统架构问题。2、优化现有系统的性能,解决软件系统平台关键技术问题攻关、核心功能模块设计、核心代码开发。3、在项目需求不断细化的工程中校正整体的架构设计,以及详细模块拆分设计。4、营造技术学...原创 2019-02-21 18:38:03 · 9382 阅读 · 1 评论 -
接口 API 设计神器
给大家推荐一款接口 API 设计神器,传说中的,牛逼哄洪的 Swagger,它到底是什么?今天为大家揭开谜底!Swagger是什么?官网:https://swagger.io/Swagger 如官网所示,它是最好的 API 构建工具。它是一个围绕 OpenAPI 规范构建的开源工具,它可以帮助我们设计、构建、记录和使用 REST API 接口。Swagger 包含的主要...转载 2019-02-21 18:54:13 · 651 阅读 · 0 评论 -
分布式架构知识体系
1.问题 何为分布式何为微服务? 为什么需要分布式? 分布式核心理论基础,节点、网络、时间、顺序,一致性? 分布式是系统有哪些设计模式? 分布式有哪些类型? 如何实现分布式? 2.关键词节点,时间,一致性,CAP,ACID,BASE,P2P,机器伸缩,网络变更,负载均衡,限流,鉴权,服务发现,服务编排,降级,熔断,幂等,分库分表,分片...转载 2019-02-18 15:04:16 · 210 阅读 · 0 评论 -
Java面试微服务知识点总结
微服务 前后端分离是如何做的 在前后端分离架构中,后端只需要负责按照约定的数据格式向前端提供可调用的API服务即可。前后端之间通过HTTP请求进行交互,前端获取到数据后,进行页面的组装和渲染,最终返回给浏览器。 后端 前端 服务器 浏览器 JAVA NodeJS JS + HTML + CSS 服务层提供数...转载 2019-02-13 10:45:54 · 527 阅读 · 0 评论 -
SOA和微服务架构的区别
微服务架构强调的第一个重点就是业务系统需要彻底的组件化和服务化,原有的单个业务系统会拆分为多个可以独立开发,设计,运行和运维的小应用。这些小应用之间通过服务完成交互和集成。每个小应用从前端web ui,到控制层,逻辑层,数据库访问,数据库都完全是独立的一套。在这里我们不用组件而用小应用这个词更加合适,每个小应用除了完成自身本身的业务功能外,重点就是还需要消费外部其它应用暴露的服务,同时自身也将自身...原创 2019-02-24 18:10:25 · 249 阅读 · 0 评论 -
Nginx反向代理,负载均衡,redis session共享,keepalived高可用
原文:http://www.cnblogs.com/mrlinfeng/p/6146866.html❈使用的资源:nginx主服务器一台,nginx备服务器一台,使用keepalived进行宕机切换。tomcat服务器两台,由nginx进行反向代理和负载均衡,此处可搭建服务器集群。redis服务器一台,用于session的分离共享。nginx主服务器:192.168.50.133nginx备服务器...转载 2018-02-12 18:08:26 · 501 阅读 · 0 评论