定制软件开发下载到本地,可以双击startup.cmd进行启动,默认为8848端口
定制软件开发作为注册中心
定制软件开发首先导入依赖
- <dependency>
- <groupId>com.alibaba.cloud</groupId>
- <artifactId>spring-cloud-alibaba-nacos-discovery</artifactId>
- <version>2.1.0.RELEASE</version>
- </dependency>
定制软件开发在配置文件中配置Nacos Server地址
- # 应用名称
- spring.application.name=nacos1
- spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
定制软件开发在主类添加注解,将自己的服务注册进来
@EnableDiscoveryClient //开启服务注册发现
此时启动nacos后,在启动项目就可以将项目注册进去
Feign是一个声明式的Http客户端,提供了http请求模板,通过编写简单的接口和插入注解,就可以定义好http请求参数、格式、地址等信息。
Feign整合了Ribbon(负载均衡)和Hystrix(服务熔断),可以让我们不再需要显式的使用这两个组件
远程调用使用方式:
1.对项目添加依赖,引入feign
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-starter-openfeign</artifactId>
- <version>2.2.1.RELEASE</version>
- </dependency>
2.编写接口,编写接口告诉springcloud需要调用远程服务
- @FeignClient("nacos1") //对应服务名
- public interface feigndemo {
- //找到想要调用其他服务的方法复制过来
- @RequestMapping("/lzq/testfeign") //路径要写全
- public R testfeign();
- }
此时我们在当前方法调用接口时,就会自动在注册中心找到对应的服务访问对应的接口
还需在主类加入注解@EnableFeignClients,开启客户端的远程调用
同时可以指定对应接口包的全类名,只要服务启动就会自动扫描
@EnableFeignClients(basePackages = "com.lzq.feign")
配置中心
首先引入依赖建立连接
- <dependency>
- <groupId>com.alibaba.cloud</groupId>
- <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
- <version>2.1.0.RELEASE</version>
- </dependency>
在项目中创建bootstrap.properties文件,这个文件会优先于application.properties文件加载
在其中配置服务名称以及地址
- spring.application.name=nacos1
- spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
动态修改配置文件
登陆nacos网址,在配置列表配置需要动态修改的信息
Data ID为服务名字+.properties,配置文件选择properties,编写好配置后点击发布
在对应方法中添加注解@RefreshScope注解
- @RefreshScope
- @RestController
- public class Demo {
-
- @Value("${shop.zhekou}")
- private String zk;
- }
此时通过代码获取对应值,就可以动态修改对应配置值
细节:命名空间、配置集、配置ID、配置分组
命名空间:默认public,主要作用配置隔离,(可以通过多个命名空间对应测试、生成环境),可以通过在bootstrap.properties中指定命名空间
spring.cloud.nacos.config.namespace=xxxxx
配置分组:相同命名空间可根据活动不同采取不同的配置,指定对应分组
spring.cloud.nacos.config.group=dev
管理数据源
- spring.cloud.nacos.config.ext-config[0].data-id=datasource.yml
- spring.cloud.nacos.config.ext-config[0].group=dev
- spring.cloud.nacos.config.ext-config[0].refresh=true //动态刷新
-
- spring.cloud.nacos.config.ext-config[1].data-id=mybatis.yml
- spring.cloud.nacos.config.ext-config[1].group=dev
- spring.cloud.nacos.config.ext-config[1].refresh=true