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. 阿里云短信服务:覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道。

nacos

nacos=eureka+Spring Cloud Config

1.下载运行nacos

下载地址:
https://github.com/alibaba/nacos/releases
也可参考:https://nacos.io/en-us/docs/quick-start.html

2.服务注册与发现实例


运行3个实例:8050、8051注册到nacos上面

2.1创建父工程

1.创建工程

2.修改pom.xml

2.2 创建consumer工程

添加相关依赖

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!--依赖版本定义-->
<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>

再次添加:

1
2
3
4
5
6
7
8
<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);
}
}

1
2
3
application.yml

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
先启动nacos
https://nacos.io/en-us/docs/quick-start.html
然后输入:http://127.0.0.1:8848/nacos/
查看服务列表:
![](https://raw.githubusercontent.com/startshineye/img/master/2020/01/17.png)
##### 2.3 创建provider工程
类似的我们创建nacos-discovery-provider工程,并添加对应配置
![](https://raw.githubusercontent.com/startshineye/img/master/2020/01/18.png)
##### 2.4 让consumer去调用provider
1. 1.provider创建HelloController

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

1
2
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

毕业于<br>相信技术可以改变人与人之间的生活<br>码农一枚