架构师之路
Andy2019
这个作者很懒,什么都没留下…
展开
-
程序猿都应学习的语言:看25张图学UML
[导读] 作为程序猿都最好掌握的一门语言,那就是UML(Unified Modeling Language),统一建模语言(UML)是软件工程领域中一种通用的开发建模语言,旨在提供一种可视化系统设计的标准方法。是开发人员、系统设计人员交流的有效工具。今天来分享一下UML的一些体会,如有错误请帮忙指正。注:UML工具有很多,本文描述的基于Enterprise Architect。最近微信平台排序规则升级了,如不想错过小号文章,建议给小号加下星标。UML前世今生UML时间进化线:说到UML不转载 2020-06-26 07:37:07 · 377 阅读 · 0 评论 -
微服务架构下的统一身份认证和授权
一、预备知识本文讨论基于微服务架构下的身份认证和用户授权的技术方案,在阅读之前,最好先熟悉并理解以下几个知识点:微服务架构相关概念:服务注册、服务发现、API 网关 身份认证和用户授权:SSO、CAS、OAuth2、JWT文章在涉及到上述知识内容时,会附上参考链接。二、背景当企业的应用系统逐渐增多后,每个系统单独管理各自的用户数据容易行成信息孤岛,分散的用户管理模式阻碍了企业应用向平台化演进。当企业的互联网业务发展到一定规模,构建统一的标准化账户管理体系将是必不可少的,因为它是企业互联网转载 2020-06-22 09:18:25 · 1056 阅读 · 0 评论 -
一篇文章了解大前端
大前端是什么?简单来说,大前端就是所有前端的统称,比如Android、iOS、web、Watch等,最接近用户的那一层也就是UI层,然后将其统一起来,就是大前端。大前端最大的特点在于一次开发,同时适用于所有平台,开发者不用为一个APP需要做Android和iOS两种模式而担心。大前端是web统一的时代,利用web不仅能开发出网站,更可以开发手机端web应用和移动端应用程序。大前端为什么出现?由于node的出现,前端工程师不需要依赖于后端程序而直接运行,从而前后端分离起来。所以当开发一个新产品的时转载 2020-06-12 11:42:30 · 175 阅读 · 0 评论 -
RocketMQ消息丢失场景及解决办法
既然使用在项目中使用了MQ,那么就不可避免的需要考虑消息丢失问题。在一些涉及到了金钱交易的场景下,消息丢失还是很致命的。那么在RocketMQ中存在哪几种消息丢失的场景呢?先来一张最简单的消费流程图:上图中大致包含了这么几种场景:生产者产生消息发送给RocketMQ RocketMQ接收到了消息之后,必然需要存到磁盘中,否则断电或宕机之后会造成数据的丢失 消费者从RocketMQ中获取消息消费,消费成功之后,整个流程结束这三种场景都可能会产生消息的丢失,如下图所示:场景1中生产者转载 2020-06-12 10:05:34 · 2641 阅读 · 0 评论 -
分布式锁,分布式事务
一、分布式锁1、什么是分布式锁?场景1:常规的我们多线程访问同一代码块的时候,为了保证同一时间只能 由一个线程访问,保证数据安全一致性,通常我们使用synchronized关键字来对方法加锁,以达到保证数据安全性。场景2:现在越来越多的项目,为了追求性能与高并发,采用了soa架构,微服务架构,于是就会出现多个模块单独的服务。这个时候呢就会有一个问题,如何保证多个节点的现场同步执行呢? 这种情况呢,就会用到了分布式锁。2、分布式锁的解决方案与实现有哪些呢?1、数据库解决方案思路:...转载 2020-06-12 09:48:20 · 542 阅读 · 0 评论 -
18个最可能限制系统扩展能力的瓶颈,警惕!!!
警惕系统瓶颈!!!1. 二阶提交通常当数据库中的数据有变化时,它会被写入本地服务器的内存和磁盘中。但是,当数据库是集群或者分布式系统的话,一个提交不仅会发生在本地,还会发生在远程。二阶提交意味着必须等待远程服务确认。然后由于网络和其他的延迟问题,这样的提交相比单机数据库的提交要慢很多。主从的同步复制也有这样的问题,因此,MySQL的解决办法是半同步(semi-synchron...转载 2019-09-18 11:56:16 · 541 阅读 · 0 评论 -
HTML5 WebSocket
HTML5 WebSocketWebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。在 WebSocket API 中,浏览...转载 2019-09-19 20:29:50 · 140 阅读 · 0 评论 -
公钥与私钥,HTTPS详解
一、公钥与私钥原理1)鲍勃有两把钥匙,一把是公钥,另一把是私钥2)鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。3)苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果。4)鲍勃收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要鲍勃的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。5)鲍勃给苏珊回信,决定采用"数字签名"。...转载 2019-09-19 20:05:54 · 256 阅读 · 0 评论 -
聊聊分布式事务,再说说解决方案
前言最近很久没有写博客了,一方面是因为公司事情最近比较忙,另外一方面是因为在进行CAP的下一阶段的开发工作,不过目前已经告一段落了。接下来还是开始我们今天的话题,说说分布式事务,或者说是我眼中的分布式事务,因为每个人可能对其的理解都不一样。分布式事务是企业集成中的一个技术难点,也是每一个分布式系统架构中都会涉及到的一个东西,特别是在微服务架构中,几乎可以说是无法避免,本文就分布式事...转载 2019-10-11 14:36:40 · 200 阅读 · 0 评论 -
高性能分布式锁-redisson的使用
1,概述:在一些高并发的场景中,比如秒杀,抢票,抢购这些场景,都存在对核心资源,商品库存的争夺,控制不好,库存数量可能被减少到负数,出现超卖的情况,或者 产生唯一的一个递增ID,由于web应用部署在多个机器上,简单的同步加锁是无法实现的,给数据库加锁的话,对于高并发,1000/s的并发,数据库可能由行锁变成表锁,性能下降会厉害。那相对而言,redis的分布式锁,相对而言,是个很好的选择,redis...转载 2019-10-11 14:29:34 · 168 阅读 · 0 评论 -
QPS、TPS、PV、UV、GMV、IP、RPS
关于 QPS、TPS、PV、UV、GMV、IP、RPS 这些词语,看起来好像挺专业。但实际上,我认为是这是每个程序员必懂的知识点了,你可以搞不懂它们怎么计算的,但是你最少要知道它们分别代表什么意思吧?!QPSQPS:全名 Queries Per Second,意思是“每秒查询率”,是一台服务器每秒能够响应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。简...转载 2019-10-07 19:36:51 · 169 阅读 · 0 评论 -
Tomcat的最大并发数
日常应用中,单台Tomcat能支持最大的并发数是多少?作为一个有经验的Java Web开发人员对这个问题应该有大概的印象,并会让问题再具体点,比如Tomcat版本,运行模式,并发请求允许的最大响应时间等,然后针对其中某个点搜索答案,而不应该低效的去直接搜这个答案。并且如果你没相关知识,很容易被网上的知识误导,因为很多都是很早之前配置的答案的转载。以现在主要用的Tomcat8为例,想要完全掌...转载 2019-10-07 19:23:50 · 2132 阅读 · 0 评论 -
服务端高并发分布式架构演进之路
1. 概述本文以淘宝作为例子,介绍从一百个并发到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则。2. 基本概念在介绍架构之前,为了避免部分读者对架构设计中的一些概念不了解,下面对几个最基础的概念进行介绍:分布式 系统中的多个模块在不同服务器上部署,即可称为分布式系统,如Tomca...转载 2019-10-07 19:41:51 · 176 阅读 · 0 评论 -
分布式锁的实现方式
目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足两项。”所以,很多系统在设计之初就要对这三者做出取舍。在互联网领域的绝大多数的场景中,都需要牺牲强一致...转载 2019-10-11 13:50:56 · 153 阅读 · 0 评论