首页 > 其他分享 >分布式微服务

分布式微服务

时间:2024-08-11 18:16:59浏览次数:8  
标签:式微 服务 nacos 分布 注册 sentinel 窗口 侦测

1. 你对微服务的理解

微服务是一种架构思想, 将应用程序拆分为小型、独立的服务,每个服务器负责处理一项特定业务功能, 服务之间松耦合、独立部署和运行。
可以使开发人员更专注于各个服务的开发和测试,降低了 系统的复杂性,提高了服务的可维护性和可扩展性,每个服务可以根据具体的业务需求选择合适的语言和工具,
提高系统的灵活性,服务之间通过轻量级的通信方式进行通信,每个服务都可以独立扩展和升级,提高了可靠性和可用性
总体来说,微服务使得程序更加灵活、可维护和可扩展,但是同时也使得需要的开发人员变多

2. openFeign 的使用

在pom 中添加相关依赖,启动类添加 @EnableFeignClients, 用于扫描FeignClient, 通过basePackage 指定FeignClient 的路径
在对应的接口中添加FeignClient 注解, value 为服务名, path 指定前缀路径, 在具体方法添加mvc 相关注解, 例如@GetMapping

2.1 openFeign 远程调用原理

在程序运行时, openFeign 会利用java的动态代理机制,基于定义的接口生成一个代理对象,这个代理对象会拦截对接口方法的调用, 并负责后续的远程调用逻辑
构建好请求后,会借助底层的http客户端, 通常是ribbot 将请求发送到远程服务的指定地址, ribbon 可以实现负载均衡,选择合适的服务实例来发送请求
接收到远程服务返回的响应后,openFeign 会按照约定的规则对响应进行解析,如果是json 格式,会转换为对应的java 对象,并最终解析后返回给调用方

3. nacos 和 sentinel 的使用

nacos 是阿里开源的服务注册与发现,动态配置的功能组件
nacos 宕机后, 5秒之内还是可以通过缓存获取到对应的下游服务的, 因为nacos 的心跳机制是5秒, 有5秒的缓存
nacos 可以通过框架集成, 通过@EnbaleDiscoveryClient 实现服务的自动注册
可以通过sdk 手动注册、可以通过命令行工具,手动注册,
当客户端向nacos 注册成功之后,会每5秒向其发送一次心跳,当nacos过了15秒依旧没有收到心跳,则会认为当前服务处于不健康状态,30秒每条收到心跳,则会认为当前服务已经宕机,就会将其剔除
同时nacos 也会进行自主侦测服务的健康情况,每20秒发送一次侦测,当侦测不到时,nacos 会将服务标记为不健康,但是不会进行剔除

3.1 nacos 自动刷新

nacos 的自动刷新主要是通过 @RefreshScope 注解实现的
当在类上添加 @RefreshScope 注解时, 当Nacos 中的注解发生改变后, 会通过发送 /actuator/refresh 端点的http 请求来触发配置的重新加载

3.2 nacos、eureka、zk注册中心的区别

nacos、eureka 和 zk 都是常用的注册中心,只是在功能上有一些不同
nacos 除了是注册中心,还提供了配置管理、服务发现等功能,其部署可以选择AP和CP,
eureka 

标签:式微,服务,nacos,分布,注册,sentinel,窗口,侦测
From: https://www.cnblogs.com/antordragon/p/18353658

相关文章

  • FreeSWITCH对接http协议的tts服务
    操作系统:CentOS7.6_x64FreeSWITCH版本:1.10.9 FreeSWITCH里面有个mod_tts_commandline模块,可以用来对接http协议的tts服务,今天整理下这方面的笔记,并提供相关演示效果及资源下载。我将从以下几个方面进行展开:自建tts服务模拟测试环境编译及配置mod_tts_commandl......
  • Spring Cloud全解析:注册中心之Eureka服务获取和服务续约
    服务获取和服务续约eureka客户端通过定时任务的方式进行服务获取和服务续约,在com.netflix.discovery.DiscoveryClient类中,启动了两个定时任务来进行处理privatevoidinitScheduledTasks(){//是否需要拉取if(clientConfig.shouldFetchRegistry()){//......
  • 服务器导航页
    导航页配置SunPanelmkdir-p~/sun-panel/confpodmanpulldocker.io/hslr/sun-panel:latestsudodockerrun-d--restart=always-p3002:3002-v~/sun-panel/conf:/app/conf-v/var/run/docker.sock:/var/run/docker.sock--namesun-paneldocker.io/hslr/sun-panel......
  • zabbix服务器和客户端连接配置
    zabbix服务器和客户端连接配置1.安装环境说明本例中安装zabbix开源软件和zabbix运行所需的中间件和数据库apache、php和postgres,软件版本信息如下:软件版本zabbixZabbix6.4.0apachehttpd-2.4.57aprapr-1.7.4apr-util1.6.3php8.2.6sqlite-autoconf......
  • 使用grpc开发RPC服务
    grpc简介gRPC是谷歌开源的一款跨平台、高性能的RPC框架,笔者目前主要使用它来进行后端微服务的开发。可能会有的同学对RPC不太熟悉,其实在笔者看来,RPC和HTTP并无多大的区别都是一种调用方式,区别则是在于RPC会限制传输协议、传输的参数等,以此换取高效的传输流程,比如grpc就使用的是g......
  • 一文搞定Ubuntu服务器深度学习环境配置(超详细包括换源)
    1.首先配置zshZsh(Zshell)是一种功能强大的命令行解释器,较Bash(BourneAgainShell)有以下优势:强大的自动补全:Zsh不仅支持命令和文件的自动补全,还支持参数、路径以及Git命令的补全,使操作更高效。灵活的定制:Zsh允许用户灵活自定义提示符,显示如时间、Git状态等信息。使用O......
  • SSH(Secure Shell)服务配置
    SSH(SecureShell)服务配置是一个涉及多个步骤和配置项的过程,旨在确保远程登录和数据传输的安全性。以下是对SSH服务配置的详细阐述,包括基本概念、配置步骤、常用选项以及最佳实践。一、SSH基本概念SSH是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。S......
  • grpc-gateway:grpc转换为http协议对外提供服务
    使用grpc的优点很多,二进制的数据可以加快传输速度,基于http2的多路复用可以减少服务之间的连接次数,和函数一样的调用方式也有效的提升了开发效率。不过使用grpc也会面临一个问题,我们的微服务对外一定是要提供Restful接口的,如果内部调用使用grpc,在某些情况下要同时提供一个功能的两......
  • 基于腾讯云高性能应用服务 HAI 搭建并使用 AI 模型 StableDiffusion 进行文生图
    基于腾讯云高性能应用服务HAI搭建并使用AI模型StableDiffusion进行文生图HAI是什么高性能应用服务HAI与传统GPU云服务器区别使用高性能应用服务HAI一键部署StableDiffusionAIGC创建高性能应用服务启动HAI实例进行文生图快速构建StableDiffusion文生......
  • Azure服务器配置
    获取服务器与基础配置学生账户“免费服务”创建"Ubuntu服务"。创建时打开所有默认端口ssh链接后sudoaptupdatesudoaptinstallcockpitsudoaptinstallcockpit-podmannet-tools网络打开入站规则,允许9090端口TCP关闭网络服务22端口阿里云的ddns参照:https://d......