Kite的学习历程SpringCloud之基于Nacos的服务消费者的创建

    技术2024-10-11  60

    Kite学习历程的第二十七天

    目录

    Kite学习历程的第二十七天1. Nacos的服务消费者的创建1.1 创建Module为cloudalibaba-consumer-nacos-order831.1.1 首先修改pom.xml文件引入依赖1.1.2 创建application.yml依赖文件1.1.3 创建主启动类1.1.4 创建config包,以及ApplicationContextConfig1.1.5 创建controller包以及该包下的 2. 创建完成后进行测试

    1. Nacos的服务消费者的创建

    1.1 创建Module为cloudalibaba-consumer-nacos-order83

    1.1.1 首先修改pom.xml文件引入依赖

    映入的jar依赖文件于服务者相同

    <dependencies> <!--nacos依赖的引入--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <!--引入自己创建的entities包--> <dependency> <groupId>cn.kitey.spring</groupId> <artifactId>cloud-api-commons</artifactId> <version>${project.version}</version> </dependency> <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>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId><!-- --> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-commons</artifactId> <version>2.2.1.RELEASE</version> <scope>compile</scope> </dependency> </dependencies>

    1.1.2 创建application.yml依赖文件

    service-url 这个的创建时便于Controller中引入访问的url

    server: port: 83 spring: application: name: nacos-order-consumer cloud: nacos: discovery: server-addr: localhost:8848 #消费者将要访问的微服务名称(注册成功进nacos微服务提供者)方便用户在controller中读取访问的url路径 service-url: nacos-user-service: http://nacos-payment-provider

    1.1.3 创建主启动类

    注意引入的注解为: @EnableDiscoveryClient

    @SpringBootApplication @EnableDiscoveryClient public class NacosOrder83 { public static void main(String[] args) { SpringApplication.run(NacosOrder83.class, args); } }

    1.1.4 创建config包,以及ApplicationContextConfig

    主要用于创建RestTemplate 注意: nacos实现负载均衡的底层时ribbon,所以注意一定要添加注解 @LoadBalanced

    @Configuration public class ApplicationContextConfig { @Bean @LoadBalanced //使用ribbon实现负载均衡时,一定要添加该注解 public RestTemplate getRestTemplate(){ return new RestTemplate(); } }

    1.1.5 创建controller包以及该包下的

    注意: 这里的serverURl就是通过application配置文件进行引入的

    @RestController @Slf4j public class NacosController { //创建tRestTemplate @Resource private RestTemplate restTemplate; //在配置文件读取访问地址 @Value("${service-url.nacos-user-service}") private String serverURL; @GetMapping("/consumer/payment/nacos/{id}") public String paymentInfo(@PathVariable("id") Long id){ return restTemplate.getForObject(serverURL + "/payment/nacos/" + id, String.class); } }

    2. 创建完成后进行测试

    启动服务端9001,9002,然后启动消费端83在nacos注册中心查看,三个服务是否注册进了nacos 访问:http://localhost:83/consumer/payment/nacos/1 检测访问是否成功,以及是否实现了负载均衡 第一次访问: 端口:9001 第二次访问: 端口9002 表明实现了负载均衡!
    Processed: 0.012, SQL: 9