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=eureka+Spring Cloud Configgit
下載地址:
https://github.com/alibaba/na...
也可參考:https://nacos.io/en-us/docs/q... github
運行3個實例:8050、8051註冊到nacos上面spring
1.建立工程 安全
2.修改pom.xmlapp
添加相關依賴 分佈式
<!--依賴版本定義--> <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/
查看服務列表:
相似的咱們建立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