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 |
- 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 启动测试
将 https://start.spring.io 改为 https://start.aliyun.com
1.2 修改 pom 文件4.0.0 org.springframework.boot spring-boot-starter-parent 2.3.12.RELEASE cn.nacos nacosclienta 0.0.1-SNAPSHOT nacosclienta Demo project for Spring Boot 17 Hoxton.SR12 2.2.7.RELEASE org.springframework.boot spring-boot-starter-web com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery org.springframework.boot spring-boot-starter-test test com.alibaba.cloud spring-cloud-alibaba-dependencies ${spring-cloud-alibaba.version} pom import org.springframework.boot spring-boot-maven-plugin netflix-candidates Netflix Candidates https://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
配置两个服务,一个为 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 将两个服务配置到相同命名空间相同组中结果:可以访问到
配置两个 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.cloud spring-cloud-starter-openfeign org.springframework.cloud spring-cloud-dependencies ${spring-cloud.version} pom import
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