spring-cloud-alibaba Nacos配置启动
16lz
2021-03-28
1. 为什么叫Nacos :
前四个字母分别是Naming 和 Configuration 的前两个字母,最后的s为Service。
Nacos 就是注册中心 + 配置中心的组合
Nacos 支持基于 DNS 和基于 RPC 的服务发现。服务提供者使用 原生SDK、OpenAPI、或一个独立的Agent TODO注册 Service 后,服务消费者可以使用DNS TODO 或HTTP&API查找和发现服务。
Nacos 提供对服务的实时的健康检查,阻止向不健康的主机或服务实例发送请求。Nacos 支持传输层 (PING 或 TCP)和应用层 (如 HTTP、MySQL、用户自定义)的健康检查。 对于复杂的云环境和网络拓扑环境中(如 VPC、边缘网络等)服务的健康检查,Nacos 提供了 agent 上报模式和服务端主动检测2种健康检查模式。Nacos 还提供了统一的健康检查仪表盘,帮助您根据健康状态管理服务的可用性及流量。java项目www.fhadmin.org
在这里插入图片描述
安装并运行nacos
在docker上安装nacos
拉取nacos镜像:
docker pull nacos/nacos-server
运行nacos:
docker run --env MODE=standalone --name nacos -d -p 8848:8848 nacos/nacos-server
在浏览器输入:http://ip地址:8848/nacos/
账号和密码都是nacos。
在这里插入图片描述
在这里插入图片描述
Nacos作为服务注册中心演示
- 新建模块cloudalibaba-provider-payment9001
- pom
<dependencies> <!--SpringCloud Alibaba nacos--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency></dependencies>
- yml
server: port: 9001spring: application: name: nacos-payment-provider cloud: nacos: discovery: server-addr: 120.92.164.250:8848 #配置的Nacos地址(本机的写localhost:8848,服务器的写IP地址)management: endpoints: web: exposure: include: '*'
- 主启动类
//java项目www.fhadmin.org@EnableDiscoveryClient@SpringBootApplicationpublic class PaymentMain9001 { public static void main(String[] args) { SpringApplication.run(PaymentMain9001.class, args); }}
- 新建controller包,包下新建PaymentController
//java项目www.fhadmin.org@RestControllerpublic class PaymentController { @Value("${server.port}") private String serverPort; @GetMapping("/payment/nacos/{id}") public String getPayment(@PathVariable("id") Integer id){ return "nacos registry, serverPort: " + serverPort + "\t id: " + id; }}
- 启动9001
在这里插入图片描述
消费者 (整合Feign)
- 新建 cloudalibaba-consumer-nacos-order83
- pom
<dependencies> <!--SpringCloud Alibaba nacos--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <!-- 引用自己定义的api通用包,可以使用Payment支付Entity --> <dependency> <groupId>com.angenin.springcloud</groupId> <artifactId>cloud-api-commons</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- openfeign --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> </dependencies>
- 建yml
server: port: 83spring: application: name: nacos-order-consumer cloud: nacos: discovery: server-addr: 120.92.164.250:8848 #配置的Nacos地址(本机的写localhost:8848,服务器的写IP地址)#消费者要访问的微服务名称(成功注册进nacos的服务提供者)service-url: nacos-user-service: http://nacos-payment-provider
- 主启动类
@EnableDiscoveryClient@EnableFeignClients@SpringBootApplicationpublic class OrderNacosMain83 { public static void main(String[] args) { SpringApplication.run(OrderNacosMain83.class, args); }}
- 新建 feign包 ,包下新增接口 PaymentFeignService
@Component@FeignClient(value = "nacos-payment-provider")public interface PaymentFeignService { @GetMapping("/payment/nacos/{id}") public String getPayment(@PathVariable("id") Integer id);}
- 新建controller
@RestControllerpublic class OrderNacosController { @Resource private PaymentFeignService paymentFeignService; @GetMapping("/consumer/payment/feign/nacos/{id}") public String paymentInfo2(@PathVariable("id") Integer id){ return paymentFeignService.getPayment(id); }}
启动
每一份赞赏源于懂得
赞赏
0人进行了赞赏支持
更多相关文章
- Go语言RPC学习记录
- 云服务器安全吗?云服务器有哪些优势?
- Curtis-Wright公司推出面向高速嵌入式雷达设计的“轻量级集成”
- CentOS 服务器使用命令对图片进行压缩以及图片格式转换
- 进程间通信
- 程序员被拖欠工资,怒将项目开源!居然登上GitHub TOP1。
- 五舟服务器出厂nvme阵列配置
- 前端小白学习web缓存笔记
- 主辅及智能DNS实现与MySQL5.7.32编译安装