Nacos部分 Nacos安装是一点个人学习实践(仿尚硅谷尚医通项目)的笔记整理,可能没什么深度,但确实是有效可行的。
- 我所建议也是我所采用的是直接下载的方式:https://github.com/alibaba/nacos/releases
1.1 进入官网,点击下载
1.2 在本地解压就安装完成了,我的目录是在/Library/Nacos
2.你也可以采用源码构建的方式,这也是官方手册中给出的下载方式的第一种https://nacos.io/zh-cn/docs/quick-start.html
但是可能是我学艺不精,还不清楚源码构建该怎么实现,因为里面没有bin目录也没有starup.sh于是启动方法不一样吧大概,这我没有具体再去了解了。所以最后我采用的是这里的直接下载方式。
- 用terminal进入到安装目录下的/nacos/bin页面(我是/Library/Nacos/bin)
- 运行代码sh startup.sh -m standalone即可
整体如下图所示:
到这里其实我以为Nacos没有启动成功,但实际上已经成功了
因为进入/nacos/logs/start.out查看日志,可以看到:
- 关闭使用sh shutdown.sh
- 一个是一开始源码构建的方式,git clone了代码到本地,发现没有bin目录,无法使用网上官方以及其他博客中提到的启动方式(也即上文的命令),于是采用了直接下载的方式,解决问题。
- 之前还遇到过报错,大意是按照路径查找说找不到Java的路径(Nacos需要java环境),但是我按着路径明明能找到。再去~/.bashrc里查看也都没有问题。最后解决了。
2.1 可能原因(并不10000%肯定)
因为我用的是oh-my-zsh也就是zsh,而不是bash(现在Mac都是zsh了吧?之前用bash的时候每次都喊我换zsh),所以要去改~/.zshrc而不是原来的bashrc了
2.2 修改方法
2.2.1 terminal里面,vi ~/.zshrc
2.2.2 光标移到合适的位置,按i输入,然后把bashrc里复制的直接cmd+v粘贴进去就行。
2.2.3 之后esc,:wq保存并退出就行了
2.2.4 最后source ~/.zshrc
另外修改之后terminal里输入jdk8环境就变成jdk8,输入jdk13就变成jdk13,nacos不管哪个版本应该都没啥问题
具体如图:
- 在需要网关的服务模块的pom文件中引入依赖
org.springframework.cloud spring-cloud-starter-openfeigncom.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery
- 创建网关模块,添加相关依赖
网关简单配置org.springframework.cloud spring-cloud-starter-gatewaycom.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery
-
启动类没啥特别的
-
简单地添加config
//跨域处理
package com.roger.vishop.gateway.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.reactive.CorsWebFilter;
import org.springframework.web.cors.reactive.UrlbasedCorsConfigurationSource;
import org.springframework.web.util.pattern.PathPatternParser;
@Configuration
public class CorsConfig {
@Bean
public CorsWebFilter corsFilter() {
CorsConfiguration config = new CorsConfiguration();
config.addAllowedMethod("*");
config.addAllowedOrigin("*");
config.addAllowedHeader("*");
UrlbasedCorsConfigurationSource source = new UrlbasedCorsConfigurationSource(new PathPatternParser());
source.registerCorsConfiguration("shopcmn/**
服务简单配置
- 把所有的@CrossOrigin全部去掉,在启动类中添加@EnableDiscoveryClient注解,配置跨域在上文中CorsConfig.java里已经完成了
- 修改服务的application.properties
a是具体的服务端口,请求发到80,网关给你转到8201来
b要与上文配置gateway时application里注册的服务的名字要一样
- 启动网关服务,再启动具体服务
- 进入127.0.0.1:8848/nacos/#/login(用户名和密码都是nacos)即可查看
- 我这儿其他测试也都已经没有问题了(前端的请求发送记得改成发送到80端口)
肯定有不少地方我的理解或者分析有一定的问题,欢迎指出。
才疏学浅,还有很多地方要学习的,加油共勉。



