Alibaba Nacos 介绍以及服务提供者工程接入nacos注册中心
一、SpringCloud Alibaba Nacos 介绍
Nacos 为 SpringCloud Alibaba 下的一款集 服务注册与发现、服务配置管理于一体的微服务管理平台。
其中在服务管理中处了服务的注册与发现基本功能外还实现了服务调用的负载均衡以及服务的健康监控。服务配置管理相比SpringCloud Config 的配置操作简单,达到了修改即生效效果。
Nacos 基本架构图及领域模型图
Nacos 也是分为服务端和客户端,服务端即Nacos管理平台应用服务,微服务应用通过接入到Nacos服务端中,通过服务端控制台页面可以进行服务管理以及配置管理。客户端即我们的需要接入的微服务工程,通过引入Nacos相应的依赖(服务注册发现依赖,或者配置中心管理依赖)以及其他配置接入到服务端,来实现通过Nacos进行服务配置管理。
领域模型,即我们在使用Nacos配置中心或服务注册管理时的一个概念,我们在确定一个唯一的配置键值对时,需要确定其命名空间(NameSpace)和命名空间下的某分组信息(Group),以及分组下的配置文件(Service/DataId),明确该三项后即可确定该键值对从哪里进行读取。命名空间通常用来区分不同环境如开发、测试、生产,分组用来对服务进行分组,每个分组下的服务Service 肯能有多个中心,比如上海中心、西安中心(可通过配置区分),每个service可以有多个服务实例instance;
二、Nacos 服务端搭建
windows 端搭建:
1,启动安装文件nacos-server-1.2.1.zip下载
下载地址:https://github.com/alibaba/nacos/tags ,选择具体版本后,点击zip 文件进行下载
2,下载后进行解压 ,并启动
3,访问登陆
nacos 默认端口 8848 ,访问地址 http://127.0.0.1:8848/nacos 默认账户密码 nacos/nacos
2,linux端搭建:
参见《Alibaba Nacos Linux下的集群安装与mysql持久化数据》
三、服务提供者端接入Nacos 服务注册中心
环境:SpringBoot 2.2.2.RELEASE + SpringCloud Hoxton.SR1 + SpringCloud Alibaba 2.1.0.RELEASE
主要步骤:
- 创建工程,引入依赖
- 编写配置文件
- 编写主启动类
- 编写业务代码
1,创建 product_service_nacos工程,并引入相应依赖。pom.xml 如下
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><groupId>com.xiaohui.springCloud</groupId><artifactId>SpringCloud</artifactId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>product_service_nacos</artifactId><dependencies><!-- 公共模块 --><dependency><groupId>com.xiaohui.springCloud</groupId><artifactId>cloud-api-common</artifactId><version>${project.version}</version></dependency><!-- SpringCloud Alibaba nacos 主要 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!-- web 依赖开始 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><!-- web 依赖结束 --><!-- 数据库层相关依赖 开始 -->省略。。。<!-- 数据库层相关依赖 结束 --><!-- 热部署依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>
</project>
2,创建配置文件application.yml
server:port: 8001 #服务端口spring:application:name: nacos-payment-service #服务名称cloud:nacos:discovery:server_addr: 127.0.0.1:8848 #配置nacos地址datasource:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: org.gjt.mm.mysql.Driverurl: jdbc:mysql://192.168.17.132:3306/springcloud?characterEncoding=UTF-8username: rootpassword: rootmanagement:endpoints:web:exposure:include: '*'
logging:level:root: INFOmybatis:mapperLocations: classpath:mapper/*.xmltype-aliases-package: com.xiaohui.springcloud.entities
其中比较重要的配置部分:
spring.cloud.nacos.discovery.server_addr 指定Nacos的注册服务地址
management.endpoints.web.exposure.include 进行暴露监控端点
3,编写主启动类
package com.xiaohui.springcloud;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;@SpringBootApplication
@EnableDiscoveryClient
public class ProductApplication {public static void main(String[] args) {SpringApplication.run(ProductApplication.class,args);}
}
注意需要给主启动类添加@EnableDiscoveryClient 启动服务发现功能
4,编写业务代码
package com.xiaohui.springcloud.controller;import com.xiaohui.springcloud.entities.CommonResult;
import com.xiaohui.springcloud.entities.Payment;
import com.xiaohui.springcloud.service.IPaymentService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;import java.util.concurrent.TimeUnit;@RestController
@Slf4j
public class PaymentController {@AutowiredIPaymentService paymentService;@Value("${spring.cloud.client.ip-address}")private String ip;@Value("${server.port}")private String port;@GetMapping("/payment/get/{id}")public CommonResult getPaymentById(@PathVariable("id") Long id){Payment payment = paymentService.getPaymentById(id);log.info(payment.toString());if(payment != null){return new CommonResult(0,"查询成功 server node:"+ip+":"+port,payment);}else{return new CommonResult(-9999,"查询失败,不存在信息 server node:"+ip+":"+port,null);}}
}
5,启动测试
启动Nacos 服务后,再启动服务该提供者工程,我们在服务列表下的默认public命名空间,默认分组DEFAULT_GROUP下可以看到该微服务已经注册进来
Alibaba Nacos 介绍以及服务提供者工程接入nacos注册中心相关推荐
- Alibaba Nacos 服务消费者工程接入nacos并实现调用服务提供者工程
概述:本章将介绍 服务消费者工程接入到nacos中,并使用nacos集成的负载均衡实现一个简单的轮询的负载均衡调用生产者工程示例. 环境:SpringBoot 2.2.2.RELEASE + Spri ...
- nacos enablediscoveryclient_Spring Cloud(五):注册中心nacos篇
点击蓝字关注我们 大家好,我是杰哥,转眼间,我们的Spring Cloud专辑已到了第五次分享,而我们的注册中心篇章已经分别完成了Eureka.zookeeper篇,今天正式进入nacos篇的学习na ...
- Nacos,一款非常优秀的注册中心(附视频)
Nacos 核心源码精讲 - IT贱男 - 掘金小册全方位源码精讲,深度剖析 Nacos 注册中心和配置中心的核心思想.「Nacos 核心源码精讲」由IT贱男撰写,375人购买https://s.ju ...
- Nacos 介绍 --- 单机、集群部署
1. Nacos介绍 官网:https://nacos.io Nacos 致力于帮助您发现.配置和管理微服务.Nacos 提供了一组简单易用的特性集,帮助您快速实现动态 服务发现.服务配置.服务元数据 ...
- 阿里注册中心nacos使用整合Dubbo-原创
阿里注册中心nacos是今年开源的框架,一开始以为就是个zk.后面看了图才明白他对标的竟然是consul\eureka,最重要是完美支持dubbo.我想今年开源它也是别有用意 .(目前nacos0.7 ...
- Dubbo 融合 Nacos 成为注册中心
Nacos 作为 Dubbo 生态系统中重要的注册中心实现,其中 dubbo-registry-nacos 则是 Dubbo 融合 Nacos 注册中心的实现. 预备工作 当您将 dubbo-regi ...
- Nacos(九)之Dubbo 融合 Nacos 成为注册中心
转载自 Dubbo 融合 Nacos 成为注册中心 Nacos 作为 Dubbo 生态系统中重要的注册中心实现,本文将会介绍如何进行 Dubbo 对接 Nacos 注册中心的工作. 预备工作 请确保 ...
- 微服务系列之ZooKeeper注册中心和Nacos注册中心Nacos和Zookeeper对比
一.ZooKeeper注册中心 Zookeeper 是 Apache Hadoop 的子项目,是一个树型的目录服务,支持变更推送,适合作为 Dubbo 服务的注册中心,工业强度较高,可用于生产环境,推 ...
- 微服务(二)——注册中心(Eureka、Nacos)
目录 1. 概念 2. Eureka 1. 服务搭建 1. 依赖导入 2. 配置文件 3. 启动项目 2. 服务注册 1. 依赖导入 2. 配置文件 3. 启动多个实例 3. 服务发现 1. 依赖导入 ...
最新文章
- CLR via C#深解笔记二 - 类型设计
- LeetCode 443 String Compression(双指针)
- 服务 TCP 断线错误分析
- 【杂文】Do A Slash
- 《Head First Python》第二章--共享你的代码
- [SDOI2007] 单词接龙游戏 dp
- 差分进化算法python_差分进化算法DE-python实现
- python捕捉warning_python – 如何格式化logging.captureWarnings捕获的警告?
- CodeForces-1A Theatre Square【水题】
- JAVA基础——Java 中必须了解的常用类
- ADO.NET数据访问方式:SqlDataReader
- python调用默认播放器_在PotPlayer和MPV挂载SVP脚本进行补帧的部署方法
- 史上最强之《Pyqt》写游戏
- [note] 电磁场和微波课组(一)——电磁学(电学部分)
- 网站推广优化教程100条(完整版)-
- 站群代做关键词排名出技术
- nginx02-RTFM
- FPGA实现PCI串口卡16550/TL16C2550
- 【Servlet】什么是Servlet;常见状态码;Servlet API;Cookie和Session
- 2020程序设计基础c语言答案,2020知到程序设计基础(C语言)入门篇答案全套
热门文章
- 求出给定节点在二叉排序树中的层次
- Class绑定、Class对象绑定、v-if(条件渲染)、v-show(元素显示)、v-for(列表渲染)
- SpringBoot脚手架工程快速搭建
- Eclipse远程调试Java代码的三种方法
- SpringBoot中fastJson返回数据展示null字段(响应值为null时字段被过滤)
- Struts2之前台表单传值到后台Action方法总结
- cygwin 编译linux内核,【记录】Cygwin下交叉编译Linux内核时用make menuconfig去确认和修改配置...
- 什么是实验室人员比对人员_中实在线——程老师小课堂 实验室人员管理技巧...
- mysql binary模式_MySQL数据库之MySQL的binary类型操作
- React的Element的创建和render