看架构 from:假如从餐饮店的角度来看架构…

come from: [假如从餐饮店的角度来看架构…]https://www.javazhiyin.com/42641.html

 

数据源单独存储

前后端分离

常用的技术框架搭配可以是vue,react...结合 ssh,ssm,springboot系列进行搭配。

 

负载均衡

  • 轮询访问:按照Tomcat1-->Tomcat2-->Tomcat3的顺序轮流访问,通知不同的厨师来做菜。

  • 随机访问:每次有客人下单,Nginx都通过抽签的形式来进行随机指明厨师做菜。

  • 最少链接法:谁的需求单最少,就指令相应的厨师做菜。

  • 响应最快法:哪位厨师的做菜效率高,就选择哪位厨师。

  • 哈希法:下单的顾客如果是小孩,就交给Tomcat1,如果是年轻人,就交给Tomcat2,如果是中年人或者老人,就交给Tomcat3。

这就是前后端分离+负载均衡

 

当随着客户请求的次数增加,通常我们会采用这种模式的架构进行搭建项目,将前端页面放置在nginx服务器上边进行加载,然后通过在nginx里面进行upstream的配置定制相应的负载均衡策略,在后端业务模块通过使用Tomcat来进行横向扩展,提高性能的承载能力。

 

MySQL的主从架构

 

随着系统应用访问量逐渐增大,单台数据库读写访问压力也随之增大,当读写访问达到一定瓶颈时, 将数据库的读写效率骤然下降,甚至不可用。为了解决此类问题,通常会采用mysql集群,当主库宕机后,集群会自动将一个从库升级为主库,继续对外提供服务。Master主机将数据操作记录在指定的日志文件里面,然后Slave主机之间通过IO线程来读取日志内容,同步操作到本机上去。一旦出现了故障,通过配置的keepalived信息可以自动实现主从的切换。

 

 

分库分表

基于MyCat中间件的分库分表方案

 

使用MyCAT这种中间件最主要的核心功能点就是分库分表,将一个大表水平划分为了N个小表。MyCAT的原理可以用“拦截”一词来形容,它拦截了用户发送过来的SQL语句,首先对SQL语句做了一些特定的分析,如分片分析,路由分析,读写分离分析,缓存分析等,然后将此SQL发往后端的真实数据库,并将返回的结果做适当处理,最终返回给用户。

 

微服务架构

 

微服务架构”一词大概也是近些年来才出现,它将整体的业务模块拆分成了多个小而独立的子模块,然后每个子模块之间都会进行基于不同协议的相应通信。互联网公司里面经常会有微服务技术的身影,比较著名的微服务框架有Dubbo,SpringCloud

 

消息中间件

消息中间件传输数据

MQ消息队列主要是在各个微服务模块之间进行相应的数据中转,能够起到系统解耦,削峰等作用,因此这种技术成为了微服务架构中非常受欢迎的技术中间件。常见的MQ消息队列中间件有RabbitMQ,ActiveMQ,RocketMQ,Kafka。

 

缓存设计

分布式Redis缓存分片架构

上图中的redis图标描述的redis cluster方案架构,通过对数据进行哈希计算之后放在不同的槽点,然后每个槽点都设置主从模式增强其容错性,采用分片模式的缓存架构可以增加系统的缓存数据量。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值