springcloudalibaba~~配置nacos
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的
这里单机版的服务注册就完成了
配置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文件
然后就可以启动启动naocs了
到nacos/bin目录下运行
sh startup.sh -o3333
sh startup.sh -o4444
sh startup.sh -o5555
这样就启动好了
注意nacos启动是有默认内存的,如果内存不够,可以更改启动内存nacos/bin目录下的startup.sh文件
启动好了就是这样
我们修改自习写的服务的配置文件,将服务注册地址注册到我们的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
然后启动服务
集群配置完成