分布式微服务架构演进过程

本文介绍了从开发环境到生产环境的变化,以及Web1.0和Web2.0阶段的演进,重点关注了从单体架构到分布式架构、SOA架构的转变。讨论了在分布式架构中常见的服务异步通讯、服务地址维护、服务降级和海量数据处理等问题,提出了解决方案如使用Eureka、Ribbon和Hystrix。最后探讨了微服务架构带来的运维挑战和解决方案,如利用Docker进行容器化部署。
摘要由CSDN通过智能技术生成

架构演进

一、开发环境与生产环境


1.1 开发环境

平时在写代码时,大多都在是Win10/Win7/Mac,这些系统都可以称呼为开发环境,会为了更高效的开发应用程序,会安装很多很多的软件,导致操作系统不安全,稳定性降低。

1.2 生产环境

在生产环境中,操作系统不会采用Win10/Mac,这种操作系统相对不安全,生产环境是要面向全体用户的,一般会采用专业的操作系统。

大多市面上使用的都是基于Linux的操作系统,当然还有Windows版本的服务器操作系统,如Windows 2003 service等等。

由于Linux内核版本完全对外开源,市场占用率大,所以第一步要学会如何使用Linux操作系统。

二、Web1.0&Web2.0阶段


2.1 Web1.0阶段

在Web1.0阶段,由于带宽不足,这时的项目大多是内容少,用户量不多,甚至有一些项目不需要对外开放,对安全性和稳定性的要求不高。

单体架构就足以应对。

单体架构
1585843668063
2.2 Web2.0阶段

随之到来的Web2.0阶段,实现了ADSL拨号上网,宽带提速,最高可以达到8M,用户量也就不断增加,一些门户网站也开始活跃,项目就需要考虑安全性和稳定性。

在基于上面的单体架构图中,无法满足Web2.0对项目的需求。

可以选择在单体架构的基础上去搭建集群。

在搭建集群之后,可以提升项目的稳定性,提升并发能力,避免单点故障。

单体架构搭建集群
1585843906858
2.3 搭建集群后的问题

用户的请求到底要发送到哪台服务器上。如何保证请求平均的分发给不同的服务器,从而缓解用户量增加的压力。

项目中,如果用户登录成功了,将用户的标识放到Session域中,在搭建集群之后,Session数据共享问题。

由于用户量增加,热点数据被查询的频率增高,数据库压力骤增,甚至导致数据库宕机。

在搜索一些数据时,会使用where content like '%#{xxx}%'查询条件,会导致索引失效,检索速度极慢。

  • 为了解决上述的问题,需要使用到三门技术。
    • Nginx - 解决用户请求平均分发。

    • Redis - 解决数据

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值