当前位置:网站首页>【微服务~Nacos】Nacos服务提供者和服务消费者
【微服务~Nacos】Nacos服务提供者和服务消费者
2022-07-30 01:21:00 【本本的香菜】
??这里是【微服务~Nacos】,关注我学习云原生不迷路
??如果对你有帮助,给博主一个免费的点赞以示鼓励
欢迎各位??点赞??评论收藏
??专栏介绍
【微服务~Nacos】 目前主要更新微服务,一起学习一起进步。
??本期介绍
本期主要介绍微服务~Nacos
文章目录
搭建父项目
项目名:nacos-parent-2.1
添加坐标
org.springframework.cloud spring-cloud-build 2.3.5.RELEASE<properties> <spring.cloud.version>Hoxton.SR12</spring.cloud.version> <spring.cloud.alibaba.version>2.2.7-SNAPSHOT</spring.cloud.alibaba.version> <mybatis.plus.starter.version>3.4.0</mybatis.plus.starter.version> <durid.starter.version>1.1.10</durid.starter.version> <swagger.version>2.7.0</swagger.version> <jwt.jjwt.version>0.9.0</jwt.jjwt.version> <jwt.joda.version>2.9.7</jwt.joda.version> </properties> <dependencyManagement> <dependencies> <!-- Spring Dependencies --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${spring-boot.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring.cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>2.2.7.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> <!-- mybatis-plus --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>${mybatis.plus.starter.version}</version> </dependency> <!-- Druid连接池 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>${durid.starter.version}</version> </dependency> <!--swagger2--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>${swagger.version}</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>${swagger.version}</version> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <configuration> <skip>true</skip> </configuration> </plugin> </plugins> </build>项目目录结构

服务提供者Provider
搭建服务
创建项目:nacos-provider-2.1
添加依赖:
org.springframework.boot spring-boot-starter-web<!-- nacos 服务发现 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> </dependencies>创建yml文件
#server.port=8070
#spring.application.name=service-provider
#spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
#端口号
server:
port: 8070spring:
application:
name: service-provider #服务名
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848 #nacos服务地址
创建服务
- 启动类

package com.czxy.nacos;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@SpringBootApplication
@EnableDiscoveryClient //服务发现
public class TestNacosProviderApplication {
public static void main(String[] args) {
SpringApplication.run(TestNacosProviderApplication.class, args );
}
}
- 处理类controller

package com.czxy.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
@RestController
public class EchoController {
@Resource
private HttpServletRequest request;
@GetMapping("/echo/{string}")
public String echo(@PathVariable String string) {
int serverPort = request.getServerPort();
return "Hello Nacos Discovery " + string + ":" + serverPort;
}
}
查看服务
- 通过浏览器访问

- 通过Nacos控制台查看

注册异常

服务消费者Consumer
搭建服务
项目名:nacos-consumer-2.1
添加依赖
org.springframework.boot spring-boot-starter-web<!-- nacos 服务发现 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <!-- openfeign 远程调用 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> </dependencies>创建配置文件

#server.port=8071
#spring.application.name=service-consumer
#spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
#端口号
server:
port: 8071
spring:
application:
name: service-consumer #服务名
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848 #nacos服务地址
创建服务
- 创建启动类

package com.czxy;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@SpringBootApplication
@EnableDiscoveryClient //服务发现
public class TestNacosConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(TestNacosConsumerApplication.class, args );
}
}
- 远程调用配置类

package com.czxy.config;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
@Component
public class RestTemplateConfig {
@LoadBalanced //负载均衡
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
处理类
package com.czxy.nacos.controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;import javax.annotation.Resource;
@RestController
public class TestRestController {
@Resource
private RestTemplate restTemplate;@RequestMapping(value = "/echo/{str}", method = RequestMethod.GET) public String echo(@PathVariable String str) { return restTemplate.getForObject("http://service-provider/echo/" + str, String.class); }}
查询服务
- 通过浏览器访问

通过Nacos控制台查看


先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
- 日期时间存入数据库会差一天?
- Graph Theory: Bipartite Graphs
- 泰克Tektronix示波器软件TDS1012|TDS2002|TDS2004上位机软件NS-Scope
- Linux - install MySQL (detailed tutorial)
- 自学HarmonyOS应用开发(56)- 用Service保证应用在后台持续运行
- 这是一道非常有争议的题,我的分析如下: TCP/IP在多个层引入了安全机制,其中TLS协议位于______。 A.数据链路层 B.网络层 C.传输层 D.应用层
- 旋转数组的最小数字
- 百度智能云章淼:详解企业级七层负载均衡开源软件BFE
- Weekly recommended short video: What is R&D efficiency?It can achieve anti "involution"?
- CMake Tutorial Tour(0)_Overview
猜你喜欢

机械设备制造企业如何借助ERP系统,解决成本核算难题?

Interviews with big factories under the trend of layoffs: "ByteDance"

LeetCode/Scala - without the firstborn of the string of characters, the longest text string back

工厂模式

自学HarmonyOS应用开发(47)- 自定义switch组件

解决vscode的Network不显示问题

How to increase account weight?3 ways to operate your own media to help you get more revenue

servlet执行详解

基于SSM实现个性化健康饮食推荐系统

二维数组的查找
随机推荐
Reconstruction of binary tree
Navicat for mysql crack version installation
工厂模式
9 common mistakes testers fall into
基于SSM开发实现校园疫情防控管理系统
[QNX Hypervisor 2.2用户手册]9.12 预留
FlutterBoost 3.0出现 Activity无法转换为ExclusiveAppComponent<Activity>的解决办法
LeetCode/Scala - without the firstborn of the string of characters, the longest text string back
网络原理 基础知识
【C Primer Plus第九章课后编程题】
泰克Tektronix示波器软件TDS520|TDS1001|TDS1002上位机软件NS-Scope
Weekly recommended short video: What is R&D efficiency?It can achieve anti "involution"?
帽式滑环的工作原理
重新定义分析 - EventBridge 实时事件分析平台发布
不要急,没有一朵花,从一开始就是花,也不要嚣张,没有一朵花,
Navicat error: 1045-Access denied for user [email protected](using passwordYES)
软考 --- 数据库(5)数据库控制
Running a Fabric Application
转发和重定向的区别及使用场景
Towards Better Understanding of Self-Supervised Representations / Q-Score