组件说明
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/na...
也可参考:https://nacos.io/en-us/docs/q...
2.服务注册与发现实例
运行3个实例:8050、8051注册到nacos上面
2.1创建父工程
1.创建工程
2.修改pom.xml
2.2 创建consumer工程
添加相关依赖
<!--依赖版本定义-->
<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>
再次添加:
<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/
查看服务列表:
2.3 创建provider工程
类似的我们创建nacos-discovery-provider工程,并添加对应配置
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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。