SpringCloud 微服务架构(基础详解)
Posted 陌守
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringCloud 微服务架构(基础详解)相关的知识,希望对你有一定的参考价值。
SpringCloud 微服务架构(基础详解)
- 微服务架构的概念
- SpringCloud微服务更新
- SpringCloud微服务架构项目搭建注意事项
- RestTemplate
- 微服务注册中心
- 负载均衡服务调用
- 服务降级、熔断、限流、隔离
- 服务网关
- 服务配置
- 消息配置
- 分布式请求链路追踪
- SpringCloud Alibaba 基础详解
微服务架构的概念
微服务架构是一种架构模式,它提倡将单一的应用程序划分成一组小的服务,服务之间互相协调、互相融合,为用户提供最终价值,每个服务在其独立的进程中,服务与服务间采用轻量级通信机制互相协作(通常是基于HTTP协议的Restful API)。每个服务都围绕着具体业务进行构建,并且能够被独立的部署到生产环境、类生产环境等。另外,应当尽量避免统一的、集中的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建。
SpringCloud微服务更新
打钩代表目前在用,打叉表示停更或被替代
SpringCloud微服务架构项目搭建注意事项
一、项目构建:
1、约定 > 配置 > 编码
二、微服务整体聚合父工程
1、新建简单工程
2、聚合父工程名字
3、选择 maven 版本
4、工程名字
5、字符编码
6、注解生效激活
7、java 编译版本选择 1.8
8、File 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 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 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)中运行; 其优点如下:
-
易于开发
-
易于部署,直接放进web服务器即可运行;
其缺点如下:
-
维护困难,每次进行代码维护,往往修改都是从上而下改动,需将整个程序部署才能看见修改结果;
-
二次开发难度大,都要读懂大量代码,业务逻辑复杂;
-
测试难度大,随着业务越多,测试的难度会越大;
三 分布式架构
分布式架构简单的可以理解为由多个单体结构组成,但是它们都是通过发布的服务相互调用;
分布式服务架构中比较出门的就是面向服务的SOA(Service-Oriented Architecture)架构,服务之间通过通信协议进行相互通信;比较出名的服务治理框架也就是阿里开源的Dubbo框架,目前在Apache旗下,服务之间通过远程过程调用(RPC),主要角色如下;
-
注册中心:服务的注册与发现;
-
提供者:提供服务
-
消费者:消费服务
-
监控中心:监控服务之间的日志和健康;
四 微服务架构
到目前为止其实关于微服务架构还是没有一个精确的定义;2014 年 Martin Fowler 在 《Microservices》 一文中提出了微服务的概念,大体的我们可以总结为如下几点:
-
一个单体应用开发成多个微小服务;
-
微小服务间通常通过HTTP协议或者restful风格调用;
-
每个微小服务围绕业务逻辑构建,独立自动部署;
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通信,耦合度低
微服务缺点如下:
-
部署难度大,目前有docker等容器化技术相对好点;
-
分布式事物问题突出;
五参考文档
以上是关于SpringCloud 微服务架构(基础详解)的主要内容,如果未能解决你的问题,请参考以下文章
微服务实践之全链路追踪(sleuth,zipkin)详解-SpringCloud(2021.0.x)-4
SpringCloud Alibaba微服务实战一 - 基础环境准备
微服务实践之网关(Spring Cloud Gateway)详解-SpringCloud(2021.0.x)-3