• Spring Cloud 微服务架构


    一、前言

      微服务技术用的人越来越多,很多公司都在将本身原有的系统微服务化。为什么微服务越来越香呢?

    二、微服务的优点  

      1.开发简单、开发效率提高,一个服务可能就是专一的干一件事。  

      2.微服务能够被小团队单独开发,这个小团队是2到5人的开发人员组成

      3.微服务是松耦合的,是有功能意义的服务,无论是在开发阶段还是部署阶段都是独立的。

      4.微服务能使用不同的语言开发。

      5.易于和第三方集成,微服务允许容易且灵活的方式集成自动部署,通过持续集成工具,如Jenkins。微服务易于被一个开发人员理解,修改和维护,这样的小团队能够更关注自己的工作成果。无需通过合作才能体现价值。 

    三、微服务框架:Spring Cloud

          目前用的最广的微服务框架是Spring Cloud,Spring Cloud框架是基于Spring Boot 。目前Spring Cloud又两个体系一个是Spring Cloud Alibaba,另一个是Spring Cloud Netflix,他们两个是可以混用的。个人感觉Spring Cloud Netflix 将微服务的功能拆的更细,Spring Cloud Alibaba每个组建的Dashboard做的很漂亮。所以可以将两者结合使用。

    四、项目架构

      前段时间给一个客户做了一个项目,他们公司是又Java团队和.Net(C#)开发团队。Spring Cloud 真的是太适合了。因为Spring Cloud也可以和.Net Core 结合的很好。就比如Nacos + .Net Core MVC API 就很香啊。

      下图是我给他们做的微服务架构图:

      1、Nginx 是目前最常用的反向代理技术了。并且Nginx也支持动态服务代理。

      2、网关组建采用Spring Cloud Netflix Zuul的技术,并且集成Spring Cloud Netflix Ribbon做负载均衡、集成Alibaba体系中的Sentinel做服务熔断。为什么不使用

    Spring Cloud Netflix Hystrix做服务熔断呢,因为Hystrix的Dashboard给人的感觉太丑了,而Sentinel的Dashboard做的非常漂亮,使用也很方便。

      3、注册中心使用的是Alibaba的Nacos技术,Nacos不仅可以做注册中心,也可以做服务配置中心。Spring Cloud Netflix 体系中的注册中心是Eureka、配置中心Config。同样是阿里的产品,Nacos 的Dashboard做的也是高端大气上档次。

      4、服务监控使用Spring Boot Admin,该技术使用起来特别方便,只需要简单的配置即可。可是他展现出来给人的第一感觉就是精细。

      5、服务之间相互调用使用的是Spring Cloud Netflix Feign技术。

      6、消息中间件使用的是Spring Cloud Stream + RocketMQ 集群。Rocket是阿里的产品,其中的API对中国人更友好。但是Spring Cloud Stream对消息中间建做了统一API规范,这就导致我们不需要关注各个消息中间件的具体API。即使将RocketMQ换成RabbitMQ,该动量也很小。

      7、分布式缓存使用Redis集群。

      8、数据库使用读写分离,在配上数据库中间件Mycat,由Mycat去访问数据库。

    5、总结

      以上只是给各位读者提供一个解决方案的思路,后面的博客中我将会给大家展示各个中间件的用法。

  • 相关阅读:
    Tutorial中代码的区别及不同效果
    Session
    代码解析&Filter用户授权例子
    web后台运作过程
    工厂纸杯生产流水线管理系统
    Webservice和EJB
    Week8——hashcode()和equals()方法
    Week7——JSON
    Week6——Lifecycle of JSF and Facelets
    Week5——Ajax
  • 原文地址:https://www.cnblogs.com/yansg/p/12377011.html
Copyright © 2020-2023  润新知