Spring cloud微服务-个人博客系统设计(二)

技术选型

    说到这里开始搭建项目了,既然是选用了微服务,我决定采用了市场上流行的springcloud全家桶。Springcloud属于集成性的框架,除了自身所提供的微服务核心组件,也可以集成它家的框架。

Spring cloud全家桶

注册中心

    微服务的核心是服务注册中心,服务名下可以分布多个实例,通过负载均衡机制来请求。

    Springcloud提供的注册中心Netflix Eureka,实际上大多数注册中心组件工作原理相同:服务注册,服务信息拉区,缓存本地,服务中心与客户端心跳机制检测,以及服务中心通知更新。

负载均衡策略

    微服务之间通信的协议可以是http,也有RPC,我采用的ribbon,基于RestTemplate的封装和aop增强,加入了负载均衡策略,超时重试的机制。

    负载均衡默认采用了轮询机制。Feign是ribbon+hystrix的封装,本项目采用的是Feign,面向接口式的通信。

分布式配置

    将各个微服务的配置文件统一管理,我采用的式Spring Cloud Config,虽然功能比较简单,后期可能会替换成其它的配置中心。

    Spring Cloud Config默认式将配置文件放在git上,我当然不会这么做,在本地建立一个项目,配置文件就放在本地的项目里统一管理。

服务网关

    所有微服务的统一入口,这个我在项目开发完毕的周期,加入了zuul网关,虽然后台接口调试成功了,但涉及到了前端静态资源路由和路径映射错误的问题,虽然尝试用绝对路径解决,但还是无效。

Mvc分层

    依赖springboot父项目,配置化优先,springboot给我们带来的便利是配置自动化,一般情况下我们都是使用的默认配置,这就是自动化的意义所在。

    项目的分层架构依然使用经典的model2:试图层,控制层,数据层(service+dao)

    控制层使用springmvc,持久层采用mybatis-plus(不必在整合逆向工程,逆向工程的明显缺陷就是数据字段发生改变不宜维护)。


其它工具

Nginx

   一种用c语言开发的反向代理工具,针对域名映射服务,文件系统映射。占用内存小,效率高,可达到每秒2万次请求,启动速度快的特点。

    Nginx也为我们提供了负载均衡的功能,但是不会讲台用作微服务之间的调用。我将它用作服务器上图片的映射。

Redis

    缓存功能是少不了的,在单点登录里面保存用户信息,以及缓存博客类型数据时用到了缓存。这里我配置的是redis哨兵机制。



技术选型之后就是项目的搭建,下一篇博客会为各位介绍,以及各个工具的作用和特点。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容