html 网站,郴州seo服务,国内做房车游网站,可以合成装备的传奇手游文章目录 前言服务治理介绍什么是服务治理1、服务发现2、服务配置3、服务健康检测 常见的注册中心ZookeeperEurekaConsulNacos Nacos 简介Nacos 实战入门搭建nacos环境1、安装nacos2、配置nacos3、访问nacos 将商品微服务注册到 nacos1、在 pom. xml 中添加 nacos 的依赖2、在主… 文章目录 前言服务治理介绍什么是服务治理1、服务发现2、服务配置3、服务健康检测 常见的注册中心ZookeeperEurekaConsulNacos Nacos 简介Nacos 实战入门搭建nacos环境1、安装nacos2、配置nacos3、访问nacos 将商品微服务注册到 nacos1、在 pom. xml 中添加 nacos 的依赖2、在主类上添加 EnableDiscoveryClient 注解3、在 application. yml 中添加 nacos 服务的地址4、启动服务 将订单微服务注册到 nacos实现微服务调用 总结 欢迎来到阿Q社区 https://bbs.csdn.net/topics/617897123 前言
在开始今天的学习之前大家先来思考一个问题
通过上一章的操作我们已经可以实现微服务之间的调用。但是我们把服务提供者的网络地址ip端口等硬编码到了代码中这种做法存在许多问题
一旦服务提供者地址变化就需要手工修改代码一旦是多个服务提供者无法实现负载均衡功能一旦服务变得越来越多人工维护调用关系困难
那么应该怎么解决呢这时候就需要通过注册中心动态的实现服务治理。
服务治理介绍
什么是服务治理
服务治理是微服务架构中最核心最基本的模块。用于实现各个微服务的自动化注册与发现。
服务注册在服务治理框架中都会构建一个注册中心每个服务单元向注册中心登记自己提供服务的详细信息。并在注册中心形成一张服务的清单服务注册中心需要以心跳的方式去监测清单中的服务是否可用如果不可用需要在服务清单中剔除不可用的服务。服务发现服务调用方向服务注册中心咨询服务并获取所有服务的实例清单实现对具体服务实例的访问。 通过上面的调用图你会发现除了微服务还有一个组件是服务注册中心它是微服务架构非常重要的一个组件在微服务架构里主要起到了协调者的一个作用。注册中心一般包含如下几个功能
1、服务发现
服务注册保存服务提供者和服务调用者的信息服务订阅服务调用者订阅服务提供者的信息注册中心向订阅者推送提供者的信息
2、服务配置
配置订阅服务提供者和服务调用者订阅微服务相关的配置配置下发主动将配置推送给服务提供者和服务调用者
3、服务健康检测
检测服务提供者的健康情况如果发现异常执行服务剔除。
常见的注册中心
Zookeeper
Zookeeper 是一个分布式服务框架是 Apache Hadoop 的一个子项目它主要是用来解决分布式应用中经常遇到的一些数据管理问题如统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。
Eureka
Eureka 是 SpringCloud Netflix 中的重要组件主要作用就是做服务注册和发现但是现在已经闭源。
Consul
Consul 是基于GO语言开发的开源工具主要面向分布式服务化的系统提供服务注册、服务发现和配置管理的功能。Consul 的功能都很实用其中包括服务注册/发现、健康检查、Key/Value 存储、多数据中心和分布式一致性保证等特性。
Consul 本身只是一个二进制的可执行文件所以安装和部署都非常简单只需要从官网下载后在执行对应的启动脚本即可。
Nacos
Nacos 是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。它是 SpringCloud Alibaba 组件之一负责服务注册发现和服务配置可以这样认为 nacoseurekaconfig
Nacos 简介
Nacos 致力于帮助我们发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集帮助我们快速实现动态服务发现、服务配置、服务元数据及流量管理。
从上面的介绍就可以看出 nacos 的作用就是一个注册中心用来管理注册上来的各个微服务。
Nacos 实战入门
接下来我们就在现有的环境中加入nacos并将我们的两个微服务注册上去。
搭建nacos环境
1、安装nacos 下载地址: https://github.com/alibaba/nacos/releases 下载zip格式的安装包然后进行解压缩操作下载不下来的可以直接联系阿Qqingqing-4132 2、配置nacos
将 conf 下的 nacos-mysql.sql 导入数据库 修改 conf 下的 application.properties添加数据库配置
spring.datasource.platformmysql
db.num1
db.url.0jdbc:mysql://127.0.0.1:3306/nacos?characterEncodingutf8connectTimeout1000socketTimeout3000autoReconnecttrueuseUnicodetrueuseSSLfalseserverTimezoneUTC
db.user.0nacos
db.password.0nacos修改bin目录下的 startup.cmd文件将 set MODE“cluster” 改为 set MODE“standalone”
然后在 bin 下启动 nacos访问地址127.0.0.0:8848/nacos默认用户名密码nacos可以在里边创建配置列表
3、访问nacos
打开浏览器输入http://127.0.0.1:8848/nacos/index.html即可访问服务默认密码是 nacos/nacos 将商品微服务注册到 nacos
接下来开始修改 shop-product 模块的代码将其注册到 nacos 服务上
1、在 pom. xml 中添加 nacos 的依赖
!--nacos客户端--
dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactIdversion2.1.0.RELEASE/version
/dependency2、在主类上添加 EnableDiscoveryClient 注解
3、在 application. yml 中添加 nacos 服务的地址
spring: cloud: nacos: discovery: server-addr: 127.0.0.1:88484、启动服务
观察 nacos 的控制面板中是否有注册上来的商品微服务 将订单微服务注册到 nacos
接下来开始修改 shop-order 模块的代码将其注册到 nacos 服务上前三个步骤和商品微服务完全相同此处直接省略。
启动之后如下 实现微服务调用
OrderController 中将请求路径写死变为从nacos中获取代码如下
ServiceInstance serviceInstance discoveryClient.getInstances(shop-product).get(0);
String url serviceInstance.getHost():serviceInstance.getPort();
//通过restTemplate调用商品微服务
ShopProduct shopProduct restTemplate.getForObject(http://url/product/pid, ShopProduct.class);
Integer count restTemplate.postForObject(http://url/product/reduceStock, productReduceDTO, Integer.class);DiscoveryClient 是专门负责服务注册和发现的我们可以通过它获取到注册到注册中心的所有服务。 改好之后再次重启服务请求地址127.0.0.1:8091/order/2查看数据库 总结
到这儿我们的 nacos 入门案例就结束了。下一篇将为大家带来基于nacos的负载均衡和基于feign实现微服务调用的文章敬请期待吧
后续的文章我们将继续完善我们的微服务系统集成更多的Alibaba组件。想要了解更多JAVA后端知识请点击文末名片与我交流吧。留下您的一键三连让我们在这个寒冷的东西互相温暖吧