打开github的Nacos链接 https://github.com/alibaba/nacos/releases。
从上一篇可得之需要的版本为1.4.2,然后我们下载下来。
下面也有源码的下载,想研究的也可以下载下来看看。
需要注意的是,Nacos默认是集群设置,如果我们没有配置的话自然也就打不开了,现在为了方便学习我们可以换成单机模式。直接在当前目录打开cmd窗口使用命令
startup.cmd -m standalone 即可单机启动。
启动成功后看这黑窗口的信息是不是很熟悉,Nacos服务就是使用spring boot开发的。
因此我们也可以修改它的端口等信息。
当然还可以通过修改startup.cmd文件,修改成单机启动,实际效果一样,只是这样改之后下次想要使用集群环境还得修改回来。
启动完之后就可以通过页面打开了。http://192.168.88.1:8848/nacos/#/login
登录用户名和密码都是nacos,接下来就是怎么往这里面注册服务了。
首先在我们的子项目中引用 Nacos Discovery Starter依赖
com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery
以前经常遇到maven下载jar包时直接卡死的情况,而且我的maven配置中已经配置了从阿里云下载jar包,从网上找的方案都不行,今天突然搜到一种方案成功解决。
修改application.yml,添加以下配置:
spring: application: name: order-server cloud: nacos: discovery: server-addr: 192.168.88.1:8848 username: nacos password: nacos namespace: public
然后直接启动项目,启动完成后就可以看到往nacos server注册成功的日志。
此时我们打开 nacos server页面,在服务列表中就可以看到刚才注册的服务了。
目前什么都准备好了,那么到底怎么用呢?
@GetMapping public String findOrder(){ String message = restTemplate.getForObject("http://localhost:8091/stock", String.class); if(!StringUtils.isEmpty(message)){ return "查询订单成功" + " 调用库存成功 " + message; } return "查询订单成功"; }
此时,我们就可以把这个调用路径修改成刚才取的
spring: application: name: stock-server
String message = restTemplate.getForObject("http://stock-server/stock", String.class);
修改成这样,nacos根据名称去解析调用库存服务。注意此时还需要使用负载均衡器,我们可以在生成restTemplate bean对象时添加 @LoadBalanced即可调用成功,如果不加的话就会报找到不主机地址异常。
@Configuration public class RestTemplateConfig { @Bean @LoadBalanced public RestTemplate restTemplate(RestTemplateBuilder restTemplateBuilder){ return restTemplateBuilder.build(); } }
以上就是Nacos服务端和客户端使用方式,当然它还有更复杂的功能,这里就不详细说明了,后面我学习完之后也会总结出来的,另外附上本示例项目的github地址,这个项目以后也会实时更新。
GitHub - mayongqi/springCloudAlibaba: spring cloud alibaba study demo