当前位置:首页 > Java技术 > SpringCloud-初识微服务(一)

SpringCloud-初识微服务(一)

2022年08月06日 11:47:09Java技术2

前言

  本篇文章简单介绍一下什么是微服务、微服务的优点、SpringCloud的微服务架构核心组件选型等;

一、什么是微服务?

  微服务的提出者Martin Fowler是这样描述微服务的(原文:https://martinfowler.com/articles/microservices.html):

   In short, the microservice architectural style [1] is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often
an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services,
which may be written in different programming languages and use different data storage technologies.

  翻译过来(译文:http://blog.cuicc.com/blog/2015/07/22/microservices/):

     简单来说,微服务架构风格是一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制(通常用HTTP资源API)。这些服务围绕业务能力构建并且可通过全自动部署机制独立部署。这些服务共用一个最小型的集中式的管理,
服务可用不同的语言开发,使用不同的数据存储技术。

  故微服务架构应具有以下特性:

    1、每个微服务可独立运行在自己的进程里,即独立部署;

    2、一系列独立运行的微服务共同构建起整个系统,即分布式系统架构;

    3、每个服务为独立的业务开发,一个微服务只关注某个特定的功能,即业务服务层的高内聚低耦合,业务的模块化;

    4、微服务之间通过轻量级的通信机制通信,即使用RestFul调用;

    5、可使用不同的语言和数据存储技术;

    6、自动化部署;

  总结:

    装逼版:微服务,即基于独立的业务模块化单元的单机应用进行的完整、成熟的分布式架构;(个人理解)

    白话版:微服务,即多个微小的独立部署的应用单元组成的,各个服务之间互不影响的一套完整的系统;(个人理解)

二、微服务的优点

  1、易于开发和维护:一个微服务只会关注特定的业务功能,所以业务清晰,代码量少,易维护;

  2、局部部署:微服务是独立部署的,所以它部署时不会影响其他服务;

  3、可扩展性强:由于微服务是独立部署的,当产品有新的需求时,就可以重新建立一套微服务,完全解耦;

  4、支持多语言:技术选型不在受限,完全可以一个系统中有多个语言存在;

  最大的优点就是规避了单体应用缺点,复杂性高,部署频率低,扩展受限,可靠性差等。

三、SpringCloud的微服务架构核心组件选型

      SpringCloud-初识微服务(一) _ JavaClub全栈架构师技术笔记

 

   1、服务网关:由于是微服务,不可避免的会有很多的接口,这样的会互相访问时会出现很多问题,例如:存在跨域请求,客户端辉多次请求不同的微服务,增加可客户端的复杂性和不可维护性,难以重构等问题,所以我们需要一个服务网关来管理这些请求,微服务网关是介于客户端和服务端之间的中间层,这样我们就可以做一些额外的功能如:认证安全,压力测试,监控,负载均衡等;在SpringCloud建议使用Zuul,它是Netflix开源的微服务网关;

   2、客户端负载均衡:在微服务中,部署时各个微服务都会部署多个实例,这样我们就需要将请求分摊到各个具体的实例上;在SpringCloud建议使用Ribbon,他也是Netflix开源的负载均衡器;

   3、服务注册中心:使用微服务构建的是分布式系统,微服务之间通过网络进行通信,而随着系统体积的增加,服务也会增加,这样我们就需要一个服务管理中心去管理这些服务;在SpringCloud中建议使用Eureka;

   4、熔断器:微服务架构的应用系统通常会有多个服务层,而各个微服务之间又有着业务关系,难免存在依赖,而如果其中一个微服务发生故障时也会导致其他微服务的不可用,从而引起级联故障也就是雪崩效应,所以我们需要一个断路保护机制,来保证不会出现雪崩效应;在SpringCloud中建议使用Hystrix;

   5、配置中心:由于微服务较多,不同环境配置也不尽相同,所以非常有必要将配置文件统一管理,所以需要一个配置中心来管理配置文件;在SpringCloud中建议使用SpringCloudConfig;

 

 

参考书籍:《SpringCloud与Docker微服务架构实战》周力著

 

作者:lfalex
来源链接:https://www.cnblogs.com/lfalex0831/p/9139275.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/java/18303.html

标签: Spring Cloud
分享给朋友:

“SpringCloud-初识微服务(一)” 的相关文章

SpringBoot整合SpringCloud分布式服务

SpringBoot整合SpringCloud分布式服务

一、SpringCloud是什么 度娘:Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署...

SpringCloud之断路器Hystrix

SpringCloud之断路器Hystrix

一、Hystrix是什么 之前文章讲过,SpringCloud中加入了断路器功能,当请求接口时,服务提供者出现宕机问题,没有一个好的容错机制的情况下,是有可能造成雪崩效应,造成整个服务瘫痪,从而导致系统挂掉。Hystrix是Netflix提供的一个延迟和容错库,可以在服务出现问题时,进行及时...

SpringCloud基本原理

SpringCloud基本原理 在微服务架构中,需要几个基础的服务治理组件,包括服务注册与发现、服务消费、负载均衡、断路器、智能路由、配置管理等,由这几个基础组件相互协作,共同组建了一个简单的微服务系统。其它几章的介绍是基于SpringCloud基本原理...

SpringCloud简单实例

SpringCloud简单实例

SpringCloud简单实例 SpringCloud是基于SpringBoot,需要先了解SpringBoot的相关知识。 这里只是一个非常简单的包含注册表、服务提供者、服务消费者三者的例子。 源码见: https://github....

Spring Cloud面试问题

Spring Cloud面试问题

问:什么是Spring Cloud?     答: Spring Cloud Stream App Starters是基于Spring Boot的Spring Integration应用程序,提供与外部系统的集成。Spring Cloud Task。...

Spring Cloud实战|3.SpringCloud 整合common模块

Spring Cloud实战|3.SpringCloud 整合common模块

手把手教你从0开始搭建spring cloud alibaba 脚手架,关注公众号“AI码师” 获取项目完整源码 视频地址:视频教程 创建新模块 ams-common 当前目录结构 基础包封装 引入必备依...

SpringCloud 实战|7.SpringCloud 整合Sentinel

SpringCloud 实战|7.SpringCloud 整合Sentinel

手把手教你从0开始搭建spring cloud alibaba 脚手架,关注公众号“AI码师” 获取项目完整源码 引言 这一期主要是整合sentinel,实现流控、降级和授权功能 开整 引入依赖 在comm...

Spring Cloud 学习推荐

学习 Spring Boot Spring tutorials | Java Web Development, Spring Cloud Programming tutorials Spring Boot为您提供了Spring Framewo...

springcloud zookeeper+gateway

springcloud zookeeper+gateway

搭建springcloud项目的时候以 zookeeper为注册中心  gateway为路由 启动时出现以下报错:   ********************************************************** Sprin...

Sentinel Getting Started And Integration of Spring Cloud Alibaba Tutorials

原文链接:Sentinel Getting Started And Integration of Spring Cloud Alibaba Tutorials Sentinel Getting Started And Integration of...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。