服务器架构变迁,spring cloud技术梳理

目录

阶段1:单一集中构建网站

阶段2:应用服务器集群配置

阶段3:nginx+应用服务器集群配置

阶段4:nginx集群+应用服务器集群配置+HA

阶段5:CDN+Varnish服务器集群配置

阶段6:数据库读写分离

阶段7:nosql+分布式搜索引擎

阶段8:nosql(HA)+分库分表+MyCat

阶段9:分布式文件系统

阶段10:应用服务化拆分+消息中间件

阶段11:微服务架构

spring cloud技术梳理


阶段1:单一集中构建网站

阶段2:应用服务器集群配置

阶段3:nginx+应用服务器集群配置

nginx解决用户请求转发到哪台服务器的问题

阶段4:nginx集群+应用服务器集群配置+HA

防止nginx单点故障,lvs解决负载均衡,keepAlived保证nginx高可用

阶段5:CDN+Varnish服务器集群配置

将很少变化的静态资源,放入varnish里,有的内容可以不用找tomcat,直接找varnish。

大厂可以用cdn进行内容分发(类似于varnish)

阶段6:数据库读写分离

阶段7:nosql+分布式搜索引擎

进一步加快查询操作

阶段8:nosql(HA)+分库分表+MyCat

用mycat对mysql进行分库分表,加快mysql的操作

用Codis进行Redis的集群配置

阶段9:分布式文件系统

图片可以放在分布式文件系统

阶段10:应用服务化拆分+消息中间件

拆分服务,不同服务间,用消息队列进行通信

阶段11:微服务架构

spring cloud技术梳理

整套开发技术以SprinaCloud为主,单个微服务模块以SpringMVC+SpringBoot/Spring+MyBatis组合进行开发

前端层,页面H5+thymeleaf/样式CSS3+ Bootstrap/前端框架JQuery+ Node/Vue等

负载层,前端访问通过Http或Https协议到达服务端的LB,可以是F5等硬件做负载均衡,还可以自行部署LVS+ Keepalived等(前期量小可以直接使用Nginx)

网关层,请求通过LB后,会到达整个微服务体系的网关层Zuul (Gateway) ,内嵌Ribbon做客户端

负载均衡, Hystrix做熔断降级等服务注册,采用Eureka来做服务治理, Zuul会从Eureka集群获取已发布的微服务访问地址,然后根据配置把请求代理到相应的微服务去

docker容器,所有的微服务模块都部署在Docker容器里面,而且前后端的服务完全分开,各自独立部署后前端微服务调用后端微服务,后端微服务之间会有相互调用

服务调用,微服务模块间调用都采用标准的Http/Https+REST+JSON的方式,调用技术采用Feign+ HttpClient+Ribbon+ Hystrix

统一配置,每个微服务模块会跟Eureka集群、配置中心(SpringCloudConfig)等进行交互

第3方框架,每个微服务模块根据实现的需要,通常还需要使用一些第三发框架,比如常见的有:缓存服务(Redis) 、图片服务(FastDFS) 、搜索服务(ElasticSearch)

Mysql数据库,可以按照微服务模块进行拆分,统一访问公共库或者单独自己库,可以单独构建MySOL集群或者分库分表MyCat等

发布了524 篇原创文章 · 获赞 80 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/xushiyu1996818/article/details/104560644
今日推荐