SpringCloudAlibaba-1-nacos服務註冊與發現

組件說明  

1. 服務註冊與發現:適配Spring Cloud服務註冊與發現標準,默認集成了Ribbon的支持  
2. 服務限流降級:默認支持servlet、Feign、RestTemplate、Dubbo和RocketMQ限流降級接入,能夠在運行時經過控制檯實時修改限流配置規則,還支持查看限流降級Metrics監控。  
3. 分佈式配置管理:支持分佈式系統中的外部化配置,配置更改時自動刷新。  
4. 消息驅動能力:基於Spring Cloud Stream 爲微服務應用構建消息驅動能力。  
5. 分佈式事務:使用@GlobalTransactional註解,高效而且對業務零侵入地解決分佈式事務問題。
6. 阿里雲對象存儲:阿里雲提供海量、安全、低成本、高可靠的雲存儲服務。支持在任何應用、任什麼時候間、任何地點存儲和訪問任意類型的數據。  
7. 分佈式任務調度:提供秒級、精準、高可靠、高可用的定時(基於Cron表達式) 任務調度服務。同時提供分佈式的任務執行模型,如網格任務。網格任務支持海量子任務均勻分配到全部Worker(schedulerx-client)上執行。  
8. 阿里雲短信服務:覆蓋全球的短信服務,友好、高效、智能的互聯化通信能力,幫助企業迅速搭建客戶觸達通道。html

nacos  

nacos=eureka+Spring Cloud Configgit

1.下載運行nacos

下載地址:  
https://github.com/alibaba/na...    
也可參考:https://nacos.io/en-us/docs/q...   github

8.png

2.服務註冊與發現實例

9.png
運行3個實例:8050、8051註冊到nacos上面spring

2.1建立父工程

1.建立工程
10.png安全

11.png

12.png

2.修改pom.xml
13.pngapp

2.2 建立consumer工程

14.png

15.png
添加相關依賴
16.png分佈式

<!--依賴版本定義-->  
    <dependencyManagement>  
        <dependencies>  
            <dependency>  
                <groupId>org.springframework.cloud</groupId>  
                <artifactId>spring-cloud-dependencies</artifactId>  
                <version>Greenwich.RELEASE</version>  
                <type>pom</type>  
                <scope>import</scope>  
            </dependency>  
            <dependency>  
                <groupId>org.springframework.cloud</groupId>  
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>  
                <version>0.2.1.RELEASE</version>  
                <type>pom</type>  
                <scope>import</scope>  
            </dependency>  
        </dependencies>  
    </dependencyManagement>

再次添加:ide

<dependency>  
    <groupId>org.springframework.cloud</groupId>  
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>  
</dependency>

添加Application服務發現客戶端微服務

@EnableDiscoveryClient  
@SpringBootApplication  
public class NacosDiscoveryConsumerApplication {  
    public static void main(String\[\] args) {  
        SpringApplication.run(NacosDiscoveryConsumerApplication.class, args);  
    }  
}

application.yml測試

spring:  
  application:  
    name: nacos-discovery-consumer  
  cloud:  
    nacos:  
      discovery:  
        server-addr: 127.0.0.1:8848  
server:  
  port: 8050

先啓動nacos    
https://nacos.io/en-us/docs/q...  

而後輸入:http://127.0.0.1:8848/nacos/  
查看服務列表:

17.png

2.3 建立provider工程

相似的咱們建立nacos-discovery-provider工程,並添加對應配置  

18.png

2.4  讓consumer去調用provider

1. 1.provider建立HelloController

@RestController  
public class HelloController {  
    @GetMapping("/hello")  
    public String hello(String name){  
        return "Hello "+name;  
    }  
}

2. 2.provider建立HelloController

@RestController  
public class TestController {  
    @Autowired  
    private RestTemplate restTemplate;  
    @Autowired  
    private LoadBalancerClient loadBalancerClient;  
    @GetMapping("/test")  
    public String test(String name){  
        ServiceInstance serviceInstance = loadBalancerClient.choose("nacos-discovery-provider");  
        URI uri = serviceInstance.getUri();  
        return restTemplate.getForObject(uri+"/hello?name="+name, String.class);  
    }  
}  
//NacosDiscoveryConsumerApplication注入:RestTemplate    
@EnableDiscoveryClient  
@SpringBootApplication  
public class NacosDiscoveryConsumerApplication {  
    public static void main(String\[\] args) {  
        SpringApplication.run(NacosDiscoveryConsumerApplication.class, args);  
    }  
    @Bean  
    public RestTemplate restTemplate(){  
        return new RestTemplate();  
    }  
}

3.測試

http://127.0.0.1:8050/test?name=qaws   結果返回:   Hello qaws

相關文章
相關標籤/搜索