Nacos
下载安装
- 下载:github.com/alibaba/nac...
- 启动:
startup.cmd -m standalone - 访问:http://localhost:8848/nacos/ 账号密码:nacos
基础概念
- nacos配置中心通过
namespace、group和dataId来唯一确定一条配置, - dataId的格式:
${prefix}-${spring.profiles.active}.${file-extension}prefix:默认为spring.application.namespring.profiles.active:当前激活的环境,当spring.profiles.active为空时,对应的连接符-也将不存在,dataId的拼接格式变 成:${prefix}.${file-extension}${file-extension}:默认为properties
- 拉取多个共享文件,要在同一命名空间下,不能跨命名空间
- 注意springboot和springcloud的版本对应
配置中心
-
引入依赖
java<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> <version>4.1.5</version> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>2021.0.1.0</version> </dependency> -
完整
bootstrap.properties配置:propertiesspring.application.name=testccb spring.cloud.nacos.config.username=nacos spring.cloud.nacos.config.password=nacos spring.cloud.nacos.config.server-addr=192.168.1.211:8848 spring.cloud.nacos.config.namespace=4f4b-363e-47a5-8a-dbd288c spring.cloud.nacos.config.group=com.iotsh # 拉取共享的配置 spring.cloud.nacos.config.extension-configs[0].data-id=testccb.properties spring.cloud.nacos.config.extension-configs[0].group=ccb spring.cloud.nacos.config.extension-configs[0].refresh=true
注册中心
-
引入依赖
java<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> <version>4.1.5</version> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>2021.0.1.0</version> </dependency>
-
配置文件
propertiesspring.cloud.nacos.discovery.server-addr=192.168.1.211:8848 spring.cloud.nacos.discovery.username=nacos spring.cloud.nacos.discovery.password=nacos spring.cloud.nacos.discovery.namespace=ed4b94b3-deff-49f1-8973-34029756083d -
主启动类:
@EnableDiscoveryClient
OpenFeign
-
引入依赖
properties<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> -
主启动类:
@EnableFeignClientsjava@SpringBootApplication @EnableDiscoveryClient @EnableFeignClients public class EurekaClientApplication { public static void main(String[] args) { SpringApplication.run(CategoryApplication.class,args); } } -
配置文件
yamlfeign: client: config: default: connect-timeout: 5000 read-timeout: 5000 -
创建
FeignClient(调用者),注意传参java@FeignClient(value = "product") // 被调用的服务名称 public interface ProductClient { @RequestMapping("/status") // 被调用的服务接口 public String status(); @GetMapping("/paramRequest") public String paramRequest(@RequestParam("id") Integer id, @RequestParam("name") String name); @PostMapping("/bodyRequest") public String bodyRequest(@RequestBody User user); } -
Controller中使用
java@RestController public class UserController { @Autowired private ProductClient productClient; @GetMapping("/find") public String find(){ return productClient.status(); } }
-
被调用的服务
java@RestController public class ProductController { // 没有参数 @RequestMapping("/status") public String status(){ return "client b is ok!"; } // param参数 @GetMapping("/paramRequest") public String paramRequest(@RequestParam("id") Integer id, @RequestParam("name") String name){ return "paramRequest method is ok!, id:" + id +", name:"+ name; } // body有参数 @PostMapping("/bodyRequest") public String bodyRequest(@RequestBody User user){ return "bodyRequest method is ok!, user:" + user.toString(); } }