码迷,mamicode.com
首页 > 其他好文 > 详细

微服务架构设计(一)

时间:2020-11-16 13:05:28      阅读:3      评论:0      收藏:0      [点我收藏+]

标签:面向   多个   人力   设计   多公司   分离   png   std   搭建   

技术图片

开场白

现在很多公司高并发的系统,以前的单体架构遇到了瓶颈,就需要一种架构来解决这种痛点,单体架构及系统流量很大的时候,并发量提不上来,很容易系统阻塞导致运转不起来,这个时候微服务就是为了解决这种痛点而生的,微服务,及把单体服务分成多个微服务,采用了分治思想,拆分的微服务也是要有度才行,不能分得太细;面向业务、大道至简、分而治之的三个原则,考虑到公司的业务需求,投入产出,系统扩展等,总之,架构就是利用最小的人力成本来构建和维护需求的实现。

架构选型

选型一

对于并发非常大的可以采用,nginx集群加网关集群
技术图片
1、nginx可以做路由转发,同时可以动静分离,缓存,反向代理、负载均衡
2、网关(zuul,gateway),网关可以负载均衡,认证鉴权,数据加密
3、微服务,就是各个子系统,订单服务,商品服务等
4、eruka是服务注册和服务发现,包括client,和server,各个微服务注册到上面,client通过拉取的服务列表进行查询服务,然后通过http访问服务。
5、缓存redis可以提高访问速度
6、定时任务可以对需要异步处理的逻辑,进行定时处理
7、消息队列,可以进行系统解耦,流量削峰,异步处理,日志处理,数据同步
8、文件系统,可以专门存储文件,比如fastDFS,hadoop,gfs
9、cdn,可以用来加快文件的访问速度
10、数据库(mysql),开源,系统成熟,可以用来存储有结构化的数据
11、云主机,用来部署服务的硬件服务器

选型二

技术图片
这个架构多了一个api聚合服务,所有的终端通过网关,然后访问聚合服务,聚合服务所有业务的api,放到了同一个微服务里面,这样做有利于api的代码管理及提高开发效率;缺点是并发不是很高,多人开发容易产生冲突。

选型三

技术图片
这个架构,api聚合服务,改成了多个api微服务,这样做,可以提高并发性,但是缺点也是不利于前期开发,每个业务得有个api比较分散,代码不容易管理,部署稍微复杂。

总结

1、上面三种架构各有优缺点,其中很多微服务是公共的,比如订单服务,商品服务,这些对于那些不是从零开始搭建系统的项目,可以做成公用的,也就是公共基础服务。
2、对于那些从零搭建系统的项目,刚开始最好是每套系统是独立的,有利于项目的顺利进展,及需求的按时实现。
3、对于高并发的系统,可以采用架构三,同时可以采用各种集群,页面静态化,cdn,线程池,消息队列,缓存,提高并发量;限流,熔断,降级,切流量,版本回滚,超时与重试来保证高可用。

微服务架构设计(一)

标签:面向   多个   人力   设计   多公司   分离   png   std   搭建   

原文地址:https://blog.51cto.com/xxdeelon/2547726

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!