博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第十讲---关于微服务架构
阅读量:5740 次
发布时间:2019-06-18

本文共 1540 字,大约阅读时间需要 5 分钟。

hot3.png

前言:

        目前在部门中涉及的项目基本上都是微服务架构,所以根据项目经验和相关资料写写关于对微服务的理解。如有错误,欢迎指出,不胜荣幸!

正文:

一、微服务架构的特点:

        1、微服务将传统的单体应用(如SSM、SSH框架)拆分成网络服务,来实现模块化组件;

        2、根据微服务架构的服务划分来分组职能团队,减少跨团队沟通;

        3、一个服务对应一个团队,团队人员负责需求、设计、开发、测试等,开发之后在团队内进行运维和运营,不需要交付给其他团队;

        4、去中心化、去SOA服务化的中心服务治理和去企业服务总线;

        5、微服务注重服务的合理拆分、分层和构造,可建设自动化持续发布平台,并进行敏捷开发和部署;

        6、具备兼容性设计、容错性设计和服务的契约设计。

        注:关于第2和第3点,可以参见下图中的“传统服务的职能团队”和“微服务的职能团队”

图1 传统服务的职能团队

图2 微服务的职能团队

二、Spring Boot

        Spring Boot是Spring Cloud构建微服务架构的基础。

        在JEE时代,企业级开发涉及到的通用功能被提取到容器层实现。如下图所示:

Tomcat容器负责管理服务的启动、停止、监控、配置、日志等,应用开发人员只要按照规范将应用打包成war包,并发布到Tomcat容器中,就可以对外提供服务了。注意:这个时代的应用是包含在容器内的。

图3 传统应用框架

        而Spring Boot的思路则刚刚好相反,它将容器嵌入到自启动的jar包中,在Spring Boot应用启动时,内部启动嵌入的容器,然后通过内嵌的服务器将应用中提供的服务暴露。

图4 Spring Boot应用框架

        相比于传统的应用框架,Spring Boot框架的优点很明显:

1、可以创建独立、自启动的应用程序,不需要构建war包并发布到容器中;

2、通过Maven定制化标签,可快速创建应用程序;

3、很大程度自动化配置Spring,大大减少了人工配置各项参数;

4、基本上没有XML配置;

5、提供性能分析、健康检查等功能配置。

三、Spring Cloud Consul

        Spring Cloud Consul主要包括:服务发现组件Consul、容错性组件Hystrix、智能路由组件Zipkin和客户端负载均衡组件Ribbon。其交互流程如下图所示:

1、服务注册在Consul服务器实例上;

2、Zipkin作为一个特殊的服务在Consul上注册并发现服务;

3、Zipkin作为网关,将发现的服务导出给PC网站、APP、开放平台使用;

4、RestTemplate/FeignClient使用简单的服务调用方法调用服务1、服务2等。

        

图5 Spring Cloud Consul交互流程

        Spring Cloud Consul具有如下特点:

1、服务在Consul实例中注册,由Spring管理的Bean来发现和调用;

2、通过配置的方式可以启动嵌入式的Consul服务器;

3、Feign客户端通过声明的方式即可导入服务代理;

4、Zipkin使用Ribbon服务实现客户端的负载均衡;

5、通过声明的方式即可插入Hystrix客户端(部门项目中还没有使用);

6、通过配置的方式即可启动Hystrix面板服务器;

7、在Sping环境中可以直接配置Spring Cloud Consul组件;

8、Zipkin可以自动注册过滤器和路由器,形成一个方向代理服务器;

9、Hystrix面板服务器可以对服务的状态进行监控,并提供容错机制。

尾话:

        推荐书籍:《分布式服务架构 原理、设计与实践》

转载于:https://my.oschina.net/linxxbaobao/blog/1823206

你可能感兴趣的文章
jQuery|元素遍历
查看>>
sql语句大全
查看>>
RedHat 6 安装配置Apache 2.2
查看>>
Openstack 安装部署指南翻译系列 之 Manila服务安装(Share Storage)
查看>>
underscore.js学习笔记
查看>>
windows下常用命令
查看>>
1.5编程基础之循环控制_29:数字反转
查看>>
iptables的CLUSTER target与以太网交换机的思想
查看>>
组策略 之 设备安装设置
查看>>
人工智能还能干这些?这8种AI应用你可能意想不到
查看>>
实现Hyper-V 虚拟机在不同架构的处理器间迁移
查看>>
linux根目录下的文件解析
查看>>
简单使用saltstack
查看>>
针对web服务器容灾自动切换方案
查看>>
LTE学习笔记(一)——背景知识
查看>>
突破媒体转码效率壁垒 阿里云首推倍速转码
查看>>
容器存储中那些潜在的挑战和机遇
查看>>
程序员该懂一点儿KPI
查看>>
R语言的三种聚类方法
查看>>
55%受访企业将物联网战略视为有效竞争手段
查看>>