SpringCloud微服务 【实用篇】| 认识微服务

目录

一:认识微服务

1. 微服务框架介绍

2. 服务架构演变

3. 微服务技术对比

4. SpringCloud

图书推荐:《巧用ChatGPT快速提高职场晋升力》


一:认识微服务

本课程学习于黑马,会通过分层次学习,分为三部分去讲解微服务:实用篇、高级篇、面试篇

分层次学习

微服务技术栈

1. 微服务框架介绍

思考:什么是微服务?

答:第一反应肯定是SpringCloud技术,但不仅仅是;微服务实际上是分布式架构的一种,就是把服务做拆分,拆分时会出现问题需要解决;而SpringCloud仅仅是解决服务治理问题

那么一个完整的微服务需要哪些知识呢?

(1)微服务架构的第一件事就是项目的拆分,独立开发每个服务

(2)当业务越来越多,越来越复杂时,它们之间的调用关系就会越来越复杂,想要记录和维护,需要一个组件---注册中心(记录每个服务的IP、端口等信息)

(3)每个服务都有自己的配置文件,将来要更改配置逐一去更改很麻烦,所以还有一个组件---配置中心(拉取配置信息,实现配置的热更新)

(4)当微服务运行以后,用户就可以进行访问,这里就需要一个组件---服务网关(访问哪一个?谁能访问?对用户的身份进行验证,可以把用户的请求路由到具体的服务)

(5)服务接到请求处理业务,访问数据库,再把数据返回给用户。数据库集群在庞大,也扛不住大量用户的高并发,此时就需要组件---分布式缓存(把数据库的数据放到内存当中,先到缓存,缓存未命中,再去数据库查,内存的查询效率肯定是比数据库高的);

(6)还有一些复杂的搜索功能,简单数据可以走缓存,一些复杂的搜索缓存无法解决,此时就需要另外一个组件---分布式搜索

(7)在为微服务中还需要异步通信的消息队列组件,一个请求来了调用a,a调用b,b调用...整个业务的链路就会很长,调用时长就等于每个服务调用的时长之和,性能下降。而异步通信的消息队列不是去调用a而是通知a,通知完以后就结束了,业务的链路就变短了,响应时间就变短了,吞吐能力变强;

(8)当然那么庞大的微服务,在出现问题排查是个大问题,所以需要引入两个新的组件---分布式日志服务(统治成千上百服务的日志,统一的存储和分析)和 系统的监控链路追踪(实时监控这个服务每一个节点的运行状态,CPU的占用等情况);

(9)庞大复杂的微服务集群怎么部署呢?需要一个自动化的部署---Jenkins(自动化的编译),在使用Docker(打包形成镜像),在基于K8s实现自动化的部署;

技术栈很多很杂,进行梳理学习

2. 服务架构演变

单体架构

单体架构:将业务的所有功能集中在一个项目中开发,打成一个包部署。

例如:一个商城的项目,把所有的功能模块放到一个项目中进行打包部署到Tomcat服务器

优点

①架构简单;②部署成本低;

缺点

①耦合度高;适合部署一些小型的项目;

分布式架构

分布式架构:根据业务功能对系统进行拆分,每个业务模块作为独立项目开发,称为一个服务。

例如:把一个商城项目的每个模块都进行拆分成一个项目去开发。

优点:

①降低服务耦合;

②有利于服务升级拓展

服务治理

拆分也会带来一些问题:都是一个单体项目,部署在不同的服务器,调用时会出现远程调用(跨越服务器)的问题。分布式架构的要考虑的问题:

①服务拆分粒度如何?怎么拆,把服务作为独立的模块。

②服务集群地址如何维护?上百个机器的地址怎么维护。

③服务之间如何实现远程调用?跨服务的调用。

④服务健康状态如何感知?服务器的状态,有可能宕机。

微服务

微服务是一种经过良好架构设计的分布式架构方案,微服务架构特征:

①单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责,避免重复业务开发;

②面向服务:微服务对外暴露业务接口,用来远程调用;

③自治:团队独立、技术独立、数据独立(每个服务独立的数据库)、部署独立;

④隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题;

例如:一个会员的功能,进行进一步的细化拆分

总结:

(1)单体架构特点

简单方便,高度耦合,耦合度高,扩展性差,适合小型项目。例如:学生管理系统。

(2)分布式架构特点

松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如:京东、淘宝。

(3)微服务:一种良好的分布式架构方案

优点:拆分粒度更小、服务更独立、耦合度更低。

缺点:架构非常复杂,运维、监控、部署难度提高。

3. 微服务技术对比

微服务这种方案需要技术框架来落地,全球的互联网公司都在积极尝试自己的微服务落地技术。在国内最知名的就是SpringCloud和阿里巴巴的Dubbo

微服务技术对比

Dubbo

SpringCloud

SpringCloudAlibaba

注册中心

zookeeper、Redis

Eureka、Consul

Nacos、Eureka

服务远程调用

Dubbo协议

Feign(http协议)

Dubbo、Feign

配置中心

SpringCloudConfig

SpringCloudConfig、Nacos

服务网关

SpringCloudGateway、Zuul

SpringCloudGateway、Zuul

服务监控和保护

dubbo-admin,功能弱

Hystix

Sentinel

企业需求 

①使用SpringCloud技术栈、服务接口采用Restful风格、服务调用采用Feign方式;

②使用SpringCloudAlibaba技术栈、服务接口采用Restful风格、服务调用采用Feign方式;

③使用SpringCloudAlibaba技术栈、服务接口采用Dubbo协议标准、服务调用采用Dubbo方式;

④基于Dubbo老旧技术体系、服务接口采用Dubbo协议标准、服务调用采用Dubbo方式;

4. SpringCloud

(1)SpringCloud是目前国内使用最广泛的微服务框架。官网地址:Spring Cloud

(2)SpringCloud集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,从而提供了良好的开箱即用体验:

SpringCloud与SpringBoot的版本兼容关系如下:

注:本次学习的版本是 Hoxton.SR10,因此对应的SpringBoot版本是2.3.x版本。 

图书推荐:《巧用ChatGPT快速提高职场晋升力》

本次送书 1 本! 

抽奖方式:利用程序进行抽奖。

参与方式:关注博主(只限粉丝福利哦)、点赞、收藏,评论区随机抽取,最多三条评论!

关键点

ChatGPT赋能职场,一本书掌握AI在职场中的的全面应用

10大创新技术+30多个实战案例+50多种ChatGPT应用策略

有效提高沟通能力、提高工作效率、提升个人品牌、提升创造力、提升管理能力

助你在竞争激烈的职场环境中脱颖而出

卖点

★超实用 通过30多个实战案例和操作技巧,使读者能够快速上手并灵活运用ChatGPT技术及提高职场晋升力。

★巨全面 50多种ChatGPT应用策略,涵盖提高沟通能力、提高工作效率、提升个人品牌、提升创造力、提升领导力和管理能力、促进职业发展全方面。

★真好懂 以通俗易懂的语言解释ChatGPT的原理及应用,零门槛提高职场硬核能力。

★高回报 学习本书,全面提升职场能力,大大提高工作效率,促进职业发展,实现自我价值。

内容简介

        本书从ChatGPT的基本知识、技术原理和应用场景出发,详细探讨了如何运用ChatGPT提升职场竞争力。全书共分为10章,内容包括ChatGPT在职场沟通、工作效率、个人品牌价值、职业发展、创意思维、领导力与管理、学习与自我成长、数据分析、服务与谈判等方面的应用。通过阅读本书,读者可以了解到ChatGPT的强大功能和在各领域的实际应用,从而有效提升职场竞争力。

        本书内容丰富、实用性强,旨在帮助读者在职场中更好地运用ChatGPT技术。适合职场人士、管理者、开发者及对人工智能技术感兴趣的读者阅读。同时,本书也适用于相关培训机构作为教材使用,助力职场发展。

当当网链接:当当图书

京东的链接:京东安全

猜你喜欢

转载自blog.csdn.net/m0_61933976/article/details/133159874