博客
关于我
Nacos作为服务注册中心演示
阅读量:115 次
发布时间:2019-02-26

本文共 4036 字,大约阅读时间需要 13 分钟。

基于 Nacos 的服务提供者与消费者配置

服务提供者配置

1. 模块创建

在父工程下新建一个module,命名为 cloudalibaba-provider-payment-9001

2. 依赖项添加

在项目的 pom.xml 中添加以下依赖:

com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-discovery

3. 服务注册配置

application.yml 中添加以下内容:

server:    port: 9001spring:    application:        name: nacos-payment-provider    cloud:        nacos:            discovery:                server-addr: 172.28.129.83:8848            management:                endpoints:                    web:                        exposure:                            include: '*'

4. 主启动类

创建一个主启动类 PaymentApplication9001

import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.client.discovery.EnableDiscoveryClient;@SpringBootApplication@EnableDiscoveryClientpublic class PaymentApplication9001 {    public static void main(String[] args) {        SpringApplication.run(PaymentApplication9001.class, args);    }}

5. 业务接口开发

创建 PaymentController

import org.springframework.beans.factory.annotation.Value;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class PaymentController {    @Value("${server.port}")    private String serverPort;    @GetMapping(value = "/payment/nacos/{id}")    public String getPayment(@PathVariable("id") Integer id) {        return "nacos registry, serverPort: " + serverPort + "\t id=" + id;    }}

服务消费者配置

1. 模块创建

在父工程下新建一个module,命名为 cloudalibaba-provider-payment-9002

2. 服务发现配置

修改 application.yml 中的端口号为 9002,并保留服务发现地址:

server:    port: 9002spring:    application:        name: nacos-payment-provider-9002    cloud:        nacos:            discovery:                server-addr: 172.28.129.83:8848

3. 主启动类

创建一个主启动类 PaymentApplication9002

import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.client.discovery.EnableDiscoveryClient;@SpringBootApplication@EnableDiscoveryClientpublic class PaymentApplication9002 {    public static void main(String[] args) {        SpringApplication.run(PaymentApplication9002.class, args);    }}

负载均衡演示

1. 消费者配置

新建一个module,命名为 cloudalibaba-consumer-nacos-order-83

2. 服务发现配置

application.yml 中添加以下内容:

server:    port: 83spring:    application:        name: nacos-order-consumer    cloud:        nacos:            discovery:                server-addr: 172.28.129.83:8848            service-url:                nacos-user-service: http://nacos-payment-provider

3. 负载均衡实现

创建 ApplicationContextConfig

import org.springframework.cloud.client.loadbalancer.LoadBalanced;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.client.RestTemplate;@Configurationpublic class ApplicationContextConfig {    @Bean    @LoadBalanced    public RestTemplate restTemplate() {        return new RestTemplate();    }}

创建 OrderNacosController

import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Value;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RestController;import org.springframework.web.client.RestTemplate;import javax.annotation.Resource;@RestController@Slf4jpublic class OrderNacosController {    @Resource    private RestTemplate restTemplate;    @Value("${service-url.nacos-user-service}")    private String serverURL;    @GetMapping(value = "/consumer/payment/nacos/{id}")    public String paymentInfo(@PathVariable("id") Long id) {        log.info("请求路径: /consumer/payment/nacos/{}", id);        return restTemplate.getForObject(serverURL + "/payment/nacos/" + id, String.class);    }}

4. 测试验证

通过访问 http://localhost:83/consumer/payment/nacos/1,可以看到服务请求会自动切换到不同提供者的实例,说明 Nacos 已成功进行负载均衡。

转载地址:http://jhfk.baihongyu.com/

你可能感兴趣的文章
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
查看>>
NIFI同步MySql数据_到SqlServer_错误_驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server_Navicat连接SqlServer---大数据之Nifi工作笔记0047
查看>>
Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066
查看>>
NIFI大数据进阶_离线同步MySql数据到HDFS_02_实际操作_splitjson处理器_puthdfs处理器_querydatabasetable处理器---大数据之Nifi工作笔记0030
查看>>
NIFI大数据进阶_连接与关系_设置数据流负载均衡_设置背压_设置展现弯曲_介绍以及实际操作---大数据之Nifi工作笔记0027
查看>>
NIFI数据库同步_多表_特定表同时同步_实际操作_MySqlToMysql_可推广到其他数据库_Postgresql_Hbase_SqlServer等----大数据之Nifi工作笔记0053
查看>>
NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南001---大数据之Nifi工作笔记0068
查看>>
NIFI集群_内存溢出_CPU占用100%修复_GC overhead limit exceeded_NIFI: out of memory error ---大数据之Nifi工作笔记0017
查看>>
NIFI集群_队列Queue中数据无法清空_清除队列数据报错_无法删除queue_解决_集群中机器交替重启删除---大数据之Nifi工作笔记0061
查看>>
NIH发布包含10600张CT图像数据库 为AI算法测试铺路
查看>>
Nim教程【十二】
查看>>
Nim游戏
查看>>
NIO ByteBuffer实现原理
查看>>
Nio ByteBuffer组件读写指针切换原理与常用方法
查看>>
NIO Selector实现原理
查看>>
nio 中channel和buffer的基本使用
查看>>
NIO基于UDP协议的网络编程
查看>>
NISP一级,NISP二级报考说明,零基础入门到精通,收藏这篇就够了
查看>>
Nitrux 3.8 发布!性能全面提升,带来非凡体验
查看>>