当前位置: 首页 > news >正文

网站建设与维护教学视频文章博客媒体网站模板

网站建设与维护教学视频,文章博客媒体网站模板,建设购物网站费用,seo友情链接1.环境准备 1.1 拉取Nacos Docker镜像 从Docker Hub拉取Nacos镜像#xff1a; docker pull nacos/nacos-server:v2.4.01.2 生成密钥 你可以使用命令行工具生成一个不少于32位的密钥。以下是使用 OpenSSL 生成 32 字节密钥的示例#xff1a; openssl rand -base64 321.3 …1.环境准备 1.1 拉取Nacos Docker镜像 从Docker Hub拉取Nacos镜像 docker pull nacos/nacos-server:v2.4.01.2 生成密钥 你可以使用命令行工具生成一个不少于32位的密钥。以下是使用 OpenSSL 生成 32 字节密钥的示例 openssl rand -base64 321.3 启动Nacos容器 使用以下命令启动一个Nacos容器 docker run -d --name nacos-server \-e MODEstandalone \-e NACOS_AUTH_ENABLEtrue \-e NACOS_AUTH_TOKENjXd7Gp8MYxJVwK/Qj3d6h5XPwTRrqJL/vope5yHd8DA \-e NACOS_AUTH_IDENTITY_KEYyour-identity-key \-e NACOS_AUTH_IDENTITY_VALUEyour-identity-value \-e NACOS_AUTH_ENABLE_USERAGENT_AUTHWHITEtrue \-p 8848:8848 \-p 9848:9848 \nacos/nacos-server:v2.4.0NACOS_AUTH_ENABLEtrue 启用Nacos的身份验证。 NACOS_AUTH_TOKEN的值为正确的 Base64 编码字符串长度不少于 32 字节。 NACOS_AUTH_IDENTITY_KEYyour-identity-key 设置身份验证的key。 NACOS_AUTH_IDENTITY_VALUEyour-identity-value 设置身份验证的value。 NACOS_AUTH_ENABLE_USERAGENT_AUTHWHITEtrue 启用User Agent白名单绕过一些安全检查。 1.4 访问Nacos控制台 在Nacos容器启动后可以通过浏览器访问Nacos控制台URL如下 说明初始化密码。 1.5 创建命名空间 操作点击命名空间新建命名空间。 说明自己随便定义命名空间随便描述。 说明创建结果。 1.6 创建配置 1.7 创建gateway.yaml hello: abc说明用来测试是否读取到配置信息点击发布即创建。 1.8 创建gateway-dynamic-routes.yaml spring:cloud:gateway:routes:- id: service-routeuri: lb://producer-service-1predicates:- Path/service/**filters:- StripPrefix1说明 请求匹配当客户端发送一个HTTP请求时Spring Cloud Gateway会根据定义的路由进行匹配。它会首先检查请求路径是否匹配Path/service/**这个谓词。 前缀移除如果请求路径匹配StripPrefix1过滤器会移除路径的第一个部分。例如客户端请求/service/produce会被转换为/produce。 请求转发经过前缀移除后Gateway会根据uri配置将请求转发到producer-service-1服务。由于lb://前缀的存在Gateway会通过服务注册中心如Eureka或Consul找到producer-service-1服务的一个实例并将请求转发给该实例。 说明测试动态路由配置点击发布即创建。 1.9 创建结果 说明自定义的命名空间下创建两个配置文件。 2.项目结构 说明使用两个服务代表不同的路由模拟在没有重启网关服务的条件下实现通过Nacos修改配置文件实现网关路由的配置更新与发现。 2.1 pom.xml(父类) ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion3.3.2/versionrelativePath/ !-- lookup parent from repository --/parentgroupIdorg.example/groupIdartifactIdspring_nacos_gateway/artifactIdversion0.0.1-SNAPSHOT/versionpackagingpom/packagingmodulesmoduleproducer_service_1/modulemoduleproducer_service_2/module/modulespropertiesjava.version17/java.version/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build/project 说明两个提供者的父类配置文件网关模块不需要父类。 2.2 gateway模块 2.2.1 pom.xml ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdorg.example/groupIdartifactIdgateway/artifactIdversion0.0.1-SNAPSHOT/versionpropertiesjava.version22/java.versionspring-boot.version3.3.2/spring-boot.versionspring-cloud.version2023.0.1/spring-cloud.versionspring-cloud-alibaba.version2023.0.1.2/spring-cloud-alibaba.version/propertiesdependencyManagementdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-dependencies/artifactIdversion${spring-boot.version}/versiontypepom/typescopeimport/scope/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversion${spring-cloud.version}/versiontypepom/typescopeimport/scope/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-alibaba-dependencies/artifactIdversion${spring-cloud-alibaba.version}/versiontypepom/typescopeimport/scope/dependency/dependencies/dependencyManagementdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-webflux/artifactId/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-gateway/artifactId/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-loadbalancer/artifactId/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-bootstrap/artifactId/dependencydependencygroupIdcom.alibaba.nacos/groupIdartifactIdnacos-client/artifactIdversion2.4.0-BETA/version/dependency!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic --dependencygroupIdch.qos.logback/groupIdartifactIdlogback-classic/artifactIdversion1.5.6/version/dependency!-- https://mvnrepository.com/artifact/com.alibaba.nacos/logback-adapter --dependencygroupIdcom.alibaba.nacos/groupIdartifactIdlogback-adapter/artifactIdversion1.1.1/version/dependency!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api --dependencygroupIdorg.slf4j/groupIdartifactIdslf4j-api/artifactIdversion2.1.0-alpha1/version/dependencydependencygroupIdio.grpc/groupIdartifactIdgrpc-netty/artifactIdversion1.57.2/version/dependency/dependencies /project2.2.2 nacos-logback14.xml ?xml version1.0 encodingUTF-8? configurationproperty nameLOG_DIR valuelogs/property nameAPP_NAME valuegateway-service/appender nameFILE classch.qos.logback.core.rolling.RollingFileAppenderfile${LOG_DIR}/${APP_NAME}.log/fileencoderpattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n/pattern/encoderrollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicyfileNamePattern${LOG_DIR}/${APP_NAME}-%d{yyyy-MM-dd}.%i.log/fileNamePatterntimeBasedFileNamingAndTriggeringPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedFNATPmaxFileSize10MB/maxFileSize/timeBasedFileNamingAndTriggeringPolicymaxHistory30/maxHistory/rollingPolicy/appenderroot levelDEBUGappender-ref refFILE//root /configuration2.2.3 bootstrap.yml spring:application:name: gateway-servicecloud:nacos:discovery:server-addr: 192.168.186.77:8848username: nacospassword: 123456config:server-addr: 192.168.186.77:8848file-extension: yamlgroup: DEFAULT_GROUPnamespace: 94507d25-b8c3-4e5c-a8ef-b02b8ce4c0fb #命名空间的IDencode: UTF-8username: nacospassword: 123456gateway:discovery:locator:enabled: true # 启用动态路由发现功能。lower-case-service-id: true #将服务ID转换为小写config:import:- nacos:gateway.yaml #配置文件1- nacos:gateway-dynamic-routes.yaml #配置文件2 server:port: 8003说明通过以上配置Spring Cloud Gateway将会自动根据Nacos中的注册服务动态生成路由。例如如果有一个服务 order-service 注册到NacosGateway将自动为这个服务生成一个路由规则将所有以 /order-service/** 开头的请求转发到该服务。 2.2.4 GatewayApplication.java package org.example;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 GatewayApplication {public static void main(String[] args) {SpringApplication.run(GatewayApplication.class, args);}BeanLoadBalanced //启动请求的负载均衡public RestTemplate restTemplate() {return new RestTemplate();} }2.2.5 ConfigController.java package org.example.gateway;import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;RestController RequestMapping(/config) RefreshScope public class ConfigController {Value(${hello:false})private String Hello;RequestMapping(/get)public String get() {return Hello;} }2.3 producer_service_1模块 2.3.1 pom.xml project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.example/groupIdartifactIdspring_nacos_gateway/artifactIdversion0.0.1-SNAPSHOT/version/parentartifactIdproducer_service_1/artifactIdpackagingjar/packagingdependencies!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-nacos-discovery --dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactIdversion2023.0.1.2/version/dependency/dependencies /project2.3.2 application.yml server:port: 8001 spring:application:name: producer-service-1cloud:nacos:discovery:server-addr: http://192.168.186.77:8848username: nacospassword: 1234562.3.3 ProducerApplication01.java package org.example.producer;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient;SpringBootApplication EnableDiscoveryClient public class ProducerApplication01 {public static void main(String[] args) {SpringApplication.run(ProducerApplication01.class, args);} } 2.3.4 ProducerController.java package org.example.producer.controller;import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController;RestController public class ProducerController {GetMapping(/produce)public String produce() {return 服务提供者1号;} }2.4 producer_service_2模块 说明实际上该部分跟producer_service_1结构完全一样只是改了一下启动类名还有端口配置。 2.4.1 pom.xml project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.example/groupIdartifactIdspring_nacos_gateway/artifactIdversion0.0.1-SNAPSHOT/version/parentartifactIdproducer_service_2/artifactIdpackagingjar/packagingdependencies!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-nacos-discovery --dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactIdversion2023.0.1.2/version/dependency/dependencies /project 2.4.2 application.yml server:port: 8002 spring:application:name: producer-service-2cloud:nacos:discovery:server-addr: http://192.168.186.77:8848username: nacospassword: 123456说明端口跟服务名同producer_service_1模块不一样。 2.4.3 ProducerApplication02.java package org.example.producer;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient;SpringBootApplication EnableDiscoveryClient public class ProducerApplication02 {public static void main(String[] args) {SpringApplication.run(ProducerApplication02.class, args);} }2.4.4 ProducerController.java package org.example.producer.controller;import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController;RestController public class ProducerController {GetMapping(/produce)public String produce() {return 服务提供者2号;} }说明启动类同producer_service_1模块不一样方便区分。 3.测试验证 3.1 测试读取配置文件gateway.yaml 3.2 动态路由发现测试 解释Spring Cloud Gateway将会自动根据Nacos中的注册服务动态生成路由。例如如果有一个服务 order-service 注册到NacosGateway将自动为这个服务生成一个路由规则将所有以 /order-service/** 开头的请求转发到该服务本案例的服务是producer-service-2自行类比·。 3.2 手动修改配置重新发布gateway-dynamic-routes.yaml 未修改前 访问 修改 访问 4.总结 静态路由是在配置文件或配置中心中手动定义并且不会自动改变的路由。管理员需要手动添加或更新路由配置。 动态路由是指路由条目根据实时的网络状态或服务注册信息自动更新。使用服务发现机制路由器能够自动感知到服务的变化并调整路由表。 静态路由 vs 动态路由 特点静态路由动态路由配置方式手动配置自动配置维护复杂度高低适应网络变化差强使用场景小型、固定网络大型、动态变化网络依赖性低不依赖服务注册中心高依赖服务注册中心 ​ 在Nacos中静态路由适用于固定的、手动管理的路由配置而动态路由适用于自动化、高效管理的动态变化的服务路由配置。根据实际需求选择合适的路由方式可以提升系统的灵活性和可维护性。
http://www.w-s-a.com/news/557567/

相关文章:

  • 电子商务网站建设的简要任务执行书可以注册免费网站
  • 公司网站设计需要什么豪爵铃木摩托车官网
  • 建收费网站合肥地区网站制作
  • 自己做头像网站小网站建设公司
  • 电子商务建设与网站规划wordpress linux安装
  • wordpress新手建站win8网站模版
  • 网站的简单布局孝感 商务 网站建设
  • 湖北手机版建站系统价格优化网站内容
  • 网站后台登录不显示验证码软文发布网站
  • 企业微网站建设方案收费的网站如何免费
  • 平昌县建设局网站中国500强企业有哪些
  • 网站开发制作的流程是什么网页打不开显示不安全怎么办
  • 网络网站开发设计安徽建设工程信息网怎么打不开了
  • 百度网站推广申请深圳公众号制作
  • 百度站长怎么做网站维护中国深圳航空公司官网
  • xampp安装网站模板海南一家天涯社区
  • 网站建设 管理系统开发仿租号网站源码网站开发
  • 怎么自己弄网站免费网站设计用什么软件
  • 网站分几种access做网站数据方法
  • 网站默认图片s001网站建设公司
  • 淘宝的电子商务网站的建设东莞哪里有网站制作公司
  • 西安网站制作怎么联系wordpress登陆界面打开慢
  • 高端工作网站网站推广seo代理
  • 一般找素材都是做哪几个网站呢推广引流工具
  • 必须做网站等级保护html网页设计题库
  • 移动端网站开发 float手机在线建网站
  • 教育网站模板下载做汽车网站开题报告的意义
  • 网站首页做后台链接昌平网站制作
  • 营销型门户网站建设浏览器下载免费大全
  • 快三网站开发推广普通话手抄报内容50字