nacos之负载均衡
简介
随着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
- 操作也基本相同,但是注意几点。
- 主运行类上添加两个注解:
@EnableDiscoveryClient
@EnableFeignClients
- 主运行类上添加两个注解:
- 端口号改为8081,服务名称改为user-consumer
- 控制器编写需要引入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之负载均衡相关推荐
- SpringBoot 整合 Spring Cloud Alibaba Nacos 连通性+负载均衡
文章目录 一.整合版本说明 1. 毕业版本依赖关系(推荐使用) 2. 组件版本关系 3. 演示版本 二.整合实战 2.1. 聚合模块设计 2.2. 创建聚合parent 2.3. 依次创建子项目 三. ...
- tedu 四阶段springcloud学习day02学习总结(idea连接数据库/nacos远端调用及负载均衡策略/Feign方式远端调用)
目录 查看接口有哪些实现类 ctrl + h 一.cmd方式启动Nacos的命令 二.在IDEA中打开MySQL数据库 第一步: 打开View中数据库的工具栏 第二步:添加数据库为MySql 第三步: ...
- sql server配置管理器在哪里看ip_微服务管理平台nacos虚拟ip负载均衡集群模式搭建...
一.Nacos简介 Nacos是用于微服务管理的平台,其核心功能是服务注册与发现.服务配置管理. Nacos作为服务注册发现组件,可以替换Spring Cloud应用中传统的服务注册于发现组件,如:E ...
- nacos如何做注册中心?服务注册之后自带负载均衡,这一篇文章就够了!
目录 服务提供者 pom文件要加上: 服务提供者的yml配置: 服务提供者主启动类: 启动nacos之后,启动服务提供者 服务消费者 服务消费者pom要加上: 消费者yml配置: 消费者control ...
- SpringCloud微服务架构,Spring Cloud 服务治理(Eureka,Consul,Nacos),Ribbon 客户端负载均衡,RestTemplate与OpenFeign实现远程调用
什么是SpringCloud 微服务架构 • "微服务"一词源于 Martin Fowler的名为 Microservices的博文,可以在他的官方博客上找到 http://mar ...
- 微服务2——服务的注册,调用(Nacos服务注册中心+服务调用+调用负载均衡)sca-comsumersca-provider
一.Nacos的安装和构建 以及启动 其官网地址如下: Nacos官网 1.安装前提: 第一:确保你电脑已配置JAVA_HOME环境变量(Nacos启动时需要),例如: 第二:确保你的MySQL版本 ...
- jenkins pipeline slave部署nacos负载均衡平滑升级
1.背景 公司有一个项目使用nacos作为服务注册和配置中心.老板希望项目更新升级过程尽量不影响用户使用,特申请一台服务器作负载均衡服务器. 服务器 部署内容 172.16.0.14 nginx.na ...
- nacos简易实现负载均衡
目录 一.什么是Nacos? 二.Nacos下载和安装 1. 使用Windows启动 2. 验证nacos是否成功启动 三.Nacos Discovery服务注册/发现 四.简易实现负载均衡 1. 注 ...
- Springcloud、Nacos 服务注册、负载均衡Ribbon、http客户端Feign
SpringCloud是基于SpringBoot的一整套实现微服务的框架.它提供了微服务开发所需的配置管理.服务发现.断路器.智能路由.微代理.控制总线.全局锁.决策竞选.分布式会话和集群状态管理等组 ...
最新文章
- strrchr 字符查找函数
- 产品下级分类显示太宽了,请问在哪调整?
- SPA单页应用的优缺点
- Oracle触发器3-DDL触发器
- CString、string、char*的综合比较
- ios开发swift_10位Swift和iOS开发大师
- 远程计算机用户名win7,Win7远程桌面连接设置的方法
- js根据身份证 判断性别 出生、年龄、出生年月日
- EasyExcel(一)导入excel的分析监听器
- springboot生成二维码可扫描自定义内容
- 【spark2】【源码学习】【环境编译】在idea导入spark源码,执行example并debug
- 动画设计的12条基本原理
- 9.C++例2-10 输入一系列整数,统计出正整数个数i和负整数个数j,读入0则结束。
- MySql数据库中查看资源使用情况
- 关于.NET报表中图表控件线条颜色和粗细设置
- Deepin禁用usb声卡
- 与传统电商相比,微商城存在哪些优势?
- MateRS能不能升级鸿蒙,华为MateRS只是开胃菜:麒麟980+1536G+5G芯片,网友:确实很吓人!...
- jadeclipse安装
- 小白系列(1) | 计算机视觉之图像分类
热门文章
- 非递归实现二叉树的前序、中序、后序遍历
- R语言作图:数学公式
- excel补充操作技能2--vlookup函数、Match和Index函数、使用函数统计
- python输出古诗词_使用LSTM训练生成古诗模型,其中生成器可以指定生成风格进行输出...
- arduino 有什么优点
- android touch机制,细说Android事件传递机制(dispatchTouchEvent、onInterceptTouchEvent、onTouchEvent)...
- 调整手动曝光时间,使24色卡白色块(第19个色块)的最大曝光亮度为理论最大亮度的80%
- 【仿真】基于模糊优化的PID直流无刷电机控制研究
- 【Android】Android.bp实例之编译可执行程序
- php初始化对象菜鸟教程,菜鸟教程php面向对象