首页 > 其他分享 >SpringCloud架构之注册中心/负载均衡组件搭建重点步骤

SpringCloud架构之注册中心/负载均衡组件搭建重点步骤

时间:2023-04-16 14:35:59浏览次数:38  
标签:负载 SpringCloud nacos alibaba 实例 spring 组件 com cloud

我的GitHub地址:https://github.com/hiders1/cloud-demo

GitHub的使用见:https://www.cnblogs.com/jinjiyese153/p/6796668.html

VSC不见的话参考:https://blog.csdn.net/Ericjim/article/details/129215479

 

Nacos服务注册中心

下载安装:

1:Window系统远程下载GitHub地址:https://github.com/alibaba/nacos

2:下载解压之后,在bin的目录之下,地址栏输入cmd,输入命令:startup.cmd -m standalone启动即可(原因参考:https://www.cnblogs.com/jianping2012/p/13523456.html)

 浏览器用控制台地址网页登录,账号密码都是:nacos

接下来是服务注册到naco:

1:父工程pom.xml中添加spring-cloud-alibaba的管理依赖

<!--nacos的管理依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.5.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>

2:添加nacos的客户端依赖

<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

 远程调用

String url = "http://userservice/user/" + order.getUserId();//服务名称userservice
// 2.2.发送http请求,实现远程调用
User user = restTemplate.getForObject(url, User.class);

配置集群属性

spring:
cloud:
nacos:
discovery:
cluster-name: HZ #集群名称

负载均衡Ribbon优先访集群本地

userservice: #服务名称
ribbon:
NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule # 负载均衡规则

权重配置
进入nacos页面,详情——编辑——修改权重

环境隔离namespace

 namespace>Group>Service/Data

新建namespace

配置

spring:
cloud:
nacos:
server-addr: localhost:8848 # nacos服务地址
discovery:
cluster-name: HZ
namespace: 2b5e168e-ef79-4f2b-8470-affcbce058d0 # dev环境

 隔离成功后(左上角有public[系统默认],和dev这个环境,说明已经隔离开来)

 这个时候远程调用访问就会报错(不再同一个环境了)

 临时实例和非临时实例

与Euraka先比,Nacos区别主要在于

1:临时健康的检查上,nacos会把服务提供者划分为临时实例和非临时实例(默认为true)

临时实例:心跳检测,每隔一段时间发送一次心跳给nacos(频率快些),心跳不跳时候,nacos从服务列表将之剔除

非临时实例(永久实例):不会做心跳,nacos自动发请求询问,服务挂了,nacos不会把该实例从列表剔除,等服务恢复健康

2:服务消费者

Euraka采用的是定时拉取pull,30s内有服务提供者挂了,就可能出现问题,服务更新效率差、不及时

nacos采用pull+push结合,nacos发现有消息(服务提供者)挂了,立马发送消息给服务消费者,服务消费者就立马更新消息,更及时些

 

 非临时实例的配置

spring:
cloud:
nacos:
discovery:
ephemeral: false # 是否是临时实例



标签:负载,SpringCloud,nacos,alibaba,实例,spring,组件,com,cloud
From: https://www.cnblogs.com/-emo/p/17321170.html

相关文章

  • nginx自定义负载均衡及根据cpu运行自定义负载均衡
    转载请注明出处:1.nginx如何自定义负载均衡在Nginx中,可以通过配置文件自定义负载均衡策略。具体步骤如下:首先,在Nginx配置文件中定义一个upstream模块,并设置负载均衡策略和后端服务器列表,例如:upstreammyapp{serverbackend1.example.comweight=3;server......
  • react+ts+hook封装一个table分页组件(建议收藏,直接使用)
    前言大家好我是歌谣我是一名坚持写博客四年的博主最好的种树是十年前其次是现在,今天继续对antdesigntable的分页封装进行讲解封装准备(多看官网)jsx风格的api<><Table<User>columns={columns}dataSource={data}/>/*使用JSX风格的API*/<Table<User>data......
  • 远程调用之负载均衡Ribbon-No instances available for localhost ribbon
    如果使用的是多个实例情况,远程调用就不能写地址,否则远程调用报Noinstancesavailableforlocalhostribbon而是应该写成服务的名称 ......
  • 【Spring Cloud】第二代Spring Cloud核心组件
    第一代SpringCloud(主要是 SpringCloudNetflix)很多组件已经进入停更维护模式。第二代SpringCloud核心组件主要以SpringCloudAlibaba为主,SpringCloudAlibaba是由一些阿里巴巴的开源组件和云产品组成的,2018年,SpringCloudAlibaba正式入住了SpringCloud官方孵化器......
  • 免费的HwBasicLib4S7-200Smart组件库
    HwBasicLib是我们旗下的通用组件库,目前包含了S7-1200/1500+TIAWinCC和经典WinCC等多款产品。今天介绍的是其中的一款HwBasicLib4S7-200Smart组件库。该库是从最开始的HwBasicLib4S7-200组件库升级而来。因为我们已经有好几年不再使用S7-200Smart这款PLC了,所以决定把它免费。......
  • springcloud或springboot项目服务启动多个实例
    如果没有service,可以快捷键Alt+8,service标签没有信息,则.idea目录下的workspace.xml下替换或添加融化信息内容<componentname="RunDashboard"><optionname="configurationTypes"><set><optionvalue="SpringBootApplicationConfigurationType"/>&......
  • ant design table实现上下行拖拽功能(类组件)
    前言最好的种树是十年前,其次是现在。歌谣每天一个前端小知识提醒你改好好学习了知乎博主csdn博主b站博主放弃很容易但是坚持一定很酷我是歌谣喜欢就一键三连咯你得点赞是对歌谣最大的鼓励微信公众号关注前端小歌谣起始首先刚开始知道要书写一个这样的功能我的内心......
  • SpringCloud
    1.nacos除了配置中心还能干什么除了作为配置中心之外,nacos还可以实现服务注册和发现功能。服务提供者可以在启动时将自己注册到nacos中,并声明自己提供的服务名、ip地址和端口等信息。而服务消费者则可以通过nacos查询到相应的服务提供者,并直接调用其提供的服务。此外,nacos还具备......
  • 新手适合用什么Vue组件库?TinyVue组件库好用吗?
    对于刚接触前端领域的同学,绕不开选择组件库的问题,常见的Vue组件库如下:Vuetify组件库。一个纯手工精心打造的Material样式的组件库。文档全,但是纯英文的官网还是会让一些同学望而却步。2016年发布。Ant-design-vue组件库。AntDesign的Vue实现,组件的风格与AntDesign保......
  • 利用AntDesign中a-tree和checkbox构造组织单位人员树选择组件
    业务效果图核心代码<template><divclass="select-container"><a-modalv-model:visible="visible"@ok="handleOk"@cancel="handleCancel"width="1500px"><template#title>......