经过之前的概念,相信大家对cloud已经有了一定的概念(没有概念的去看上一篇文章(SpringCloud(一)),想不秃头还想直接会必不可能,我都开始秃了,观看文章的各位家人得整整齐齐)
这章,我们就说一说我在工作中使用或见到的SpringCloud的地方以及注意事项:
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <exclusions> <exclusion> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-ribbon</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.github.jsqlparser</groupId> <artifactId>jsqlparser</artifactId> <version>4.4</version> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> <exclusions> <exclusion> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-ribbon</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-loadbalancer</artifactId> </dependency>
注:此处没有写版本号,是因为在<properties>中已经做好了版本统一配置,上手时注意去配
这些pom的配置都是写在整个服务的总pom文件中
上述服务中gateway主要用于配置网关相关的东西,其他的则是不同的业务功能服务(模块)
下面咱们看看配置nacos的yaml文件
里面的@@中间的那一大坨在配置好后是可以点击的,对应了pom文件中的标签,
点击后会进入对应的pom文件中:
<profile> <id>huzhiyu</id> <properties> <!--当前环境--> <profile.name>dev</profile.name> <!--Nacos命名空间--> <nacos.config.namespace>huzhiyu</nacos.config.namespace> <!--Nacos的Group--> <nacos.config.group>DEFAULT_GROUP</nacos.config.group> <!--Nacos服务地址--> <nacos.config.server-addr>192.168.31.32:8848</nacos.config.server-addr> </properties> </profile>
此处可能在公司开发中会有多个,可在maven中的profile中选择配置项,若不选择则启动时默认选择最上面的配置项(此处也可在pom中配置默认项)
接下来我们在去看看nacos配置:
此处我已经导入了配置,一般情况下在公司先创建好自己的命名空间,然后去public配置项下(没错,就是类似图片里的一样,一般每个公司nacos都会有一个public配置项),勾选所有配置项,点击左下方克隆就可以获取到配置(也可在自己命名空间导入配置
注:看好是不是自己的,别改成别人的了,不然你两迟早干架)
(命名空间创建)
点击编辑进入配置(以gateway为例)
若要修改,则改完后记得发布,然后重启才可使用新配置
此处需配置这两个注解(log用于日志打印,此处可不写,main方法是此服务的启动位置)
@SpringBootApplication @EnableDiscoveryClient
注:main方法中的run方法写的是该类类名.class,用于声明启动的是这个方法的启动入口
gateway启动后,我们启动system服务
system服务这边也会有相应日志打印
然后我们关闭system服务
(
此处按理来说port应该是9555,但是我截屏时是按先关闭服务再开启服务截的屏,所以此处port不统一,没办法兄弟姐妹们,苦逼打工人上班就起了服务,写篇博客还得先把服务停了
)
接下来我们说一说openFeign的使用(openFeign的配置已经在前面说了,不知道的自己往上翻pom配置看一看)
以学生登录为例子(在我的这个项目中因为有一个后台管理端以及学生端,当时刚开始写时所有的登录都是写在后台管理端的服务中的,为了复用就不特地在学生端写了,使用openFeign远程调用)
上述为学生端登录模块的controller,我们点击service查看
在后台管理端(被调用的服务方)启动入口声明feign
接下来我们看看后台管理端的登录接口(此处登录接口完整端口后地址: /login/doLogin)
注:两边服务的restful请求一定要对应上,不然会报错(此处对应的是@PostMapping请求)
此处的返回值则直接可在controller获取(我此处是已经封装好的,所以我的controller直接返回了,若各位有逻辑要加,可接收以后做一下处理)
剩下的关于ribbon和hytrix我确实没有找到,后期研究明白后给各位重新开一章作分享,如果有不足之处或是有相关操作说明的兄弟姐妹们可以跟我评论区留言分享一下
咱从啥开始,从啥结束,加油,在奋斗的兄弟姐妹们,我先躺为敬