微服务基础架构概述

公司的系统架构向微服务架构演进,需要建设一套微服务基础架构。

整体逻辑架构如图:

 

1、基础技术

      以spring Boot、Spring Cloud为主体,其他技术为辅设计微服务基础架构。

      通讯协议采用Restful。

 

2、设计原则

     服务无状态

     单一职责

     高内聚低耦合

     服务单向调用,避免循环依赖、双向依赖

     水平扩展>垂直扩展 

 

3、端口约定

     微服务基础架构占用部分端口、新增微服务端口统一分配

 

4、注册中心

     具备高可用性的Eureka符合我们的期望

 

5、配置中心

     携程Apollo:企业生产级,spring cloud实现,开源

 

6、网关

     SCG:性能表现佳

     Hystrix:熔断重试

     令牌桶:限流降级

 

7、安全设计

     Https:通讯安全

     Oauth + JTW :服务访问安全

     黑白名单:访问控制

     AES:签名认证

 

8、监控中心

     端点监控:Spring acturtor+ spring boot admin

    链路监控:sky walking,开源、低侵入

    基础设施:zabbix    

 

9、统一日志

    可选性较少,采用开源免费的Elastic Stack

 

10、DEVOPS

       精力受限,采用Maven + jenkins简单粗暴的实现。

 

11、部署环境

  公司系统特殊性,微服务需要可能部署在物理机、虚拟机、Docker、阿里云、腾讯云、华为云等多种介质上,微服务设计需要考虑部署环境多样性。

 

12、非JVM应用

       Spring Sidecar进行代理服务注册,支持nodejs,python;

       调用eureka的HTTP接口,自主实现服务的注册、心跳、查询功能;

        服务调用采用HTTP REST服务,天生支持异构应用;

        Apollo提供了Java和.Net的原生客户端,也提供了Http接口,其它应用也可以方便的使用;

 

13、代码生成

        maven插件,命令行执行,最大程度简化开发。

posted @ 2019-05-20 17:11  havery  阅读(272)  评论(0)    收藏  举报