栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring Cloud Alibaba 教程 | Nacos(一)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring Cloud Alibaba 教程 | Nacos(一)

什么是Nacos

Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

Nacos 致力于帮助您发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式)的服务基础设施。

使用Nacos组件可以作为微服务架构的注册中心和配置中心,可以简单理解为可以代替Netflix解决方案中的Eureka组件和Spring Cloud Config组件。

Nacos官方地址:https://nacos.io/zh-cn/index.html

主要功能
  • 动态配置服务

动态配置服务让您能够以中心化、外部化和动态化的方式管理所有环境的配置。动态配置消除了配置变更时重新部署应用和服务的需要。配置中心化管理让实现无状态服务更简单,也让按需弹性扩展服务更容易。

  • 服务发现及管理

动态服务发现对以服务为中心的(例如微服务和云原生)应用架构方式非常关键。Nacos支持DNS-based和RPC-based(Dubbo、gRPC)模式的服务发现。Nacos也提供实时健康检查,以防止将请求发往不健康的主机或服务实例。借助Nacos,您可以更容易地为您的服务实现断路器。

  • 动态DNS服务

通过支持权重路由,动态DNS服务能让您轻松实现中间层负载均衡、更灵活的路由策略、流量控制以及简单数据中心内网的简单DNS解析服务。动态DNS服务还能让您更容易地实现以DNS协议为基础的服务发现,以消除耦合到厂商私有服务发现API上的风险。

安装单机版Nacos

Nacos下载地址:https://github.com/alibaba/nacos/releases
截止目前最新版本为:1.1.4

下载之后解压进入到bin目录执行启动命令:sh startup.sh -m standalone

命令参数中-m表示模式mode,standalone表示启动的是单机版模式,windows用户可以使用该命令启动Nacos: cmd startup.cmd -m standalone

执行启动命令之后可以查看到启动日志:tail -fn 200 /home/server/nacos/logs/start.out

Nacos是一个用Java语言编写的web项目,Tomcat默认端口是8848,访问8848端口可以打开Nacos管理台。

默认用户名和密码都是nacos


Nacos管理台菜单包含了四大部分:

  • 配置管理(管理配置中心)
  • 服务管理(管理注册中心)
  • 命名空间
  • 集群管理
使用Nacos注册中心功能 生产者服务

第一步:创建一个nacos-test项目,包含两个模块nacos-provider和nacos-consumer,在父项目pom.xml文件统一管理springboot、spring cloud和spring cloud alibaba版本。


    
 
 
     org.springframework.boot
     spring-boot-dependencies
     2.1.2.RELEASE
     pom
     import
 
 
 
     org.springframework.cloud
     spring-cloud-dependencies
     Greenwich.SR2
     pom
     import
 
 
 
     com.alibaba.cloud
     spring-cloud-alibaba-dependencies
     2.1.0.RELEASE
     pom
     import
 
    

第二步:先来处理nacos-provider模块项目,在nacos-provider模块项目的pom.xml配置alibaba-nacos-discovery依赖。


    
 org.projectlombok
 lombok
 1.18.0
 true
    
    
 org.springframework.boot
 spring-boot-starter-web
    
    
 org.springframework.boot
 spring-boot-starter-test
 test
    
    
    
 com.alibaba.cloud
 spring-cloud-starter-alibaba-nacos-discovery
    

第三步:编写入口类NacosProvider ,并添加一个EchoController 提供HTTP接口服务。

@SpringBootApplication
@EnableDiscoveryClient
public class NacosProvider {

    public static void main(String[] args) {
 SpringApplication.run(NacosProvider.class,args);
    }

    @RestController
    class EchoController {

 @GetMapping("/echo/{string}")
 public String echo(@PathVariable String string) {
     return "Hello Nacos Discovery " + string;
 }
    }

}

第四步:在bootstrap.yml文件配置nacos配置中心相关参数。

spring:
  application:
    name: nacos-provider
  cloud:
    nacos:
      discovery:
 server-addr: 192.168.0.127:8848 #注册中心地址
server:
  port: 17357

第五步:运行nacos-provider,可以从启动日志看到注册到了nacos,打开nacos管理台在服务管理菜单下的服务列表项可以看到注册的实例信息。

消费者服务

第一步:接下来处理nacos-consumer模块项目,在nacos-consumer模块项目的pom.xml配置同样加上alibaba-nacos-discovery依赖。

    
 
     org.projectlombok
     >lombok
     1.18.0
     true
 
 
     org.springframework.boot
     >spring-boot-starter-web
 
 
     org.springframework.boot
     >spring-boot-starter-test
     test
 
 
 
     com.alibaba.cloud
     spring-cloud-starter-alibaba-nacos-discovery
 
    

第二步:编写入口类NacosConsumer ,并添加一个TestController提供HTTP接口服务,通过RestTemplate远程调用NacosProvider。

@SpringBootApplication
@EnableDiscoveryClient
public class NacosConsumer {

    @LoadBalanced
    @Bean
    public RestTemplate restTemplate() {
 return new RestTemplate();
    }

    public static void main(String[] args) {
 SpringApplication.run(NacosConsumer.class,args);
    }

    @RestController
    public class TestController {

 private final RestTemplate restTemplate;

 @Autowired
 public TestController(RestTemplate restTemplate) {this.restTemplate = restTemplate;}

 @GetMapping("/echo/{str}")
 public String echo(@PathVariable String str) {
     return restTemplate.getForObject("http://nacos-provider/echo/" + str, String.class);
 }

    }

}

第三步:在bootstrap.yml文件配置nacos配置中心相关参数。

spring:
  application:
    name: nacos-consumer
  cloud:
    nacos:
      discovery:
 server-addr: 192.168.0.127:8848 #注册中心地址
server:
  port: 17358

第四步:测试消费者调用提供者接口服务。


nacos默认使用了ribbon做客户端负载均衡。

转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号