SpringCloud 微服务架构(基础详解)

Posted 陌守

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringCloud 微服务架构(基础详解)相关的知识,希望对你有一定的参考价值。

SpringCloud 微服务架构(基础详解)

微服务架构的概念

微服务架构是一种架构模式,它提倡将单一的应用程序划分成一组小的服务,服务之间互相协调、互相融合,为用户提供最终价值,每个服务在其独立的进程中,服务与服务间采用轻量级通信机制互相协作(通常是基于HTTP协议的Restful API)。每个服务都围绕着具体业务进行构建,并且能够被独立的部署到生产环境、类生产环境等。另外,应当尽量避免统一的、集中的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建。

SpringCloud微服务更新

打钩代表目前在用,打叉表示停更或被替代

SpringCloud微服务架构项目搭建注意事项

一、项目构建:	
	1、约定 > 配置 > 编码
	
二、微服务整体聚合父工程
	1、新建简单工程
	2、聚合父工程名字
	3、选择 maven 版本
	4、工程名字
	5、字符编码
	6、注解生效激活
	7、java 编译版本选择 1.8
	8File Type过滤
	
三、对父工程的pom管理的jar包内容优化
	1、将maven默认 <package>jar</package> 改为 <package>pom</package>
	2、统一jar包管理版本 <properies></properies>
	3<dependencyManager>子模块继承之后,提供作用:锁定版本 + 子 modlue 不用写 groupId 和 version,对jar包的管理值负责声明,不负责引入。
	
四、微服务模块的构建步骤
	1、建 module
	2、改 pom
	3、写 yml
	4、主启动
	5、业务类

RestTemplate

概念: RestTemplate提供了便捷访问Http服务的方法,是一种简单便捷的访问 restful服务模板类,是spring提供的用于访问Rest服务的客户端模板工具集。参考spring官网。


使用: (url,requestMap,ResponseBean.class)这三个参数分别代表如下:
1、REST请求地址
2、请求参数
3、HTTP响应转换被转换成的对象类型

将RestTemplate注入到spring容器中,交给spring进行管理:

@Configuration
public class ApplicationContextConfig

	@Bean
	public RestTemplate getRestTemplate()
		return new RestTemplate();
	

微服务注册中心

CAP原则:https://blog.csdn.net/qq_36763419/article/details/120014638

Eureka(停更)

SpringCloud 与 Eureka 的集成:https://blog.csdn.net/qq_36763419/article/details/119734826

Zookeeper

SpringCloud 与 Zookeeper 的集成:https://blog.csdn.net/qq_36763419/article/details/119954590

Consul

SpringCloud 与 Consul 的集成:https://blog.csdn.net/qq_36763419/article/details/119987591

Nacos

负载均衡服务调用

Ribbon负载均衡服务调用

SpringCloud 与 Ribbon 的集成:https://blog.csdn.net/qq_36763419/article/details/120015109

OpenFeign服务接口调用

SpringCloud 与 OpenFeign 的集成:https://blog.csdn.net/qq_36763419/article/details/120063156

服务降级、熔断、限流、隔离

Hystrix(停更)

SpringCloud 与 Hystrix 的集成:https://blog.csdn.net/qq_36763419/article/details/120119872

服务网关

SpringCloud Gateway

SpringCloud 与 Gateway 的集成:https://blog.csdn.net/qq_36763419/article/details/120492044

服务配置

SpringCloud Config

SpringCloud 与 Config 的集成:https://blog.csdn.net/qq_36763419/article/details/120765489

消息配置

SpringCloud Bus服务总线

SpringCloud 与 Bus + RabbitMQ + Config 的集成:https://blog.csdn.net/qq_36763419/article/details/120851600

SpringCloud Stream消息驱动

SpringCloud 与 Stream + RabbitMQ 的集成:https://blog.csdn.net/qq_36763419/article/details/120969333

分布式请求链路追踪

SpringCloud Sleuth分布式请求链路追踪

SpringCloud 与 Sleuth + Zipkin 的集成:https://blog.csdn.net/qq_36763419/article/details/121065169

SpringCloud Alibaba 基础详解

SpringCloud Alibaba 概念

SpringCloud 与SpringCloud Alibaba 的集成:https://blog.csdn.net/qq_36763419/article/details/121127017

SpringCloud Alibaba Nacos 服务注册中心

SpringCloud 与SpringCloud Alibaba Nacos 服务注册中心的集成:https://blog.csdn.net/qq_36763419/article/details/121167710

SpringCloud Alibaba Nacos 服务配置中心

Nacos 作为服务配置中心:https://blog.csdn.net/qq_36763419/article/details/121188285

SpringCloud Alibaba Nacos 集群与持久化

Nginx(高可用) + Nacos(集群) + mysql(主从复制): https://blog.csdn.net/qq_36763419/article/details/121179174

SpringCloud Alibaba Sentinel 服务熔断降级、限流

SpringCloud 与 Sentinel 服务熔断降级、限流的集成:https://blog.csdn.net/qq_36763419/article/details/121325199

SpringCloud Alibaba Seata 分布式事务框架

SpringCloud 与 Seata 分布式事务的集成:https://blog.csdn.net/qq_36763419/article/details/121563729
持续更新中。。。。。。

springcloud-微服务架构基础

一 前言

学习微服务要从基础的架构学起,首先你要有个微服务的概念才能学习对吧!!如果你都不知道啥是微服务,就一头扎进去学习,你自己也觉得自己也学不会对吧。本篇文章主要让大家快速了解基础的架构分格,以便于微服务入门。

二 单体架构

单体架构是传统架构,其发展了几十年,我们今天任然还在用单体架构开发,存在即合理;单体架构也就是通常的表现层跟UI界面交互,业务层写业务逻辑,数据DAO层访问数据库。其部署方式也很简单,直接将项目打包成war包放进web服务器(如tomcat,jetty)中运行; 其优点如下:

  1. 易于开发,架构单一,很容易上手,一站式到底;

  2. 易于部署,直接放进web服务器即可运行;

其缺点如下:

  1. 维护困难,每次进行代码维护,往往修改都是从上而下改动,需将整个程序部署才能看见修改结果;

  2. 二次开发难度大,都要读懂大量代码,业务逻辑复杂;

  3. 测试难度大,随着业务越多,测试的难度会越大;

在这里插入图片描述

三 分布式架构

分布式架构简单的可以理解为由多个单体结构组成,但是它们都是通过发布的服务相互调用;

在这里插入图片描述

分布式服务架构中比较出门的就是面向服务的SOA(Service-Oriented Architecture)架构,服务之间通过通信协议进行相互通信;比较出名的服务治理框架也就是阿里开源的Dubbo框架,目前在Apache旗下,服务之间通过远程过程调用(RPC),主要角色如下;

  1. 注册中心:服务的注册与发现;

  2. 提供者:提供服务

  3. 消费者:消费服务

  4. 监控中心:监控服务之间的日志和健康;

在这里插入图片描述

四 微服务架构

到目前为止其实关于微服务架构还是没有一个精确的定义;2014 年 Martin Fowler 在 《Microservices》 一文中提出了微服务的概念,大体的我们可以总结为如下几点:

  1. 一个单体应用开发成多个微小服务;

  2. 微小服务间通常通过HTTP协议或者restful风格调用;

  3. 每个微小服务围绕业务逻辑构建,独立自动部署;

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.

在这里插入图片描述

微服务的优点如下:

  1. 独立部署,易于开发维护

  2. 服务拆分,业务逻辑清晰,

  3. 服务间通过HTTP通信,耦合度低

微服务缺点如下:

  1. 部署难度大,目前有docker等容器化技术相对好点;

  2. 分布式事物问题突出;

五参考文档

dubbo官方文档

miroservice

 

 

以上是关于SpringCloud 微服务架构(基础详解)的主要内容,如果未能解决你的问题,请参考以下文章

微服务实践之全链路追踪(sleuth,zipkin)详解-SpringCloud(2021.0.x)-4

SpringCloud Alibaba微服务实战一 - 基础环境准备

微服务实践之网关(Spring Cloud Gateway)详解-SpringCloud(2021.0.x)-3

SpringCloud微服务实战搭建企业级应用开发框架:架构说明

基于springcloud的微服务实战

基于springcloud的微服务实战