SpringCloud Alibaba 学习

SpringCloud Alibaba 学习

SpringCloud Nacos Config 配置中心

  • 第一步:git上下载nacos源码。
# 下载源码
git clone https://github.com/alibaba/nacos.git
# 进入nacos文件夹,打开cmd窗口执行
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U 
  • 第二步:进入distribution\target\nacos-server-1.2.1\nacos\bin 命令窗口下执行 startup.cmd -m standalone即可启动nacos。

因为下载下来的nacos-server使用的时cluster集群模式,这个模式是要求使用mysql的。启动命令指定为单机模式启动
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EdiKUVVF-1624350777039)(SpringCloud-Nacos_files/1.png)]

  • 第三步 访问控制台显示的nacos网址

http://localhost:8848/nacos 用户名和密码都是nacos

  • 第四步 创建SpringBoot工程 引入依赖
	<properties>
		<spring-cloud.version>Greenwich.SR6</spring-cloud.version>
        <spring-cloud-alibaba.version>2.1.4.RELEASE</spring-cloud-alibaba.version>
    </properties>

	<!-- SpringBoot版本管理 -->
	<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.8.RELEASE</version>
        <relativePath/>
    </parent>

	<!-  SpringCloud依赖管理 -->
	<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
			<!-- alibaba的springcloud组件依赖管理  -->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

	<!-- nacos配置中心依赖 -->
	<dependency>
		<groupId>com.alibaba.cloud</groupId>
		<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
	</dependency>
  • 注意 版本依赖问题

在这里插入图片描述

  • 第五步 写配置文件 bootstrap.properties

因为bootstrap.properties加载顺序比application.properties要早,所以springcloud-nacos-config的配置信息要在bootstrap.properties中定义,否则配置中心失效因为找不到配置中心注册地址信息

# bootstrap.properties

spring.application.name=example
spring.profiles.active=dev
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.group=lzj
spring.cloud.nacos.config.file-extension=yml
spring.cloud.nacos.config.encode=utf-8

在nacos配置中心可视化的dataid 要与 配置文件中 s p r i n g . a p p l i c a t i o n . n a m e − {spring.application.name}- spring.application.name{spring.profiles.active}. s p r i n g . c l o u d . n a c o s . c o n f i g . f i l e − e x t e n s i o n , 如 果 不 配 置 s p r i n g . p r o f i l e s . a c t i v e , d a t a i d 中 ‘ − {spring.cloud.nacos.config.file-extension},如果不配置spring.profiles.active,dataid中‘- spring.cloud.nacos.config.fileextension,spring.profiles.activedataid{spring.profiles.active}’也不需要了
group 也要与配置文件中 spring.cloud.nacos.config.group【默认组是 DEFAULT_GROUP】 一致

  • 第六步 编写Controller测试动态配置文件
@RestController
@RequestMapping("/config")
@RefreshScope
public class ConfigController {

    @Value("${Person.name:CESHI_LZJ}")
    private String name;
    @Value(value = "${Person.age:25}")
    private Integer age;
    @Value(value = "${Person.sex:CESHI_LZJ_MAN}")
    private String sex;

    @RequestMapping("/get")
    public Map<String, Object> get() {
        Map<String, Object> map = Maps.newHashMap();
        map.put("name", name);
        map.put("age", age);
        map.put("sex", sex);
        return map;
    }
}

SpringCloud Nacos Config 配置中心 多文件加载与共享配置

通过配置配置文件
# bootstrap.properties

spring.cloud.nacos.config.shared-configs[0].data-id=admin-log.yml
spring.cloud.nacos.config.shared-configs[0].group=lzjShare
spring.cloud.nacos.config.shared-configs[0].refresh=true

spring.cloud.nacos.config.shared-configs[1].data-id=admin-mysql.yml
spring.cloud.nacos.config.shared-configs[1].group=lzjShare
spring.cloud.nacos.config.shared-configs[1].refresh=true

# 默认情况下,只有默认加载的配置才会自动刷新,对于这些扩展的配置加载内容需要配置该设置时候才会实现自动刷新。
# 如果不同配置文件存在相同的key时,后面加载的配置会覆盖之前加载的配置。

SpringCloud Nacos Discovery 注册中心

  • 第一步:引入注册中心的依赖
	<dependency>
		<groupId>com.alibaba.cloud</groupId>
		<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
	</dependency>
  • 第二步:在配置文件中加入注册地址
# application.yml

spring:
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
  • 第三步:在启动类加上 @EnableDiscoveryClient 注解
  • 第四步:写一个Controller测试Rest远程服务调用测试注册中心是否生效
@RestController
public class TestController {

    @Autowired
    LoadBalancerClient loadBalancerClient;


    @GetMapping("/toGetUser")
    public Map toGetUser() {
        // 通过spring cloud common中的负载均衡接口选取服务提供节点实现接口调用
        ServiceInstance serviceInstance = loadBalancerClient.choose("user");
        String url = serviceInstance.getUri() + "/config/get";
        System.out.println(url);
        RestTemplate restTemplate = new RestTemplate ();
        return restTemplate.getForObject(url, Map.class);
    }

}

Nacos数据持久化

在搭建Nacos集群之前,我们需要先修改Nacos的数据持久化配置为MySQL存储。默认情况下,Nacos使用嵌入式数据库实现数据的存储。所以,如果启动多个默认配置下的Nacos节点,数据存储是存在一致性问题的。为了解决这个问题,Nacos采用了集中式存储的方式来支持集群化部署,目前只要支持MySQL的存储。
  • 第一步:安装数据库,版本要求:5.6.5+
  • 第二步:初始化MySQL数据库,数据库初始化文件: nacos-mysql.sql,该文件可以在Nacos程序包下的 conf目录下获得。
  • 第三步:修改 conf/application.properties文件,增加支持MySQL数据源配置,添加(目前只支持mysql)数据源的url、用户名和密码





一键查询淘宝/拼多多内部优惠券,每日大额外卖红包,购物省钱的宝藏工具
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值