
架构设计
Java技术栈
Java每天一篇干货,微信公众号:Java技术栈
展开
-
阿里巴巴是如何打通 CMDB,实现就近访问的?
CMDB在企业中,一般用于存放与机器设备、应用、服务等相关的元数据。当企业的机器及应用达到一定规模后就需要这样一个系统来存储和管理它们的元数据。有一些广泛使用的属性,例如机器的IP、主机名、机房、应用、region等,这些数据一般会在机器部署时录入到CMDB,运维或者监控平台会使用这些数据进行展示或者相关的运维操作。在服务进行多机房或者多地域部署时,跨地域的服务访问往往延迟较高,一个城市内的机房...原创 2019-01-11 17:36:54 · 1019 阅读 · 0 评论 -
一张图告诉你为什么是服务网关
网关服务是单一访问点,并充当多项服务的代理。服务网关启用了跨所有服务的路由转发、过滤和公共处理等。在微服务实践中远不止这点功能,它可以做到统一接入、流量管控、安全防护、业务隔离等功能。下面是服务网关的大概作用图。看完这张图,或许你已经明白了服务网关的作用,及使用服务网关带来的诸多好处。所以,既然服务网关有这么多作用,也是现在微服务套件中的必用组件,你还有什么理由不用服务网关呢?原创 2018-01-15 09:21:15 · 13391 阅读 · 0 评论 -
服务高可用:幂等性设计
什么是幂等性?一般在服务调用时,读服务如果调用失败了,会自动按配置次数转移到别的服务上去请求。而写服务就不能重复请求,如果因为超时或者网络故障等原因被调用服务并没有返回成功的响应,服务调用方就认为是失败了,但很有可能的是已经成功了,如果继续重复请求写服务,如转账类的服务,可能会造成严重的后果。所以,写服务失败不能设计成继续发重复请求,被调用服务也要设计幂等性,即使重复请求,也不会造成影响。原创 2018-01-14 10:13:47 · 2292 阅读 · 0 评论 -
一张图告诉你为什么是服务网关,文末有现金抽奖。
网关服务是单一访问点,并充当多项服务的代理。服务网关启用了跨所有服务的路由转发、过滤和公共处理等。在微服务实践中远不止这点功能,它可以做到统一接入、流量管控、安全防护、业务隔离等功能。下面是服务网关的大概作用图。看完这张图,或许你已经明白了服务网关的作用,及使用服务网关带来的诸多好处。所以,既然服务网关有这么多作用,也是现在微服务套件中的必用组件原创 2018-01-13 10:05:12 · 543 阅读 · 0 评论 -
分布式Session共享解决方案
Session是服务器用来保存用户操作的一系列会话信息,由Web容器进行管理。单机情况下,不存在Session共享的情况,分布式情况下,如果不进行Session共享会出现请求落到不同机器要重复登录的情况,一般来说解决Session共享有以下几种方案。1、session复制session复制是早期的企业级的使用比较多的一种服务器集群session管理机制。应用服务器开启web容器的sessi原创 2018-01-11 13:13:32 · 1283 阅读 · 0 评论 -
分布式ID生成器的解决方案总结
在互联网的业务系统中,涉及到各种各样的ID,如在支付系统中就会有支付ID、退款ID等。那一般生成ID都有哪些解决方案呢?特别是在复杂的分布式系统业务场景中,我们应该采用哪种适合自己的解决方案是十分重要的。下面我们一一来列举一下,不一定全部适合,这些解决方案仅供你参考,或许对你有用。一个ID一般来说有下面几种要素:唯一性:确保生成的ID是全网唯一的。有序递增性:确保生成的ID是对于某个用原创 2018-01-11 13:13:13 · 1312 阅读 · 0 评论 -
服务降级的概念及应用手段
什么是服务降级服务降级,就是对不怎么重要的服务进行低优先级的处理。说白了,就是尽可能的把系统资源让给优先级高的服务。资源有限,而请求是无限的。如果在并发高峰期,不做服务降级处理,一方面肯定会影响整体服务的性能,严重的话可能会导致宕机某些重要的服务不可用。所以,一般在高峰期,为了保证网站核心功能服务的可用性,都要对某些服务降级处理。服务降级手段拒绝服务判断应用来源,高峰时段拒原创 2018-01-11 13:12:56 · 4269 阅读 · 0 评论 -
分布式服务防雪崩熔断器,Hystrix理论+实战。
Hystrix是什么?hystrix对应的中文名字是“豪猪”,豪猪周身长满了刺,能保护自己不受天敌的伤害,代表了一种防御机制,这与hystrix本身的功能不谋而合,因此Netflix团队将该框架命名为Hystrix,并使用了对应的卡通形象做作为logo。在一个分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等,如何能够保证在一个依赖出问题的情况下,不会导致整体服务失败,这个就是H原创 2018-01-06 16:52:54 · 2729 阅读 · 0 评论 -
分布式系统中处理参数配置的 4 种方案
一个系统中包含有各种各样的配置信息,如一个日志文件需要配置以下几个信息。日志文件生成主目录日志文件名称,不同的日志级别对应不同的文件当前日志级别还有其他各种业务参数、系统参数等,大多单一系统是直接把这些配置写死在配置文件中,当部署到测试、生产环境就再修改下配置文件,这样很容易出错,也不能灵活修改。还有就是系统变成分布式系统后,子系统越来越多,你要维护这些配置就变得越来越困难。我觉得至...原创 2018-10-22 09:27:38 · 441 阅读 · 0 评论 -
架构师必须掌握的 10 条设计原则
来源:http://codebay.cn/post/9317.html01.遵循单一职责原则函数是程序员的工具中最重要的抽象形式。它们能更多地被重复使用,你需要编写的代码就越少,代码也因此变得更可靠。较小的函数遵循单一职责原则更有可能被重复使用。02.尽量减少共享状态你应该尽量减少函数之间的隐式共享状态,无论它是文件作用域的变量还是对象的成员字段,这有利于明确要求把...转载 2018-09-05 11:33:50 · 725 阅读 · 0 评论 -
SLA服务可用性4个9是什么意思?怎么达到?
SLA:服务等级协议(简称:SLA,全称:service level agreement)。是在一定开销下为保障服务的性能和可用性,服务提供商与用户间定义的一种双方认可的协定。通常这个开销是驱动提供服务质量的主要因素。SLA的定义来源百度,这到底是什么意思呢? 我们平常经常看到互联网公司喊口号,我们今年一定要做到3个9、4个9,即99.9%、99.99%,甚至还有5个9,即99.9...原创 2018-02-28 22:35:13 · 42803 阅读 · 1 评论 -
到底什么是分布式系统?
分布式系统背景说分布式系统必须要说集中式系统,集中式系统中整个项目就是一个独立的应用,整个应用也就是整个项目,所有的东西都在一个应用里面。如下图所示如一个网站就是一个应用,最后是多个增加多台服务器或者多个容器来达到负载均衡的避免单点故障的目的,当然,数据库是可以分开部署的。集中式很明显的优点就是开发测试运维会比较方便,不用为考虑复杂的分布式环境。集中式很明显的弊端就是不易扩...原创 2018-02-28 22:34:38 · 50650 阅读 · 5 评论 -
消息中间件ActiveMQ、RabbitMQ、RocketMQ、ZeroMQ、Kafka如何选型?
最近要为公司的消息队列中间件进行选型,市面上相关的开源技术又非常多,如ActiveMQ、RabbitMQ、ZeroMQ、Kafka,还有阿里巴巴的RocketMQ等。这么多技术,如何进行选型呢?首先对于阿里的RocketMQ,因为是阿里开源的,对于国内开源的保持谨慎的态度,暂时不采取该中间件。所以只能在ActiveMQ、RabbitMQ、ZeroMQ、Kafka中间选一款作为消息队列中...原创 2018-02-28 22:32:02 · 2042 阅读 · 0 评论 -
消息中间件ActiveMQ、RabbitMQ、RocketMQ、ZeroMQ、Kafka如何选型?
最近要为公司的消息队列中间件进行选型,市面上相关的开源技术又非常多,如ActiveMQ、RabbitMQ、ZeroMQ、Kafka,还有阿里巴巴的RocketMQ等。这么多技术,如何进行选型呢?首先对于阿里的RocketMQ,因为是阿里开源的,对于国内开源的保持谨慎的态度,暂时不采取该中间件。所以只能在ActiveMQ、RabbitMQ、ZeroMQ、Kafka中间选一款作为消息队列中原创 2018-01-29 16:04:29 · 501 阅读 · 0 评论 -
什么是灰度发布,灰度测试。
什么是灰度发布?灰度发布,又名金丝雀发布,或者灰度测试,是指在黑与白之间能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布是对某一产品的发布逐步扩大使用群体范围,也叫灰度放量。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发原创 2018-01-10 09:22:34 · 19039 阅读 · 0 评论 -
一张图告诉你什么是系统架构师
这张图从架构师的综合能力、岗位认识、岗位职责等方面,清楚的画出了作为一个架构的基本准则。人人都想成为架构师,可作为架构你达到了上面的要求了吗?系统架构师是个神奇的岗位。为什么这么说,在一个人数不多的小公司,你可能什么都需要做,身体力行,做总监兼架构师或者是主管/高级开发兼架构师;在大公司,你可能只负责某个平台的架构,某些中间件的架构,你就是某一类的架构师。无论怎么分,作为一个架构师,你必须原创 2018-01-09 10:11:31 · 53003 阅读 · 3 评论 -
分布式系统架构常识:CAP理论。
什么是CAP理论?2000年7月,加州大学伯克利分校的Eric Brewer教授在ACM PODC会议上提出CAP猜想。2年后麻省理工学院的Seth Gilbert和NancyLynch从理论上证明了CAP,之后CAP理论正式成为分布式计算领域的公认定理。CAP理论是由下面三个概念组成的,且在分布式系统中三者不能兼得,只能同时满足两种条件。一致性(C) All nodes se原创 2018-01-06 16:55:08 · 4541 阅读 · 0 评论