代码编织梦想

一、微服务是什么

  1. 微化拆分: 拒绝大型单体应用,基于业务边界进行服务微化拆分;
  2. 独立部署: 通过完全自动化部署机制来独立部署
  3. 独立运行: 各个服务独立运行在自己的进程中;
  4. 轻量级通信: 微服务之间使用轻量级通信机制,通常是 Http API。

二、分布式是什么

  1. 分布式系统: 若干独立计算机的集合,对用户像单个相关系统;
  2. 分布式: 将不同的业务分布在不同的地方;
  3. 集群: 几台服务器集中在一起,每台服务器都完成相同业务,保证系统稳定性、可靠性。

三、远程调用

  1. 是什么: 分布式系统中,各个服务可能位于不同主机,服务之间需要相互调用,称之为远程调用。
  2. 怎么做: Spring Cloud 使用 Http + JSON的方式完成远程调用

四、负载均衡

gateway —> ribbon

五、服务注册中心

  1. 服务注册: 服务注册是指将服务实例的网络位置(如IP地址和端口号)注册到服务注册中心,以便其他服务可以发现和调用它。 a. 微服务通过添加依赖(nacos, actuator) b. 编写配置文件(application.yml) c.
    @EnableDiscoveryClient注解的作用是启用服务发现功能,将应用程序注册到服务注册中心,以便其他服务可以发现和调用它。
  1. 服务发现: 服务发现是指在运行时动态地发现和调用其他服务的能力。通过服务发现,服务可以从服务注册中心获取其他服务实例的网络位置信息,从而实现服务之间的通信和协作。
    a.
    服务发现就是在一个微服务架构中,通过使用RestTemplate或者Feign等工具来调用另一个服务。通过服务发现,服务可以动态地发现其他服务的实例,并且可以通过网络调用与这些服务进行通信。这种方式使得微服务之间可以相互协作,实现了分布式系统中的服务调用和协同工作。
    b. 其实可以这样理解:服务发现就是,使用RestTemplate 或者 Feign 等工具,通过 http api
    通信机制,结合微服务名称,从注册中心,调用另外一个微服务 c. 有什么用:实现微服务相互调用,实现微服务负载均衡

六、配置中心

  1. 为什么要使用配置中心:
    a. 在使用集群的时候,同一个微服务需要部署在多台主机上,此时,这里的每个微服务都是相同的,有相同的配置文件。当需要修改配置文件时,产生大量重复性工作
    b. 配置中心可以实现自动化配置文件。通过配置中心,您可以将应用程序的配置信息集中管理,并且可以实现配置文件的动态更新和自动刷新。这意味着,当您在配置中心修改了配置信息后,应用程序可以自动获取最新的配置,无需重启或手动刷新。
  1. 怎么使用配置中心
    a. 添加Maven依赖:在项目的pom.xml文件中添加nacos-client的Maven依赖。
    b. 在应用的配置文件中添加配置中心信息:在application.yml或application.properties中添加Nacos配置中心的相关配置信息。
    c. 将配置上传到Nacos配置中心
    d. Nacos客户端可以动态地读取Nacos配置中心中的配置信息。

七、服务熔断

  1. 是什么: 服务熔断是一种微服务架构中的容错机制,用于防止故障在分布式系统蔓延(服务链式调用,上游服务阻塞,导致下游服务全部阻塞)。服务熔断机制设置服务失败阈值,当超过这个阈值时,开启断路保护机制,告诉后来的机制不要来调用此服务,而从本地直接返回默认的数据。过一段时间后逐渐把请求放进来,直到服务失败次数低于阈值。提升整个系统的稳定性。
  1. 怎么做:
    a. 引入pom依赖,编写application配置,主启动类激活服务发现
    b. 在 sentinel 服务中配置熔断规则
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_41899098/article/details/139015052

创业公司的我们,微服务为什么不迷信spring-cloud_程序猿总指挥的博客-爱代码爱编程

业务背景 我们是一家SaaS软件研发公司,我们服务的客户主要是企业为主,对网站速度,网站安全性,以及交易吞吞吐有要求,经常出现平常网站压力很小,做一波活动,压力增加成百上千倍(最担心客户广告投放过猛,直接压垮我们系统),这种是家常便饭,各种活动走一波,我们压力山大,对系统性能和可靠性要求很高。说简单的点, 前端页面灵活多变,后端系统不只是要安全可靠,还要

微服务架构在kubernetes上的实现-爱代码爱编程

我们讨论了最近的微服务趋势,以及伴随微服务架构可能出现的一些复杂问题。在接下来的几周内,我们将深入探讨这个问题。我们将探讨不同设计选择中固有的权衡,以及可以采取哪些措施来缓解这些问题。 然而,在深入之前,我认为花一点时间来了解当今微服务中的最新技术状态是有意义的。我们首先回顾一下领先的容器管理和服务编排框架Kubernetes。 如今,Kubernete

分布式服务dubbo的前世今生_lemon-的博客-爱代码爱编程

分布式服务Dubbo的前世今生   前言: Dubbo是一个高性能服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案,使得应用可通过高性能RPC实现服务的输出和输入功能,和Spring框架可以无缝集成。 SOA与服务治理 SOA(面向服务的体系结构)概念由来已久,在10多年前便开始进入到我们广大软件开发者的视线

mvc理解及spring三件套+分布式应用程序和传统应用程序区别(工程结构)-爱代码爱编程

我们来看看整个工程的结构: web-mvc ├── pom.xml └── src └── main ├── java │   └── com │   └── itranswarp │   └── learnjava │  

微服务架构及其最重要的 10 个设计模式!-爱代码爱编程

微信搜索逆锋起笔关注后回复编程pdf 领取编程大佬们所推荐的 23 种编程资料! 来源:Java日知录 软件设计模式是解决软件设计中常见问题的通用、可复用的解决方案。设计模式让我们可以分享通用词汇并使用经实战检验的方案,以免重复造轮子。现在,我将介绍一系列设计模式来实现这些最佳实践。 微服务架构的设计模式 独享数据库(Database pe

Java学习(中)-爱代码爱编程

正则表达式 正则表达式简介 在了解正则表达式之前,我们先看几个非常常见的问题: 如何判断字符串是否是有效的电话号码?例如:010-1234567,123ABC456,13510001000等; 如何判断字符串是否是有效的电子邮件地址?例如:test@example.com,test#example等; 如何判断字符串是否是有效的时间?例

一文读懂微服务架构的分解设计!-爱代码爱编程

点击上方“Java基基”,选择“设为星标” 做积极的人,而不是积极废人! 每天 14:00 更新文章,每天掉亿点点头发... 源码精品专栏  原创 | Java 2021 超神之路,很肝~中文详细注释的开源项目RPC 框架 Dubbo 源码解析网络应用框架 Netty 源码解析消息中间件 RocketMQ 源码解析数据库中间件 Shardi

微服务架构最重要的 10 个设计模式!_微服务架构设计模式-爱代码爱编程

软件设计模式是解决软件设计中常见问题的通用、可复用的解决方案。设计模式让我们可以分享通用词汇并使用经实战检验的方案,以免重复造轮子。现在,我将介绍一系列设计模式来实现这些最佳实践。   微服务架构的设计模式 独享数据库(Database per Microservice) 当一家公司将大型单体系统替换成一组微服务,首先要面临的最重要决策是关于数据库

微服务最重要的10个设计模式_微服务化设计-爱代码爱编程

从软件开发早期(1960 年代)开始,应对大型软件系统中的复杂性一直是一项令人生畏的任务。多年来为了应对软件系统的复杂性,软件工程师和架构师们做了许多尝试:David Parnas 的模块化和封装 (1972), Edsger W. Dijkstra (1974)的关注点分离以及 SOA(1988) 他们都是使用分而治之这项成熟的传统技术来应对大型系统的