1.服务注册与发现
项目首先添加依赖
<!--springClould alibaba nacos-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
1.先启动nacos,本次以单机为例,详细可看
【Nacos】win 下使用nacos以及集群下出现错误:Error creating bean with name ‘memoryMonitor‘
1.配置yml文件
server:
port: 9001
spring:
application:
name: nacos-test #自己起名字 会在nacos页面显示,以及用于客户端发现调用
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848 #配置nacos地址
management:
endpoints:
web:
exposure:
exclude: '*'
2.启动项目,就可以在nacos页面看到
2.服务发现
server:
port: 83
spring:
application:
name: nacps-consumer
cloud:
nacos:
discovery:
server-addr: localhost:8848
#消费者将要去访问的微服务名称(注册成功进nacos的微服务提供者)
service-url:
nacos-user-service: http:// nacos-test #即服务注册时的spring.application.name
配置负载均衡
@Configuration
public class ApplicationContextConfig {
@Bean
@LoadBalanced
public RestTemplate getRestTemplate(){
return new RestTemplate();
}
}
进行测试调用
@RestController
public class OrderNacosController {
@Resource
private RestTemplate restTemplate;
@Value("${service-url.nacos-user-service}")
private String serverURL;
@GetMapping("/consumer/payment/nacos/{id}")
public String paymentInfo(@PathVariable("id")long id){
// /payment/nacos/ 为服务端接口
return restTemplate.getForObject(serverURL+"/payment/nacos/"+id,String.class);
}
}
3.nacos集群搭配nginx
nacos的集群可以看:
【Nacos】win 下使用nacos以及集群下出现错误:Error creating bean with name ‘memoryMonitor‘
nginx配置:
upstream cluster{
server 127.0.0.1:8840;
server 127.0.0.1:8850;
server 127.0.0.1:8860;
}
server {
listen 1122;
server_name localhost;
location / {
proxy_pass http://cluster;
}
}
然后集群启动nocas 和 nginx
项目yml配置:
server:
port: 9002
spring:
application:
name: nacos-payment-provider
cloud:
nacos:
discovery:
#server-addr: 127.0.0.1:8848 #配置nacos地址
server-addr: 127.0.0.1:1122 #配置ngnix地址
management:
endpoints:
web:
exposure:
exclude: '*'
4.服务配置
项目中配置
bootstrap.yml 和 application.yml 文件,因为项目加载过程中优先加载bootstrap.yaml
application.yml 配置为:
spring:
profiles:
active: dev #表示开发环境
#active: test #表示测试环境
#active: info #表示开发环境
bootstrap.yml 配置为:
server:
port: 3377
spring:
application:
name: nacos-config-client
cloud:
nacos:
discovery:
server-addr: localhost:8848 #nacos作为服务注册中心地址
config:
server-addr: localhost:8848 #nacos作为配置中心地址
file-extension: yaml #指定yaml格式的配置
group: DEV_GROUP
namespace: 123
#nacos 配置规则
#${prefix}-${spring.profiles.active}.${file-extension}
# prefix 项目名 即: spring:application: name: nacos-config-client
# spring.profiles.active 即 spring: profiles: active: dev
# file-extension 即file-extension: yaml
然后登录nacos页面根据上面nacos规则进行配置,然后发布就可以了,如图