接着上一次的nacos初步讲解和安装

任意门:https://www.cnblogs.com/Yangbuyi/p/13479767.html

如果启动失败的话 上一篇也是讲解过的.

【笔记】 springCloud--Alibaba--服务注册和服务发现-LMLPHP

本文章开始服务注册和发现

工程准备

创建一个父模块将里面的src删除即可留下.idea和pox.xml文件

【笔记】 springCloud--Alibaba--服务注册和服务发现-LMLPHP

    <parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.3.RELEASE</version>
</parent> <!-- 全局版本控制 -->
<properties>
<springCloud.version>Hoxton.SR7</springCloud.version>
<springCloud-alibaba.version>2.1.1.RELEASE</springCloud-alibaba.version>
</properties> <dependencyManagement>
<dependencies>
<!-- springCloud 版本控制 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${springCloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency> <!-- 阿里 版本库 依赖 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${springCloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies> </dependencyManagement>

创建consumer工程模块和provide工程模块(调用者、服务者)

【笔记】 springCloud--Alibaba--服务注册和服务发现-LMLPHP

1.在consumer模块当中添加依赖

        <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- 服务发现 nacos -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

2. 手写启动类

/**
* @description: 杨不易网站:www.yangbuyi.top
* @program: springcloudalibabaparent
* @ClassName: AppConsumer
* @create: 2020-08-16 20:57
* @author: yangbuyi
* @since: JDK1.8
* @AppConsumer:
**/
@SpringBootApplication
@Slf4j
// nacos 服务发现 客户端
@EnableDiscoveryClient public class AppConsumer { public static void main(String[] args) throws UnknownHostException {
ConfigurableApplicationContext application = SpringApplication.run(AppConsumer.class, args);
Environment env = application.getEnvironment();
String ip = InetAddress.getLocalHost().getHostAddress();
String port = env.getProperty("server.port");
String path = env.getProperty("server.servlet.context-path");
String hj = env.getProperty("spring.profiles.active");
log.info("\n----------------------------------------------------------\n\t" +
"Application yangbuyiCloud is running! Access URLs:\n\t" +
"Local: \t\thttp://localhost:" + port + path + "/\n\t" +
"当前配置环境: \t\t当前环境为:" + hj + "/\n\t" +
"----------------------------------------------------------");
} /**
* @Description: 杨不易个人网址:http://yangbuyi.top
* 功能描述: @LoadBalanced 让rest 拥有负载均衡的能力
* @Param: @RestTemplate http请求服务
* @return:
* @Author: TeouBle
* @Date: 2020/8/16 20:58
*/
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
} }

3.在启动类上添加注解

nacos 服务发现 客户端 @EnableDiscoveryClient

4.在配置文件添加添加配置

server:
port: 5000
servlet:
context-path: /cloud-user
spring:
application:
name: consumer-user
cloud:
nacos:
discovery:
#nacos服务的地址 不要加http
# 可以写一个地址 集群会自动获取服务 但是为了安全起见还是全部写上
# server-addr: 127.0.0.1:8849,127.0.0.1:8850,127.0.0.1:8851
# 使用nginx反向代理
server-addr: 192.168.43.204:80
register-enabled: true
# server-addr: localhost:8850 name: 默认环境

上面看不懂的话也可直接写这样子的

server:
port: 5000
servlet:
context-path: /cloud-user
spring:
application:
name: user-client
# 将当前工程注册到nacos上面
cloud:
nacos:
discovery:
server-addr: localhost:8848 #nacos服务的地址 不要加http

5.启动工程后, 在nacos当中查询服务列表

【笔记】 springCloud--Alibaba--服务注册和服务发现-LMLPHP

nacos服务没有下载的去观看上一章节的nacos服务安装和错误解决

https://www.cnblogs.com/Yangbuyi/p/13479767.html

6.使用相同方式 把provide服务注册到nacos上

创建启动类

package top.yangbuyi;

/**
* @description: 杨不易网站:www.yangbuyi.top
* @program: springcloudalibabaparent
* @ClassName: top.yangbuyi.AppConsumer
* @create: 2020-08-16 20:57
* @author: yangbuyi
* @since: JDK1.8
* @AppConsumer:
**/
@SpringBootApplication
@Slf4j
// nacos 服务发现 客户端
@EnableDiscoveryClient public class AppProvide { public static void main(String[] args) throws UnknownHostException {
ConfigurableApplicationContext application = SpringApplication.run(AppProvide.class, args);
Environment env = application.getEnvironment();
String ip = InetAddress.getLocalHost().getHostAddress();
String port = env.getProperty("server.port");
String path = env.getProperty("server.servlet.context-path");
String hj = env.getProperty("spring.profiles.active");
log.info("\n----------------------------------------------------------\n\t" +
"Application yangbuyiCloud is running! Access URLs:\n\t" +
"Local: \t\thttp://localhost:" + port + path + "/\n\t" +
"当前配置环境: \t\t当前环境为:" + hj + "/\n\t" +
"----------------------------------------------------------");
} /**
* @Description: 杨不易个人网址:http://yangbuyi.top
* 功能描述: @LoadBalanced 让rest 拥有负载均衡的能力
* @Param: @RestTemplate http请求服务
* @return:
* @Author: TeouBle
* @Date: 2020/8/16 20:58
*/
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
} }

创建yml配置

server:
port: 7000
servlet:
context-path: /cloud-yby
spring:
application:
name: provide-goods # 服务名称 服务ID
cloud:
nacos:
discovery:
server-addr: localhost:8085 # nacos服务地址 单个服务 name: 默认环境

7. 启动两个服务 consumer和 provide 去nacos查看是否有

【笔记】 springCloud--Alibaba--服务注册和服务发现-LMLPHP

8. 在consumer工程中通过服务发现调用provide 工程

【笔记】 springCloud--Alibaba--服务注册和服务发现-LMLPHP

【笔记】 springCloud--Alibaba--服务注册和服务发现-LMLPHP

到此即可通过 consumer访问provide工程当中的方法啦

9.测试

【笔记】 springCloud--Alibaba--服务注册和服务发现-LMLPHP

nacos有问题请评论区联系我

完结 下一章节 nacos集群

【笔记】 springCloud--Alibaba--服务注册和服务发现-LMLPHP

05-11 22:39