一、nacos服务注册
nacos是阿里巴巴的一个服务注册与配置的组件,它的功能齐全
官网地址:nacos
下载nacos安装包解压使用
这里我使用的1.4的版本windows
先在bin目录进行cmd操作,单例模式启动命令:"startup.cmd -m standalone"
默认用户名和密码都是:nacos,默认端口:8848
接下来我们将orderservice和userservice服务注册到nacos
由于nacos是阿里的组件,后来加的,我们需要在父工程中添加依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.5.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
然后在userservice和orderservice中添加nacos的依赖
<!-- nacos-discovery 注册中心 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
创建bootsrtap.yml文件,因为它加载顺序在application.yml之前
添加nacos的配置信息
spring:
application:
name: userservice #服务名称
cloud:
nacos:
discovery:
server-addr: localhost:8848 #nacos配置中心
启动服务,浏览器访问
nacos服务多级存储模型
为了防止服务不可用之后,导致所有的都受到影响,我们可以配置多级存储模型。
这里我们可以将userservice修改为cd集群,orderservice修改为xa集群
修改userservice配置文件
spring:
application:
name: orderservice
cloud:
nacos:
discovery:
server-addr: localhost:8848 #nacos配置中心
cluster-name: cd #服务多级存储配置
orderservice配置同理
启动服务
nacos负载均衡
nacos同样也可以实现负载均衡,在配置文件里面添加相关配置
spring:
application:
name: orderservice
cloud:
nacos:
discovery:
server-addr: localhost:8848 #nacos配置中心
cluster-name: xa
userservice:
ribbon:
NFLoadBalancerRuleClassName: com.albaba.cloud.nacos.ribbon.NacosRule #nacos负载均衡配置
nacos权重配置
在实际项目中,我们会考虑服务器的性能之类的,如果服务器的性能
比较高一点,我们可以让它多访问。这里就可以设置权重
当权重为0时,服务不会被访问到。
比如:当我们版本升级时,不用停止服务之类的,我们可以把服务的权重调为0,然后进行升级,慢慢调高权重值。
nacos的权重介入:0~1之间
nacos命名空间 namespace
命名空间就是将环境进行隔离,不同命名空间之前不能进行访问。新建命名空间
默认是public的命名空间
比如我们先将orderservice放在dev环境下,配置如下
spring:
application:
name: orderservice
cloud:
nacos:
discovery:
server-addr: localhost:8848 #nacos配置中心
cluster-name: xa
namespace: 35eccc51-fc2f-49e7-aecc-4fbd2944c746 #命名空间的配置,命名id
userservice:
ribbon:
NFLoadBalancerRuleClassName: com.albaba.cloud.nacos.ribbon.NacosRule #nacos负载均衡配置
此时浏览器访问就会报错,因为不在同一个环境下,环境被隔离了
我们在将userservice服务也配置到dev环境下,再次访问进行测试
二、nacos配置管理
这里就需要再添加一个依赖
<!--nacos-config 配置管理-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
新建配置
读取配置
先在配置文件中添加相关配置信息
spring:
application:
name: orderservice
profiles:
active: dev #激活dev环境
cloud:
nacos:
discovery:
server-addr: localhost:8848 #nacos配置中心
# cluster-name: xa
namespace: 35eccc51-fc2f-49e7-aecc-4fbd2944c746 #命名空间的配置,命名id
config:
file-extension: yaml
#userservice:
# ribbon:
# NFLoadBalancerRuleClassName: com.albaba.cloud.nacos.ribbon.NacosRule #nacos负载均衡配置
我们在controller层添加一个测试方法,用来获取配置文件
@GetMapping("/getDate")
public String getDate(){
return LocalDate.now().format(DateTimeFormatter.ofPattern(dateFormat));
}
通过@Value注解来获取信息
@Value(“${pattern.dateFormat}”)
private String dateFormat;
这里在说一个注解 "@RefreshScope"
这是配置热更新,在controller类上添加
浏览器进行测试访问,结果报了这个错误
查找原因是我把类用错了,应该使用LocalDateTime这个类,不然没有HH这个参数的,改了之后,再次访问就可以啦!!!
@ConfigurationProperties注解
创建配置类"@ConfigurationProperties(prefix = "pattern")"
通过前缀来读取配置文件文章来源:https://www.toymoban.com/news/detail-776048.html
package cn.itcast.user.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/**
* @author Administrator
*/
@Data
@Component
@ConfigurationProperties(prefix = "pattern")
public class DateProperties {
private String dateFormat;
}
修改controller层的代码
注释掉之前的读取配置的方法
启动服务,再来测试
这次改下日期格式
文章来源地址https://www.toymoban.com/news/detail-776048.html
到了这里,关于nacos的服务注册与配置(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!