关于架构体系的理解

1.一开始的单机应用系统,一个系统的业务量很小所有的代码都放在一个项目中,然后将项目发布到一台服务器上,整个项目的所有服务都由这台服务器提供,这就是单机结构

2.随着业务需求的增加,为了提升速度,就产生了缓存(redis,我使用过的)


3.然后随着用户量增多,服务器压力增大,就产生了应用服务器和db服务器的分离


4.虽然db服务器的读写操作的增多,大部分都是在读,然后产生了数据库的读写分离

读写分离的基本原理就是应用服务器发起写操作,然后主数据库处理增,删,改的写操作,然后从数据库处理查的读操作,然后通过数据库的主从配置来实现数据的同步


5.单机应用系统下的应用服务器很容易达到瓶颈,就出现了集群,简单来说就是单机复制几份,放在不同的服务器上运行,集群的每一台服务器就是一个子节点,所有的子节点构成了一个集群,每个节点提供相同的服务.但是用户的发起的请求到底要在哪一个节点运行,就产生了一个中间调度者,又称负载均衡服务器(4 层的有 haproxy, 7 层就是 nginx ),由它来处理请求,将请求分配到负载较小的服务器上,从而达到将请求均衡的分配到不同的服务器上    


6.集群结构也是有瓶颈的,当节点增加到一定数量后,在增加就没有效果了,这时候微服务结构就应运而生了

分布式结构就是将一个完整的系统,按照业务功能,拆分成一个个独立的子系统,在分布式结构中,每个子系统就被称为“服务”。这些子系统能够独立运行在web容器中


7.应用和服务会有一些依赖,然后就产生了解偶利器,消息队列(RabbitMQ)

RabbitMQ使用AMQP协议(高级消息队列协议),支持ajax,用于分布式系统中转发存储消息,有消息确认(事务机制和confirm模式)和持久化机制(在消息,交换机和队列的时候持久化),也可以进行集群

RabbitMQ是一个典型的生产者、消费者模型。生产者不端产生新的消息,然后发送给交换机,交换机在绑定队列(一个交换机可以绑定多个队列,一个队列也可以被多个交换机绑定),然后消费者订阅某个队列,获取对应的消息;

交换机有四种类型direct(单播模式)、fanout(广播模式)、topic(通配符模式)、headers (和单播差不多,但是比单播性能差很多,基本不用)


微服务的好处有很多:

  1. 系统之间的耦合度大大降低,可以独立开发、独立部署、独立测试,系统与系统之间的边界非常明确,排错也变得相当容易,开发效率大大提升。
  2. 系统之间的耦合度降低,从而系统更易于扩展。我们可以针对性地扩展某些服务。假设这个商城要搞一次大促,下单量可能会大大提升,因此我们可以针对性地提升订单系统、产品系统的节点数量,而对于后台管理系统、数据分析系统而言,节点数量维持原有水平即可。
  3. 服务的复用性更高。比如,当我们将用户系统作为单独的服务后,该公司所有的产品都可以使用该系统作为用户系统,无需重复开发。
详细情况请点击https://blog.csdn.net/dinglang_2009/article/details/46398885;新手学习,如有错误,请大神指出,万分感谢
阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页