简介

随着Eureka宣告闭源,更多人开始转向Zookeeper和Nacos。Nacos不仅有着优秀
的注册中心,还拥有远程配置和服务总线的的功能,当前的功能已经远超Eureka,
后续发展不可估量。

快速开始

首先创建一个springboot项目,不需要引入依赖,删除src目录,修改pom文件。

  • 导入的依赖其实只需要nacos-discovery和spring-web就行了,这个demo里没有用到远程配置,所以nacos-config不需要

  • 因为要使用模块化开发,所以这个大的项目需要作为pom依赖,需要配置

<packaging>pom</packaging>
  • 然后在确定子项目的版本,需要有properties和dependencyManagement来进行版本控制

  • 之后因为需要创建多个模块,所以把需要创建的模块进行引入modules。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.5.RELEASE</version><relativePath/></parent><groupId>org.jgs2007</groupId><artifactId>sc-nacos-study</artifactId><version>0.0.1-SNAPSHOT</version><name>sc-nacos-study</name><description>Demo project for Spring Boot</description><packaging>pom</packaging><modules><module>user-consumer</module><module>user-provider</module><module>user-provider-2</module><module>common</module></modules><properties><java.version>1.8</java.version><spring-cloud.version>Hoxton.SR9</spring-cloud.version><spring-cloud-alibaba.version>2.2.3.RELEASE</spring-cloud-alibaba.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring-cloud-alibaba.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>
</project>

创建子模块

user-provider

  • 首先修改pom文件,将父项目的坐标引入,换成这样。
 <parent><groupId>org.jgs2007</groupId><artifactId>sc-nacos-study</artifactId><version>0.0.1-SNAPSHOT</version></parent>
  • 在运行类上添加注解@EnableDiscoveryClient
  • 更改配置文件格式为yml,添加nacos设置。设置该模块的端口号,名称和nacos地址。
server:port: 7071
spring:application:name: user-providercloud:nacos:discovery:server-addr: localhost:8848
  • 编写控制类方法,严格遵守restful接口开发规范
package org.jgs2007.scnacosstudy.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/*** @author sun* @Title:* @Description:* @date 2020-11-1720:32*/
@RestController
@RequestMapping("user")
public class UserController {@GetMappingpublic String list(){return "123";}
}

user-provider-2

  • 因为是集群,所以配置基本一致,只需要更改端口号即可,7072,为了结果展示明显,控制器返回的字符串改为“456”.

user-consumer

  • 操作也基本相同,但是注意几点。
    1. 主运行类上添加两个注解:
      @EnableDiscoveryClient
      @EnableFeignClients
    1. 端口号改为8081,服务名称改为user-consumer
    1. 控制器编写需要引入feignClient类,这是下一个模块的。
package org.jgs2007.scnacosstudy.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/*** @author sun* @Title:* @Description:* @date 2020-11-1720:32*/
@RestController
@RequestMapping("user")
public class UserController {@Autowiredprotected UserProviderClient userProviderClient;@RequestMapping("list")public String list(){return userProviderClient.list();}
}

common

common模块作为连接消费者和提供者的介质,所以配置有点不一样,只需要配置pom文件和编写控制器代码就行

  • 修改pom文件,引入OpenFeign依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.jgs2007</groupId><artifactId>sc-nacos-study</artifactId><version>0.0.1-SNAPSHOT</version></parent><artifactId>common</artifactId><version>0.0.1-SNAPSHOT</version><name>common</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency></dependencies>
</project>
  • 编写代码,需要匹配provider模块的写法,返回类型必须保持一致。
package org.jgs2007.scnacosstudy.controller;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
/*** @author sun* @Title:* @Description:* @date 2020-11-1720:46*/
@FeignClient(value = "user-provider", path = "user")
public interface UserProviderClient {@GetMappingString list();
}

启动nacos

  • 下载并解压好nacos文件,进入到bin目录下运行cmd指令。弹出窗口后输入startup.cmd -m standalone,启动nacos。
  • 然后启动所有服务,启动成功会显示已完成的服务。

  • 最后运行localhost:8081/user/list,运行成功会显示。
  • 再次运行

nacos注册服务和轮询功能完成。

nacos之负载均衡相关推荐

  1. SpringBoot 整合 Spring Cloud Alibaba Nacos 连通性+负载均衡

    文章目录 一.整合版本说明 1. 毕业版本依赖关系(推荐使用) 2. 组件版本关系 3. 演示版本 二.整合实战 2.1. 聚合模块设计 2.2. 创建聚合parent 2.3. 依次创建子项目 三. ...

  2. tedu 四阶段springcloud学习day02学习总结(idea连接数据库/nacos远端调用及负载均衡策略/Feign方式远端调用)

    目录 查看接口有哪些实现类 ctrl + h 一.cmd方式启动Nacos的命令 二.在IDEA中打开MySQL数据库 第一步: 打开View中数据库的工具栏 第二步:添加数据库为MySql 第三步: ...

  3. sql server配置管理器在哪里看ip_微服务管理平台nacos虚拟ip负载均衡集群模式搭建...

    一.Nacos简介 Nacos是用于微服务管理的平台,其核心功能是服务注册与发现.服务配置管理. Nacos作为服务注册发现组件,可以替换Spring Cloud应用中传统的服务注册于发现组件,如:E ...

  4. nacos如何做注册中心?服务注册之后自带负载均衡,这一篇文章就够了!

    目录 服务提供者 pom文件要加上: 服务提供者的yml配置: 服务提供者主启动类: 启动nacos之后,启动服务提供者 服务消费者 服务消费者pom要加上: 消费者yml配置: 消费者control ...

  5. SpringCloud微服务架构,Spring Cloud 服务治理(Eureka,Consul,Nacos),Ribbon 客户端负载均衡,RestTemplate与OpenFeign实现远程调用

    什么是SpringCloud 微服务架构 • "微服务"一词源于 Martin Fowler的名为 Microservices的博文,可以在他的官方博客上找到 http://mar ...

  6. 微服务2——服务的注册,调用(Nacos服务注册中心+服务调用+调用负载均衡)sca-comsumersca-provider

    一.Nacos的安装和构建  以及启动 其官网地址如下: Nacos官网 1.安装前提: 第一:确保你电脑已配置JAVA_HOME环境变量(Nacos启动时需要),例如: 第二:确保你的MySQL版本 ...

  7. jenkins pipeline slave部署nacos负载均衡平滑升级

    1.背景 公司有一个项目使用nacos作为服务注册和配置中心.老板希望项目更新升级过程尽量不影响用户使用,特申请一台服务器作负载均衡服务器. 服务器 部署内容 172.16.0.14 nginx.na ...

  8. nacos简易实现负载均衡

    目录 一.什么是Nacos? 二.Nacos下载和安装 1. 使用Windows启动 2. 验证nacos是否成功启动 三.Nacos Discovery服务注册/发现 四.简易实现负载均衡 1. 注 ...

  9. Springcloud、Nacos 服务注册、负载均衡Ribbon、http客户端Feign

    SpringCloud是基于SpringBoot的一整套实现微服务的框架.它提供了微服务开发所需的配置管理.服务发现.断路器.智能路由.微代理.控制总线.全局锁.决策竞选.分布式会话和集群状态管理等组 ...

最新文章

  1. strrchr 字符查找函数
  2. 产品下级分类显示太宽了,请问在哪调整?
  3. SPA单页应用的优缺点
  4. Oracle触发器3-DDL触发器
  5. CString、string、char*的综合比较
  6. ios开发swift_10位Swift和iOS开发大师
  7. 远程计算机用户名win7,Win7远程桌面连接设置的方法
  8. js根据身份证 判断性别 出生、年龄、出生年月日
  9. EasyExcel(一)导入excel的分析监听器
  10. springboot生成二维码可扫描自定义内容
  11. 【spark2】【源码学习】【环境编译】在idea导入spark源码,执行example并debug
  12. 动画设计的12条基本原理
  13. 9.C++例2-10 输入一系列整数,统计出正整数个数i和负整数个数j,读入0则结束。
  14. MySql数据库中查看资源使用情况
  15. 关于.NET报表中图表控件线条颜色和粗细设置
  16. Deepin禁用usb声卡
  17. 与传统电商相比,微商城存在哪些优势?
  18. MateRS能不能升级鸿蒙,华为MateRS只是开胃菜:麒麟980+1536G+5G芯片,网友:确实很吓人!...
  19. jadeclipse安装
  20. 小白系列(1) | 计算机视觉之图像分类

热门文章

  1. 非递归实现二叉树的前序、中序、后序遍历
  2. R语言作图:数学公式
  3. excel补充操作技能2--vlookup函数、Match和Index函数、使用函数统计
  4. python输出古诗词_使用LSTM训练生成古诗模型,其中生成器可以指定生成风格进行输出...
  5. arduino 有什么优点
  6. android touch机制,细说Android事件传递机制(dispatchTouchEvent、onInterceptTouchEvent、onTouchEvent)...
  7. 调整手动曝光时间,使24色卡白色块(第19个色块)的最大曝光亮度为理论最大亮度的80%
  8. 【仿真】基于模糊优化的PID直流无刷电机控制研究
  9. 【Android】Android.bp实例之编译可执行程序
  10. php初始化对象菜鸟教程,菜鸟教程php面向对象