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

这篇具有很好参考价值的文章主要介绍了SpringCloud微服务 【实用篇】| 认识微服务。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一:认识微服务

1. 微服务框架介绍

2. 服务架构演变

3. 微服务技术对比

4. SpringCloud

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


一:认识微服务

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

分层次学习

SpringCloud微服务 【实用篇】| 认识微服务,第五步:互联网分布式,spring cloud,java,spring,1024程序员节

微服务技术栈

SpringCloud微服务 【实用篇】| 认识微服务,第五步:互联网分布式,spring cloud,java,spring,1024程序员节

1. 微服务框架介绍

思考:什么是微服务?

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

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

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

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

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

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

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

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

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

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

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

SpringCloud微服务 【实用篇】| 认识微服务,第五步:互联网分布式,spring cloud,java,spring,1024程序员节

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

SpringCloud微服务 【实用篇】| 认识微服务,第五步:互联网分布式,spring cloud,java,spring,1024程序员节

2. 服务架构演变

单体架构

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

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

优点

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

缺点

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

SpringCloud微服务 【实用篇】| 认识微服务,第五步:互联网分布式,spring cloud,java,spring,1024程序员节

分布式架构

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

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

优点:

①降低服务耦合;

②有利于服务升级拓展

SpringCloud微服务 【实用篇】| 认识微服务,第五步:互联网分布式,spring cloud,java,spring,1024程序员节

服务治理

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

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

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

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

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

微服务

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

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

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

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

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

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

SpringCloud微服务 【实用篇】| 认识微服务,第五步:互联网分布式,spring cloud,java,spring,1024程序员节

总结:

(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方式;

SpringCloud微服务 【实用篇】| 认识微服务,第五步:互联网分布式,spring cloud,java,spring,1024程序员节

4. SpringCloud

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

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

SpringCloud微服务 【实用篇】| 认识微服务,第五步:互联网分布式,spring cloud,java,spring,1024程序员节SpringCloud与SpringBoot的版本兼容关系如下:

SpringCloud微服务 【实用篇】| 认识微服务,第五步:互联网分布式,spring cloud,java,spring,1024程序员节

注:本次学习的版本是 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技术。适合职场人士、管理者、开发者及对人工智能技术感兴趣的读者阅读。同时,本书也适用于相关培训机构作为教材使用,助力职场发展。

SpringCloud微服务 【实用篇】| 认识微服务,第五步:互联网分布式,spring cloud,java,spring,1024程序员节

当当网链接:当当图书

京东的链接:京东安全文章来源地址https://www.toymoban.com/news/detail-713788.html

到了这里,关于SpringCloud微服务 【实用篇】| 认识微服务的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 一个服务器实现本机服务互联网化

    欢迎来到我的博客,代码的世界里,每一行都是一个故事 在数字世界的网络战场上,中微子代理就像是一支潜伏在黑暗中的数字特工队,通过看似微不足道的信息流进行高效的通信。想象一下,你正在追踪一项机密任务,而中微子代理就是你的数字伪装大师,让你在网络的阴

    2024年03月12日
    浏览(52)
  • 用nginx做正向代理,即(使内网机器可以通过互联网服务器上互联网

    https://nginx.org/en/download.html 官网下载地址 https://github.com/chobits/ngx_http_proxy_connect_module 下载地址 nginx版本与代理模块对照表 此处使用的是nginx-1.20.2,对应proxy_connect_rewrite_1018.patch 基础运行环境安装 查看正向代理模块proxy_connect_rewrite_1018.patch的位置 导入模块 后面为模块路径 编译

    2024年02月08日
    浏览(53)
  • Windows配置互联网访问检测服务器-IspSrv

    赛题 1、搭建服务 2、配置服务 3、配置IIS 4、客户端        原理 (一)服务器 IspSrv 上的工作任务 1.互联网访问检测服务器  为了模拟 Internet 访问测试,请搭建网卡互联网检测服务。

    2024年02月13日
    浏览(49)
  • 互联网+同城上门预约推拿系统-到家理疗服务平台源码

    随着互联网技术的不断发展,越来越多的传统行业开始拥抱互联网,实现线上线下融合。推拿按摩作为人们日常保健、治疗疾病的一种方式,也在不断探索与互联网的结合。 本文将介绍基于互联网思维的家庭同城预约推拿系统到家服务平台的源码如何实现。 一、系统介绍 家

    2024年02月14日
    浏览(50)
  • 基于“互联网+ 服务供应链”的汽车道路救援系统对策分析

    1。 建立“互联网+服务供应链”背景下汽车道路救援系统 基于互联网的汽车道路救援,两级服务供应链结构是由服务提供商、服务 集成商和客户组成。“互联网+服务供应链”背景下汽车道路救援系统组成, 它是一种 B2B2C 的形式,与前述传统汽车道路救援 B2B2C 模式有所不同

    2024年02月10日
    浏览(39)
  • 华为云弹性公网IP服务,为企业敲开互联网大门

    在互联网时代,网络是建立万物互联的桥梁,能让我们人在家中坐,天下事尽知。而用户对公共信息进行访问和浏览时,就需要一个公网IP地址,相应地,网站要提供服务也同样需要公网IP来实现。公网已经成为生活中不可或缺的一部分了。随着云计算服务的日益成熟,越来越

    2024年02月11日
    浏览(45)
  • 宝塔面板搭建Discuz论坛并发布互联网访问【无需云服务器】

    ✨个人主页:bit me👇 转载自cpolar极点云的文章:Linux宝塔面板搭建Discuz论坛,并公网远程访问【内网穿透】 Crossday Discuz! Board(以下简称 Discuz!)是一套通用的社区论坛软件系统,用户可以在不需要任何编程的基础上,通过简单的设置和安装,在互联网上搭建起具备完善功能

    2024年02月03日
    浏览(62)
  • 互联网编程之多线程/线程池TCP服务器端程序设计

    目录 需求 多线程TCP服务器 线程池TCP服务器 测试 日志模块 多线程TCP服务器(30分): 设计编写一个TCP服务器端程序,需使用多线程处理客户端的连接请求。客户端与服务器端之间的通信内容,以及服务器端的处理功能等可自由设计拓展,无特别限制和要求。 线程池TCP服务器

    2024年02月11日
    浏览(40)
  • 互联网大厂技术-HTTP请求-Springboot整合Feign更优雅地实现Http服务调用

    目录 一、SpringBoot快速整合Feign 1.添加Pom依赖 2.启动类添加注解 3.引用Feign服务 二、为请求添加Header的3种方式 1.添加固定header 2.通过接口签名添加header 3.动态添加header 三、为请求添加超时配置 1.默认超时时间 3.超时异常 4.全局超时配置 5.为单个服务设置超时配置 四、为请求配

    2024年02月04日
    浏览(58)
  • 分享本周所学——在Windows上搭建自己的Git服务器并支持互联网远程访问

            大家好,欢迎来到《分享本周所学》第十期。本人是一名人工智能初学者(虽然我最近写的东西都跟人工智能没什么关系),刚刚上完大一。之前想跟同学搞项目,我的学校自己有一个GitLab服务器,于是就把项目存在上面,但是后来收到学校邮件说学校服务器不允

    2024年02月09日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包