SpringCloud入门(二十七) ------ spring cloud Alibaba Nacos实现服务注册与发现
程序员文章站
2022-06-13 22:28:49
...
spring cloud Alibaba
2018年10月31日,spring cloud Alibaba 正式入驻spring cloud 官方孵化器,并在Maven*库发布第一个版本。
spring cloud Alibaba 作用:
- 服务限流降级:默认支持 servlet,feign,RestTemplate,Dubbo和Rocket限流降级功能的接入,可以在运行时通过控制台实时修改限流降级规则,还支持查看限流降级 Metrics监控。
- 服务注册与发现:适配springcloud 服务注册与发现标准,默认集成了 Ribbon的支持。
- 消息驱动能力:基于Spring cloud stream 为微服务应用构建消息驱动能力。
- 阿里云对象存储:阿里云提供海量,安全,低成本,高可靠的云存储服务。支持在任何应用,任何地点,任何时间访问任意类型的数据。
- 分布式调度:提供秒级,精准,高可靠,高可用的定时任务调度服务,同时提供分布式任务执行模型,如网格任务。网格任务支持海量子任务均匀分配到所有Worker上执行。
Nacos:
一个易于构建云原生应用的动态服务发现,配置管理和服务管理平台。
通俗来说就是:注册中心+配置中心
代替eureka做注册中心。
代替config做配置中心。
使用Nacos 搭建服务注册与发现:
官网下载 nacos-server(本次使用1.1.4版本),并解压,进入bin目录,cmd 执行startup.cmd,会看到如下界面:
启动后访问浏览器:http://localhost:8848/nacos 用户名与密码都是nacos,出现如下界面,代表启动成功。
搭建提供者:
Dependency Management:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.1.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
pom依赖:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
yml:
server:
port: 10001
spring:
application:
name: jym-springcloudAlibaba-payment
cloud:
nacos:
discovery:
server-addr: localhost:8848 # nacos地址
management:
endpoints:
web:
exposure:
include: "*"
启动类:
@SpringBootApplication
@EnableDiscoveryClient
public class NacosPaymentApplication10001 {
public static void main(String[] args) {
SpringApplication.run(NacosPaymentApplication10001.class,args);
}
}
controller:
@RestController
public class NacosController {
@Value("${server.port}")
private String serverPort;
@GetMapping("/configInfo")
public String configInfo() {
return "port= "+serverPort;
}
}
搭建服务的消费者:
pom依赖跟yml文件都与提供者一样。
启动类:
@SpringBootApplication
@EnableDiscoveryClient
public class NacosOrderApplication10011 {
public static void main(String[] args) {
SpringApplication.run(NacosOrderApplication10011.class,args);
}
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
controller:
@RestController
@RequestMapping("/consumer")
public class NacosOrderController {
@Resource
private RestTemplate restTemplate;
@Resource
private LoadBalancerClient loadBalancerClient;
@Value("${spring.application.name}")
private String appName;
@GetMapping("/configInfo")
public String configInfo() {
ServiceInstance serviceInstance = loadBalancerClient.choose("jym-springcloudAlibaba-payment");
String path = String.format("http://%s:%s/configInfo",serviceInstance.getHost(),serviceInstance.getPort());
return restTemplate.getForObject(path,String.class);
}
}
负载均衡策略:
Nacos已经集成了ribbon 所以自动负载均衡。
学习年限不足,知识过浅,说的不对请见谅。
世界上有10种人,一种是懂二进制的,一种是不懂二进制的。
推荐阅读
-
SpringCloud第二代实战系列:一文搞定Nacos实现服务注册与发现
-
Spring Cloud Alibaba(1) 实现服务注册与发现 Nacos Discovery
-
Nacos快速入门(三):Spring Cloud Alibaba Nacos实现服务注册与发现
-
微服务解决方案 -- Spring Cloud Alibaba (一)服务的注册与发现
-
Spring Cloud微服务脚手架搭建实战——SpringCloud Alibaba Sentinel实现熔断与限流介绍
-
SpringCloud入门(二十七) ------ spring cloud Alibaba Nacos实现服务注册与发现
-
Spring Cloud入门-Consul服务注册发现与配置中心(Hoxton版本)
-
【JAVA】SpringCloud-Alibaba 结合 Nacos 实现配置动态刷新和服务注册发现
-
SpringCloud Alibaba 入坑(一)Nacos 服务注册与发现
-
Spring Cloud Alibaba 实战 之 Nacos 服务注册和发现