个人网站做商城网站宽度设计
news/
2025/9/22 17:18:43/
文章来源:
个人网站做商城,网站宽度设计,泉州洛江住房和城乡建设局网站,网络营销整合推广作者 | 磊哥来源 | Java中文社群#xff08;ID#xff1a;javacn666#xff09;转载请联系授权#xff08;微信ID#xff1a;GG_Stone#xff09;Nacos 是 Spring Cloud Alibaba 中一个重要的组成部分#xff0c;它提供了两个重要的功能#xff1a;服务注册与发现和统一… 作者 | 磊哥来源 | Java中文社群IDjavacn666转载请联系授权微信IDGG_StoneNacos 是 Spring Cloud Alibaba 中一个重要的组成部分它提供了两个重要的功能服务注册与发现和统一的配置中心功能。服务注册与发现功能解决了微服务集群中调用者和服务提供者连接管理和请求转发的功能让程序的开发者无需过多的关注服务提供者的稳定性和健康程度以及调用地址因为这些都可以依靠 Nacos 进行监测、管理和自动转发。试想一下当一个系统被部署多个之后如何确定要调用哪一个服务实例当某个被调用的实例出现问题时又如何将请求转发到其他实例上这些问题都是微服务架构中现实存在的问题然而使用 Nacos 就可以轻松的解决这些问题。并且 Nacos 也提供了统一的配置中心解决了之前项目配置文件存放在本地或 github 上的安全性问题并且支持动态修改和统一维护配置文件的功能。1.Nacos 简介Nacos 是 Dynamic Naming and Configuration Service 的首字母简称它是⼀个更易于构建云原生应用的动态服务发现、配置管理和服务管理的平台。官网https://nacos.io/仓库源码https://github.com/alibaba/nacos2.Nacos 生态Nacos 几乎支持所有主流语言其中 Java/Golang/Python 已经支持 Nacos 2.0 长链接协议能最大限度发挥 Nacos 性能。阿里微服务 DNSDubboNacosSpring-cloud-alibaba/Seata/Sentinel最佳实践是 Java 微服务生态最佳解决方案。3.Nacos 快速部署Nacos 支持 3 种部署模式单机部署集群部署多集群部署Nacos 安装方式有以下 2 种使用源码安装。使用已编译好的安装包进行安装。本文我们将使用第一种方式加 Docker来快速部署 Nacos 服务器端。因为 Docker 方式安装和卸载都比较方便所以本文就采用此方式来演示 Nacos 的安装其他安装方式详见官网https://nacos.io/zh-cn/docs/quick-start.html3.1 预备环境准备Nacos 依赖 Java 环境来运行如果您是从代码开始构建并运行 Nacos还需要为此配置 Maven 环境请确保是在以下版本环境中安装使用64 bit OS支持 Linux/Unix/Mac/Windows推荐选用 Linux/Unix/Mac。64 bit JDK 1.8。Maven 3.2.x。因为本文使用的是 Nacos Docker 的方式进行部署的所以没有安装 Docker 的同学自行搜索安装哦。安装 Open JDK 8yum -y install java-1.8.0-openjdk-devel.x86_64安装完之后使用 java -version 检查是否安装成功如下图所示若显示具体的 Java 版本则表示安装成功。3.2 下载 Nacos本文使用 git 的方式来下载 Nacos 源码包所以需要使用以下命令来先安装 gityum -y install git下载 Nacos 源码git clone https://github.com/nacos-group/nacos-docker.git下载完成如下图所示进入 Nacos 目录cd nacos-docker3.3 启动 Nacos 服务Nacos 的运行是需要数据库的它支持两种数据库本地数据库 Derby、和 MySQL 数据库。所以对应的启动命令有以下几种Derby 数据库运行单机模式docker-compose -f example/standalone-derby.yaml upMySQL 5.7 数据库运行单机模式docker-compose -f example/standalone-mysql-5.7.yaml upMySQL 8 数据库运行单机模式docker-compose -f example/standalone-mysql-8.yaml up集群模式启动docker-compose -f example/cluster-hostname.yaml up启动成功如下图所示3.3 访问Nacos启动成功之后就可以使用 http://127.0.0.1:8848/nacos/#/login 来访问 Nacos 的管理控制台了如下图所示用户名和密码都输入 nacos 就可以进入系统了如下图所示3.4 常见报错问题3.4.1 docker-compose 命令未找到docker-compose 是用于定义和运行多容器 Docker 应用程序的编排工具。使用 docker-compose 后不再需要逐一创建和启动容器。您可以使用 YML 文件来配置应用程序需要的所有服务然后使用一个命令就可以从 YML 文件配置中创建并启动所有服务。但是 docker-compose 需要单独安装否则会出现以下错误解决方案cd /usr/local/bin
wget https://github.com/docker/compose/releases/download/1.14.0-rc2/docker-compose-Linux-x86_64
rename docker-compose-Linux-x86_64 docker-compose docker-compose-Linux-x86_64
chmod x /usr/local/bin/docker-compose
docker-compose version安装成功如下图所示3.4.2 imageinvalid reference format使用 docker-compose 可能会提示“ERROR: no such image: nacos/nacos-server:: invalid reference format”无效的参数格式如下图所示解决方案修改 Nacos 源码中 example/standalone-mysql-5.7.yaml 的配置项将“image: nacos/nacos-server:{{NACOS_VERSION}}”修改为“image: nacos/nacos-server:latest”。4.Spring Cloud Alibaba 服务注册服务注册者也就是生产者是微服务中的服务提供者。它是以 Spring Boot 项目为基础创建的具体操作步骤如下创建项目使用阿里云的地址 http://start.aliyun.com 来创建 Spring Cloud Alibaba Nacos 项目点击下一步 Next如下图所示增加 Nacos Service Discovery 框架支持如下图所示再添加 Spring WebSpring MVC框架的支持最后点击 Finish 完成项目创建。4.1 项目依赖Spring Cloud Alibaba Nacos 项目主要有两个依赖项如下内容所示dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId
/dependency
dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId
/dependency4.2 修改配置文件在配置文件 application.properties 中要填写 Nacos 的相关信息具体内容如下# 应用名称也是 Nacos 中的服务名
spring.application.namespring-cloud-nacos-producer
# 应用服务 WEB 访问端口
server.port8082
# Nacos认证信息
spring.cloud.nacos.discovery.usernamenacos
spring.cloud.nacos.discovery.passwordnacos
# Nacos 服务发现与注册配置其中子属性 server-addr 指定 Nacos 服务器主机和端口
spring.cloud.nacos.discovery.server-addrmse-6d50f4f0-p.nacos-ans.mse.aliyuncs.com:8848
# 注册到 nacos 的指定 namespace默认为 public
spring.cloud.nacos.discovery.namespacepublic4.3 添加代码接下来添加一个 Restful API 的接口给后面的服务调用者使用具体实现代码如下import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;SpringBootApplication
RestController
EnableDiscoveryClient
public class SpringCloudNacosProducerApplication {public static void main(String[] args) {SpringApplication.run(SpringCloudNacosProducerApplication.class, args);}RequestMapping(/sayhi/{name})public String sayHi(PathVariable String name) {return Hi Nacos Discovery name;}
}编写完代码之后运行项目观察 Nacos 中的服务列表就可以看到此项目如下图所示经过以上操作我们创建的 Spring Cloud Alibaba 的项目就被注册到 Nacos 中了其他程序也可以通过 Nacos 对它进行调用了。5.Spring Cloud Alibaba 服务发现与上面创建方式类似接下来我们再创建一个服务调用者也叫做消费者来调用上面框架中的 sayhi 方法具体操作步骤如下。5.1 创建项目5.2 修改配置文件# 应用名称
spring.application.namespringcloud-nacos-consumer
# 应用服务 WEB 访问端口
server.port8082
# Nacos帮助文档: https://nacos.io/zh-cn/docs/concepts.html
# Nacos认证信息
spring.cloud.nacos.discovery.usernamenacos
spring.cloud.nacos.discovery.passwordnacos
# Nacos 服务发现与注册配置其中子属性 server-addr 指定 Nacos 服务器主机和端口
spring.cloud.nacos.discovery.server-addr82.157.146.10:8848
# 注册到 nacos 的指定 namespace默认为 public
spring.cloud.nacos.discovery.namespacepublic5.3 添加代码消费者的实现代码有两个类在启动类中添加一个 RestTemplate 的 Bean 对象用于提供 Restful API 的请求启动类的具体实现代码如下import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;SpringBootApplication
EnableDiscoveryClient
public class SpringcloudNacosConsumerApplication {public static void main(String[] args) {SpringApplication.run(SpringcloudNacosConsumerApplication.class, args);}LoadBalancedBeanpublic RestTemplate restTemplate() {return new RestTemplate();}
}消费者的具体实现代码如下import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;RestController
public class TestController {Autowiredprivate RestTemplate restTemplate;RequestMapping(/hi)public String hi(String name) {// 调用生产者 sayhi 方法并返回结果return restTemplate.getForObject(http://spring-cloud-nacos-producer/sayhi/ name,String.class);}
}添加完代码之后运行程序在 Nacos 的服务列表中可看到以下内容之后访问消费者的 hi 方法让其调用生产者的实现效果如下从上述结果可以看出消费者通过 Nacos 已经成功的调用到了生产者 spring-cloud-nacos-producer 中的 sayhi 方法了。小结Nacos 提供了两个重要的功能服务注册与发现和统一配置中心的功能它提供了 3 种部署方式单机部署、集群部署和多集群部署以及两种安装方式源码安装和安装包安装。我们使用的是 Docker 加 Nacos 源码的方式来安装和部署 Nacos 的。Nacos 服务注册和发现都需要添加 Nacos Service Discovery 框架的支持且在配置文件中配置相应的 Nacos 信息才可以正确的实现服务的注册和发现功能。参考鸣谢《Nacos框架与原理》是非审之于己毁誉听之于人得失安之于数。公众号Java中文社群Java面试合集gitee.com/mydb/interview
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/909780.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!