当前位置:网站首页>【微服务~Nacos】Nacos服务提供者和服务消费者
【微服务~Nacos】Nacos服务提供者和服务消费者
2022-08-09 21:51:00 【m0_67393828】
??这里是【微服务~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开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
- Tensorflow中使用convert_to_tensor去指定数据的类型
- Tensorflow中placeholder函数的用法
- 在VMware上安装win虚拟机
- Excel如何打出正负号?Excel打出正负号的方法
- Xiaohei leetcode's refreshing rainy day trip, just finished eating Yufei Beef Noodles, Mala Tang and Beer: 112. Path Sum
- hdu 1333 Smith Numbers(暴力思路)
- POWER SOURCE ETA埃塔电源维修FHG24SX-U概述
- Several ways to draw timeline diagrams
- 【云原生】4.2 DevOps 精讲篇
- 【测试】语句覆盖,判定覆盖,条件覆盖,路径覆盖
猜你喜欢
Word怎么设置图片衬于文字下方?两种方法教你设置Word图片衬于文字下方
AI+Medical: Using Neural Networks for Medical Image Recognition and Analysis
小黑leetcode清爽雨天之旅,刚吃完宇飞牛肉面、麻辣烫和啤酒:112. 路径总和
POWER SOURCE ETA ETA Power Repair FHG24SX-U Overview
2.1.5 大纲显示问题
POWER SOURCE ETA埃塔电源维修FHG24SX-U概述
SQLi-LABS Page-2 (Adv Injections)
TRUNCATE表之后空间未释放
knn到底咋回事?
6个规则去净化你的代码
随机推荐
重要的不是成为海贼王,而是像路飞一样去冒险
APP automation test framework - UiAutomator2 introductory
Technology Sharing | How to use the JSON Schema mode of interface automation testing?
用户代码未处理MetadataException
编译原理之文法
Several ways to draw timeline diagrams
一本通2074:【21CSPJ普及组】分糖果(candy)
hdu 1333 Smith Numbers(暴力思路)
小黑leetcode清爽雨天之旅,刚吃完宇飞牛肉面、麻辣烫和啤酒:112. 路径总和
五星控股汪建国:以“植物精神”深耕赛道,用“动物精神”推动成长
TF uses constant to generate data
OpenMLDB + Jupyter Notebook:快速搭建机器学习应用
万字总结:分布式系统的38个知识点
Word怎么制作双面席卡?使用Word制作双面席卡方法
Use zeros(), ones(), fill() methods to generate data in TF
Ehrlich screening method: Counting the number of prime numbers
Simple questions peek into mathematics
从产品角度看 L2 应用:为什么说这是一个游乐场?
Multiple reasons for MySQL slow query
MySQL跨表、多表更新SQL语句总结