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=eureka+Spring Cloud Config
下载地址:
https://github.com/alibaba/na...
也可参考: https://nacos.io/en-us/docs/q...
运行3个实例:8050、8051注册到nacos上面
1.创建工程
2.修改pom.xml
添加相关依赖
<!--依赖版本定义--> <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/
查看服务列表:
类似的我们创建nacos-discovery-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(); } }
http://127.0.0.1 :8050/test?name=qaws
结果返回:
Hello qaws