Spring Boot 下注册中心的配置
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>2.1.2.RELEASE</version></dependency>
#注册中心地址spring.cloud.nacos.discovery.server-addr=127.0.0.1:8000spring.cloud.nacos.discovery.namespace=9403ddc2-f9b1-4220-b22c-3572ddaf9c6bspring.cloud.nacos.discovery.group=TEST_GROUP




2020-05-17 23:28:59.200 INFO 22564 --- [ main] com.alibaba.nacos.client.naming : [BEAT] adding beat: {"cluster":"DEFAULT","ip":"192.168.19.1","metadata":{"preserved.register.source":"SPRING_CLOUD"},"period":5000,"port":8001,"scheduled":false,"serviceName":"TEST_GROUP@@nacos-test","stopped":false,"weight":1.0} to beat map.2020-05-17 23:28:59.265 INFO 22564 --- [ main] com.alibaba.nacos.client.naming : [REGISTER-SERVICE] 9403ddc2-f9b1-4220-b22c-3572ddaf9c6b registering service TEST_GROUP@@nacos-test with instance: {"clusterName":"DEFAULT","enabled":true,"ephemeral":true,"healthy":true,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000,"ip":"192.168.19.1","ipDeleteTimeout":30000,"metadata":{"preserved.register.source":"SPRING_CLOUD"},"port":8001,"weight":1.0}2020-05-17 23:28:59.308 INFO 22564 --- [ main] c.a.c.n.registry.NacosServiceRegistry : nacos registry, TEST_GROUP nacos-test 192.168.19.1:8001 register finished

点击详情,可以看到我们注册的TEST_GROUP分组。

package com.tolerance.nacosclient.controller;import com.alibaba.nacos.api.exception.NacosException;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;@Controller@RequestMapping("/discovery")public class DiscoveryController {@RequestMapping("/test")@ResponseBodypublic String test() throws NacosException {System.out.println("============");return " INTER DiscoveryController test ";}}


<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.tolerance</groupId><artifactId>tolerance</artifactId><version>1.0.0</version></parent><groupId>com.tolerance</groupId><artifactId>nacos-caller</artifactId><version>0.0.1-SNAPSHOT</version><name>nacos-caller</name><description>Demo project for Spring Boot</description><properties><nacos.version>1.2.1</nacos.version></properties><dependencies><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId><version>2.1.2.RELEASE</version></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>2.1.2.RELEASE</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies></project>
#配置中心地址spring.cloud.nacos.config.server-addr=localhost:8000#读取文件类型,支持properties和yamlspring.cloud.nacos.config.file-extension=properties#读取文件的名称前缀,默认是spring.application.name的值spring.cloud.nacos.config.prefix=nacos-caller#读取文件所在的命名空间 命名空间的ID,目前不支持名称spring.cloud.nacos.config.namespace=9403ddc2-f9b1-4220-b22c-3572ddaf9c6b#读取文件所在的分组spring.cloud.nacos.config.group=CALLER-GROUP#构成 Nacos 配置管理 dataId字段的一部分 完整命名规则为:${prefix}-${spring.profile.active}.${file-extension}spring.application.name=nacos-caller#服务发现配置开始#注册中心地址spring.cloud.nacos.discovery.server-addr=127.0.0.1:8000spring.cloud.nacos.discovery.namespace=9403ddc2-f9b1-4220-b22c-3572ddaf9c6b#服务分组spring.cloud.nacos.discovery.group=NACOS-CLIENT-GROUP#服务名称spring.cloud.nacos.discovery.service=nacos-server
package com.tolerance.nacoscaller.controller;import com.sun.org.apache.bcel.internal.generic.RET;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Value;import org.springframework.cloud.context.config.annotation.RefreshScope;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import org.springframework.web.client.RestTemplate;@RestController@RequestMapping("/test")@RefreshScopepublic class TestController {@Value("${server.port}")private String port;@Value("${spring.application.name}")private String applicationName;@Value("${GroupEnv}")private String groupEnv;@Autowiredprivate RestTemplate restTemplate;private String url = "http://nacos-client/test/getENV";@RequestMapping("/getENV")public String getENV() {System.out.println("applicationName======"+applicationName);System.out.println("groupEnv======"+groupEnv);System.out.println("port======"+port);return restTemplate.getForObject(url,String.class);// return applicationName+"--"+groupEnv+"--"+port;}}
package com.tolerance.nacoscaller;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.client.discovery.EnableDiscoveryClient;import org.springframework.cloud.client.loadbalancer.LoadBalanced;import org.springframework.context.annotation.Bean;import org.springframework.web.client.RestTemplate;@SpringBootApplication@EnableDiscoveryClientpublic class NacosCallerApplication {public static void main(String[] args) {SpringApplication.run(NacosCallerApplication.class, args);}@Bean@LoadBalancedpublic RestTemplate restTemplate(){return new RestTemplate();}}



#配置中心地址spring.cloud.nacos.config.server-addr=localhost:8000#读取文件类型,支持properties和yamlspring.cloud.nacos.config.file-extension=properties#读取文件的名称前缀,默认是spring.application.name的值spring.cloud.nacos.config.prefix=nacos-cloud-client#读取文件所在的命名空间 命名空间的ID,目前不支持名称spring.cloud.nacos.config.namespace=9403ddc2-f9b1-4220-b22c-3572ddaf9c6b#读取文件所在的分组spring.cloud.nacos.config.group=CLOUD-CLIENT-GROUP#构成 Nacos 配置管理 dataId字段的一部分 完整命名规则为:${prefix}-${spring.profile.active}.${file-extension}spring.application.name=nacos-cloud-client#服务发现配置开始#注册中心地址spring.cloud.nacos.discovery.server-addr=127.0.0.1:8000spring.cloud.nacos.discovery.namespace=9403ddc2-f9b1-4220-b22c-3572ddaf9c6b#服务分组spring.cloud.nacos.discovery.group=NACOS-CLIENT-GROUP#服务名称spring.cloud.nacos.discovery.service=nacos-client
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.tolerance</groupId><artifactId>tolerance</artifactId><version>1.0.0</version></parent><groupId>com.tolerance</groupId><artifactId>nacos-spring-client</artifactId><version>0.0.1-SNAPSHOT</version><name>nacos-spring-client</name><description>Demo project for Spring Boot</description><properties><nacos.version>1.2.1</nacos.version></properties><dependencies><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId><version>2.1.2.RELEASE</version></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>2.1.2.RELEASE</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies></project>
package com.tolerance.nacosspringclient.controller;import com.alibaba.nacos.api.annotation.NacosInjected;import com.alibaba.nacos.api.exception.NacosException;import com.alibaba.nacos.api.naming.NamingService;import com.alibaba.nacos.api.naming.pojo.Instance;import org.springframework.beans.factory.annotation.Value;import org.springframework.cloud.context.config.annotation.RefreshScope;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.bind.annotation.RestController;import java.util.List;@RestController@RequestMapping("/test")@RefreshScopepublic class TestController {@Value("${server.port}")private String port;@Value("${spring.application.name}")private String applicationName;@Value("${GroupEnv}")private String groupEnv;@NacosInjectedprivate NamingService namingService;@RequestMapping("/getENV")public String getENV() {System.out.println("applicationName======"+applicationName);System.out.println("groupEnv======"+groupEnv);System.out.println("port======"+port);return applicationName+"--"+groupEnv+"--"+port;}@RequestMapping(value = "/getnamingService")@ResponseBodypublic List<Instance> getnamingService(@RequestParam String serviceName) throws NacosException {System.out.println("serviceName======"+serviceName);return namingService.getAllInstances(serviceName);}}




<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.tolerance</groupId><artifactId>tolerance</artifactId><version>1.0.0</version></parent><groupId>com.tolerance</groupId><artifactId>nacos-cloud-client</artifactId><version>0.0.1-SNAPSHOT</version><name>nacos-cloud-client</name><description>Demo project for Spring Boot</description><properties><nacos.version>1.2.1</nacos.version></properties><dependencies><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId><version>2.1.2.RELEASE</version></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>2.1.2.RELEASE</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies></project>
package com.tolerance.nacoscloudclient.controller;import com.alibaba.nacos.api.annotation.NacosInjected;import com.alibaba.nacos.api.exception.NacosException;import com.alibaba.nacos.api.naming.NamingService;import com.alibaba.nacos.api.naming.pojo.Instance;import org.springframework.beans.factory.annotation.Value;import org.springframework.cloud.context.config.annotation.RefreshScope;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.bind.annotation.RestController;import java.util.List;@RestController@RequestMapping("/test")@RefreshScopepublic class TestController {@Value("${server.port}")private String port;@Value("${spring.application.name}")private String applicationName;@Value("${GroupEnv}")private String groupEnv;@NacosInjectedprivate NamingService namingService;@RequestMapping("/getENV")public String getENV() {System.out.println("applicationName======"+applicationName);System.out.println("groupEnv======"+groupEnv);System.out.println("port======"+port);return applicationName+"--"+groupEnv+"--"+port;}@RequestMapping(value = "/getnamingService")@ResponseBodypublic List<Instance> getnamingService(@RequestParam String serviceName) throws NacosException {System.out.println("serviceName======"+serviceName);return namingService.getAllInstances(serviceName);}}










但是我们一般会使用更专业的流控组件来控制,更详细的以后再细说。这里的简单控制可以自行测试一下,不在赘述。
↓扫码关注不迷路,更多操作持续更新中↓

文章转载自重塑之路,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




