10、SpringCloud系列:Nacos-注册中心-创新互联

SpringCloud 系列列表:

创新互联凭借专业的设计团队扎实的技术支持、优质高效的服务意识和丰厚的资源优势,提供专业的网站策划、成都做网站、网站设计、网站优化、软件开发、网站改版等服务,在成都十余年的网站建设设计经验,为成都上千多家中小型企业策划设计了网站。
文章名文章地址
01、Eureka - 集群、服务发现https://blog.csdn.net/qq_46023503/article/details/128319023
02、Ribbon - 负载均衡https://blog.csdn.net/qq_46023503/article/details/128332288
03、OpenFeign - 远程调用https://blog.csdn.net/qq_46023503/article/details/128387961
04、Hystrix - 断路器https://blog.csdn.net/qq_46023503/article/details/128408601
05、Sleuth - 链路追踪https://blog.csdn.net/qq_46023503/article/details/128409339
06、Gateway - 网关https://blog.csdn.net/qq_46023503/article/details/128430842
07、Alibaba - 介绍https://blog.csdn.net/qq_46023503/article/details/128434080
08、Nacos - 安装、启动https://blog.csdn.net/qq_46023503/article/details/128460411
09、Nacos - 配置文件中心https://blog.csdn.net/qq_46023503/article/details/128460649
10、Nacos - 注册中心https://blog.csdn.net/qq_46023503/article/details/128460494

Nacos - 注册中心
  • 1 入门案例
    • 1.1 创建 SpringBoot 项目
    • 1.2 修改 pom 文件
    • 1.3 修改 yml 文件
    • 1.4 给启动类添加注解(此版本不加也行)
    • 1.5 启动 nacos 服务端,然后启动项目
  • 2 服务发现
    • 2.1 前置条件
    • 2.2 将两个服务配置到不同的命名空间中
    • 2.3 将两个服务配置到相同命名空间不同组中
    • 2.4 将两个服务配置到相同命名空间相同组中
  • 3 在 Nacos 中使用 OpenFeign
    • 3.1 前置条件
    • 3.2 在 two-service 中添加控制层测试方法
    • 3.3 修改 one-service 的 pom 文件
    • 3.4 在 one-service 中创建远程调用接口
    • 3.5 在 one-service 中创建控制层测试方法
    • 3.6 访问测试
  • 4 在 Nacos 中使用 Gateway
    • 4.1 前置条件
    • 4.2 创建 getway 项目
    • 4.3 访问测试
  • 5 Nacos Discovery Starter 更多的配置项
  • 6 集群
    • 6.1 准备三个 Nacos 服务端
  • 6.2 修改每个服务端的 application.properties
    • 6.3 修改每个服务器端的 cluster.conf.example
    • 6.4 启动测试

1 入门案例 1.1 创建 SpringBoot 项目

将 https://start.spring.io 改为 https://start.aliyun.com

1.2 修改 pom 文件
4.0.0org.springframework.bootspring-boot-starter-parent2.3.12.RELEASEcn.nacosnacosclienta0.0.1-SNAPSHOTnacosclientaDemo project for Spring Boot17Hoxton.SR122.2.7.RELEASEorg.springframework.bootspring-boot-starter-webcom.alibaba.cloudspring-cloud-starter-alibaba-nacos-discoveryorg.springframework.bootspring-boot-starter-testtest com.alibaba.cloud spring-cloud-alibaba-dependencies ${spring-cloud-alibaba.version} pom import org.springframework.boot spring-boot-maven-pluginnetflix-candidatesNetflix Candidateshttps://artifactory-oss.prod.netflix.net/artifactory/maven-oss-candidates false
1.3 修改 yml 文件
server:
  port: 8080
spring:
  application:
    name: nacosclenta
  cloud:
    nacos:
      server-addr: localhost:8848 # 向 nacos 服务端注册
      username: nacos # 账号
      password: nacos # 密码
      discovery:
        service: user-service # 指定名称,不写,默认为服务名称
        namespace: d7e9db40-b7ff-4360-b48b-162e985a8a3b # 指定命名空间,值为命名空间的 id 值,如果不指定命名空间,默认会注册到 public 中
        group: A-GROUP # 指定分组,没有会自定创建,如果不指定分组,默认是 DEFAULT_GROUP
1.4 给启动类添加注解(此版本不加也行)
@SpringBootApplication
@EnableDiscoveryClient // 开启 nacos 的服务发现
public class NacosclientaApplication {public static void main(String[] args) {SpringApplication.run(NacosclientaApplication.class, args);
    }
}
1.5 启动 nacos 服务端,然后启动项目

访问:http://localhost:8848/nacos
在这里插入图片描述

2 服务发现 2.1 前置条件

配置两个服务,一个为 one-service,另一个为 two-service

2.2 将两个服务配置到不同的命名空间中

使用 one-service 找寻 two-service

//one-service 的控制层
@RestController
public class TestController {@Autowired
    private DiscoveryClient discoveryClient;
    @GetMapping("/test")
    public String test(){Listiservice = discoveryClient.getInstances("two-service");
        return "ok";
    }
}

结果:访问 test ,发现结果为空,即访问不到

2.3 将两个服务配置到相同命名空间不同组中

结果:访问不到

2.4 将两个服务配置到相同命名空间相同组中

结果:可以访问到
在这里插入图片描述

3 在 Nacos 中使用 OpenFeign 3.1 前置条件

配置两个 nacos 服务,一个为 one-service:8080,另一个为 two-service:8081,两个服务在同一个命名空间同一个组中

3.2 在 two-service 中添加控制层测试方法
@RestController
public class BController {@GetMapping("info")
    public String info(){return "测试 feign 的远程调用";
    }
}
3.3 修改 one-service 的 pom 文件

添加 OpenFeign 的依赖和 springcloud 的管理依赖

org.springframework.cloudspring-cloud-starter-openfeignorg.springframework.cloudspring-cloud-dependencies${spring-cloud.version}pomimport
3.4 在 one-service 中创建远程调用接口
@FeignClient("two-service") //注意名字为配置的名字
public interface IOpenFeign {@GetMapping("info")
    public String info();
}
3.5 在 one-service 中创建控制层测试方法
@RestController
public class TestController {@Autowired
    private IOpenFeign iOpenFeign;
    @GetMapping("/test")
    public String test(){return iOpenFeign.info();
    }
}
3.6 访问测试

访问 http://localhost:8080/test,浏览器会输出 “测试 feign 的远程调用”

4 在 Nacos 中使用 Gateway 4.1 前置条件

配置两个 nacos 服务,一个为 one-service:8080,另一个为 two-service:8081,两个服务在同一个命名空间同一个组中

4.2 创建 getway 项目
  • 选择 gateway 和 nacos-discovery 依赖
  • 在启动类上添加 @EnableDiscoveryClient
  • yml 文件
server:
  port: 80
spring:
  application:
    name: gateway
  cloud:
    nacos:
      server-addr: localhost:8848
      username: nacos
      password: nacos
      discovery: # 需要和其他两个服务在同一个命名空间和组下
        namespace: d7e9db40-b7ff-4360-b48b-162e985a8a3b
        group: A-GROUP
    gateway:
      discovery:
        locator:
          enabled: true # 开启动态路由
          lower-case-service-id: true # 开启小写
4.3 访问测试

访问 http://localhost:8080/test 和 http://localhost/one-service/test 的效果一致

5 Nacos Discovery Starter 更多的配置项

在这里插入图片描述

6 集群 6.1 准备三个 Nacos 服务端

在这里插入图片描述

6.2 修改每个服务端的 application.properties

位置:nacos\conf\application.properties

# 1、修改第21行的端口,分别设置为 8848、8850、8852
server.port=8848

#-------------------------

# 2、将30+行的数据库连接打开
spring.datasource.platform=mysql

### Count of DB:
db.num=1

### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=root
6.3 修改每个服务器端的 cluster.conf.example

位置:nacos\conf\cluster.conf.example
将 cluster.conf.example 名字改为 cluster.conf

# 将每个服务器都以 ip地址:端口 的形式配置 
169.254.58.106:8848
169.254.58.106:8850
169.254.58.106:8852
6.4 启动测试

同时开始三个 nacos 服务端,出现一下结果集群成功
在这里插入图片描述

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网页名称:10、SpringCloud系列:Nacos-注册中心-创新互联
文章URL:http://cdiso.cn/article/gcihg.html

其他资讯