欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

springcloudalibaba~~配置nacos

程序员文章站 2022-06-12 19:29:17
...

alibaba配置nacos

单机版

配置nacos做注册中心

1、下载nacos服务

官网下载nacos,https://github.com/alibaba/nacos/releases/tag/1.3.1,底部下载nacos-server-1.3.1.zip(单机版本地测试,所以下载windows的就行了),下载好了解压,进去nacos/bin目录,双击sartup.cmd,访问http://localhost:8848/nacos,弹出nacos的页面就启动成功了,登录名和密码默认是nacos

2、新建服务-提供者

新建两个model,service-provider-nacos9001和service-provider-nacos9002

引入依赖

<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-discovery</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <scope>runtime</scope>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

配置文件

server:
  #一个9001,一个9002
  port: 9001

spring:
  application:
    name: service-provider-nacos
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848

启动类添加@EnableDiscoveryClient注解

controller类

@RestController
public class HelloController {
   @Value("${server.port}")
   public String serverPort;

   @RequestMapping("/hello")
   public String getHello(){
      return serverPort;
   }
}

启动两个服务,在nacos服务列表里面可以看见service-provider-nacos服务有两个实例数

记得测试controller接口

3、新建服务-消费者

新建model,叫service-consumer-nacos9005,依赖,配置文件,启动类注解同service-consumer-nacos9001,端口改成9005,名称改为service-consumer-nacos9005,新建controller类

@RestController
public class HelloController {
   @Resource
   public RestContext restContext;

   @GetMapping("/consumer/hello")
   public String get() {
      return restContext.getRestTemplate().getForObject("http://service-provider-nacos/hello", String.class);
   }
}

新建restTemplate

@Configuration
public class RestContext {
   @Bean
   @LoadBalanced//负载均衡
   public RestTemplate getRestTemplate(){
      return new RestTemplate();
   }
}

启动服务,nacos里面能看见service-consumer-nacos9005服务的实例数为1,调用http://localhost:9005/consumer/hello测试,发现9001和9002交替出现,说明nacos自带负载均衡,在依赖里面,我们能看到nacos是集成了ribbon的
springcloudalibaba~~配置nacos

这里单机版的服务注册就完成了

配置nacos做配置管理

我们用service-consumer-nacos9005服务来做测试

首先添加依赖

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

新建bootstrap.yml,官网说必须用bootstrap.yml来配置nacos server地址

spring:
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yaml

在application.yml里面添加

spring:
  profiles:
    active: dev

controller类

@Value("${nacos.version}")
public String version;
@GetMapping("/consumer/nacos")
	public String nacos(){
		return version;
	}

在nacos里面添加一个配置,名称:service-consumer-nacos9005-dev.yaml,类型yaml,内容

nacos: 
    version: 1-1-1

启动service-consumer-nacos9005服务,访问http://localhost:9005/consumer/nacos,得到1-1-1

更改nacos里面的值为1-1-2,访问http://localhost:9005/consumer/nacos,得到1-1-2

https://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-config

集群版

我们在云服务器上配置集群版,配置成一台服务器启动三个不同端口的nacos服务,做成集群并且用mysql8来使nacos数据持久化

云服务器记得开放一下设计到的端口

下载nacos,https://github.com/alibaba/nacos/releases/tag/1.3.1下载nacos-server-1.3.1.tar.gz

tar -xvf nacos-server-1.3.1.tar.gz//解压

配置集群配置文件,正常情况下是三台机器组成的集群,nacos默认的是8848端口,我们子啊一台机器上那就只能改掉端口nacos/conf目录下的cluster.conf文件

10.9.3.112:3333
10.9.3.112:4444
10.9.3.112:5555

数据库配置

修改配置文件nacos/conf/application.properties

spring.datasource.platform=mysql

db.num=1
db.url.0=jdbc:mysql://11.162.196.16:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=nacos_devtest
db.password=youdontknow

数据库源文件https://github.com/alibaba/nacos/blob/master/distribution/conf/nacos-mysql.sql

因为启动要接收端口,我们需要改启动文件nacos/bin目录下的startup.sh文件
springcloudalibaba~~配置nacos

springcloudalibaba~~配置nacos

然后就可以启动启动naocs了

到nacos/bin目录下运行

sh startup.sh -o3333
sh startup.sh -o4444
sh startup.sh -o5555

这样就启动好了

注意nacos启动是有默认内存的,如果内存不够,可以更改启动内存nacos/bin目录下的startup.sh文件
springcloudalibaba~~配置nacos

启动好了就是这样
springcloudalibaba~~配置nacos

我们修改自习写的服务的配置文件,将服务注册地址注册到我们的nacos集群

spring:
  application:
    name: service-provider-nacos
  cloud:
    nacos:
      discovery:
        server-addr: 106.75.118.152:3333,106.75.118.152:4445,106.75.118.152:5555

然后启动服务
springcloudalibaba~~配置nacos

集群配置完成

相关标签: springcloud java