nacos下载地址:https://github.com/alibaba/nacos/releases/tag/2.0.0-BETA
1、windows下启动报Caused by: org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat
截图如下图:
问题原因:
由于nacos在1.3.2之后默认使用的【集群方式启动】,如果我们本地是单击模式的话,需要手动改回单机模式,如果用的是高版本且是单机模式的话,需要修改启动命令,改为【单机模式】,编辑startup.cmd文件,cmd文件可以右键使用文本编辑器打开,也可以直接把该文件拖拽到notepad++中,建议使用后者
找到 set MODE=“cluster”
修改为:set MODE=“standalone”
修改保存之后,重新启动即可
访问路径:http://192.168.1.178:8848/nacos/index.html
用户名:nacos
密码:nacos
使用nacos的demo
在springboot的yml文件里:
生产者:
消费者:
启动服务,我们可以看到消费者和生产者都已注册到nacos里
简单的测试代码:
生产者的pom文件:
简单的Controller层代码:
@RestController
public class HelloController {
@GetMapping("/provider/hi.do")
public String hi(){
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
}
}
启动类上的配置:
消费者的pom文件:
可以再父模块的pom文件里统一配置spring-cloud版本相关
service里的代码:
@FeignClient(value = "ProviderDemo")
public interface HelloService {
// 需要和对应的提供者一模一样
@GetMapping("/provider/hi.do")
String hello();
}
controller里的代码:
@RestController
public class HelloController {
@Autowired
private HelloService service;
@GetMapping("/hi.do")
public String hi(){
String aa = service.hello();
System.out.println(aa+"======================");
return service.hello();
}
}
启动类上的配置:
访问结果(http://127.0.0.1:8990/consumer-demo/hi.do):
@EnableDiscoveryClient // 服务的注册和发现
@EnableFeignClients // 启用Fegin 实现服务的远程调用
注:测试整体代码,已上传至资源,简单的nacos使用测试代码