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

建站行业的乱象方象科技的企业愿景

建站行业的乱象,方象科技的企业愿景,网络架构师证书怎么考,住房和城乡建设部网站官网nacos配置与使用 nacos初步使用nacos安装与配置创建命名空间 nacos使用与配置创建新项目作为父项目 创建nacos服务端项目pom.xmlapplication.yml启动类 创建nacos客户端项目pom.xml application.yml启动类 启动测试 nacos配置负载均衡改造生产者nacos-provider-projectcontroll…

nacos配置与使用

  • nacos初步使用
    • nacos安装与配置
      • 创建命名空间
    • nacos使用与配置
      • 创建新项目作为父项目
    • 创建nacos服务端项目
      • pom.xml
      • application.yml
      • 启动类
    • 创建nacos客户端项目
        • pom.xml
      • application.yml
      • 启动类
    • 启动测试
  • nacos配置负载均衡
    • 改造生产者nacos-provider-project
      • controller层
    • 改造消费者nacos-consumer-project
      • 配置负载均衡
      • controller
    • 测试
  • nacos配置中心
    • 创建命名空间
    • 修改生产者nacos-provider-project
      • 增加一个配置文件bootstrap.properties
      • 在controller层增加注解@RefreshScope
    • 测试

nacos初步使用

Nacos 是阿里巴巴推出来的一个新开源项目,这是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
简单来说,nacos可以用来管理一个springcloud项目中各个模块与组件。安装运行nacos后可以在专门的页面上看到注册进nacos的各个模块的信息。
以上是个人理解,如有不对,可在评论区纠正。

nacos安装与配置

GitHub下载地址
在这里插入图片描述
在这里插入图片描述
在此目录下进入cmd
输入命令:startup.cmd -m standalone
在这里插入图片描述
访问控制台中的地址,用户名密码都是nacos
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
如果这里访问页面的IP地址与本机地址不同,说明nacos使用了虚拟网卡。如果想要ip地址为本机ip,需要在网络适配器中禁用虚拟卡
在这里插入图片描述

创建命名空间

在这里插入图片描述
创建成功后系统会生成一个唯一的id,这个id写在生产者与消费者的yml文件中(下文已写出)。这样nacos会将项目中的服务注册到指定的命名空间中,避免多个项目混淆。

nacos使用与配置

创建新项目作为父项目

创建新项目后,删除src文件夹,只保留pom.xml
在这里插入图片描述
pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.hzx</groupId><artifactId>testmaven32springcloud</artifactId><version>1.0-SNAPSHOT</version><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.2.RELEASE</version></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId></dependency><!--spring cloud alibaba 2.2.6.RELEASE--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2.2.6.RELEASE</version><type>pom</type><scope>import</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>

我的springboot版本是2.3.2,对应的springcloud-alibaba版本是2.2.6。需要注意springboot和springcloud alibaba版本要相对应。

创建nacos服务端项目

名字是:nacos-provider-project
在这里插入图片描述

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>testmaven32springcloud</artifactId><groupId>com.hzx</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>nacos-provider-project</artifactId><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.3.2.RELEASE</version></dependency><!--discovery依赖是用来注册到nacos客户端的--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>2.2.7.RELEASE</version></dependency><!--config依赖是用来完成配置中心功能--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId><version>2.2.7.RELEASE</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin></plugins></build></project>

application.yml

server:port: 8081
spring:cloud:nacos:discovery:server-addr: http://192.168.220.1:8848namespace: 8302a253-b30a-4a13-bdeb-0caf566317b9application:name: nacos-provider

启动类

@SpringBootApplication
@EnableDiscoveryClient
public class StartNacosProvider{public static void main(String[] args) throws Exception {SpringApplication.run(StartNacosProvider.class, args);}
}

创建nacos客户端项目

名字是:nacos-consumer-project

pom.xml

与服务端的pom.xml依赖一致

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>testmaven32springcloud</artifactId><groupId>com.hzx</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>nacos-consumer-project</artifactId><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.3.2.RELEASE</version></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>2.2.7.RELEASE</version></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId><version>2.2.7.RELEASE</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin></plugins></build>
</project>

application.yml

server:port: 8091
spring:cloud:nacos:discovery:server-addr: http://192.168.220.1:8848namespace: 8302a253-b30a-4a13-bdeb-0caf566317b9application:name: nacos-consumer

启动类

@SpringBootApplication
@EnableDiscoveryClient
public class StartNacosConsumer {public static void main(String[] args) throws Exception {SpringApplication.run(StartNacosConsumer.class, args);}
}

启动测试

先启动服务端再启动客户端
在这里插入图片描述
在这里插入图片描述
在nacos网站可以看到服务已经注册进nacos中
在这里插入图片描述


nacos配置负载均衡

改造生产者nacos-provider-project

controller层

@RestController
public class ProviderController {@Value("${server.port}")private String port;@RequestMapping(value = "/nacos/provider/get/{id}",method = RequestMethod.GET)public String getNacosProvider(@PathVariable Integer id){return "使用provider中的方法,端口号:"+port+",传来参数:"+id;}
}

改造消费者nacos-consumer-project

配置负载均衡

@Configuration
public class ConsumerConfig {@Bean@LoadBalancedpublic RestTemplate getRestTemplate(){return new RestTemplate();}
}

controller

@RestController
public class ConsumerController {@Autowiredprivate RestTemplate restTemplate;@RequestMapping(value = "/nacos/consumer/get/{id}",method = RequestMethod.GET)public String getNacosConsumer(@PathVariable Integer id){return restTemplate.getForObject("http://nacos-provider/nacos/provider/get/"+id,String.class);}
}

测试

现在启动两个生产者,先启动一个生产者然后修改一下端口号再启动一个生产者
在这里插入图片描述
在这里插入图片描述
现在有两个 生产者,端口号分别为8081和8082。
启动消费者消费者端口号为8091
现在通过apifox调用消费者的接口
在这里插入图片描述
在这里插入图片描述
根据返回值可以看到,消费者分别调用了两个生产者的接口,达成负载均衡的效果。
可以在nacos网站未各个生产者分配权重。权重越高被访问的频率越高,权重设置为0则实例完全不会被访问。
在这里插入图片描述
在这里插入图片描述
使用负载均衡,可以合理利用资源,服务器性能有差异,当实例部署在性能不同的机器上时,可以通过设置权重,让性能好的机器承担更多的用户请求;另外,在升级服务时,通过调整权重进行平滑升级,例如,把实例1权重调节为0,用户只能去调用实例2、实例3的情况,待实例1升级后,也可以将实例1的权重设置为0.1,让一部分用户先体验,实例1稳定后再调高权重。


nacos配置中心

SpringCLoud Alibaba的Nacos相对于SpringCloud而言,实现了Eureka和Config和Ribbon的作用,上面已经介绍了nacos对应eureka可ribbon的内容,下面介绍config的内容。
nacos的配置中心中,所有服务使用nacos上面的配置,不走本地配置。

创建命名空间

现在nacos网站上创建一个新的命名空间
在这里插入图片描述
在这里插入图片描述

修改生产者nacos-provider-project

增加一个配置文件bootstrap.properties

配置文件是先加载bootstrap再加载application,所有读取nacos的配置写在bootstrap配置里。

spring.application.name=nacos-provide-config-center
spring.cloud.nacos.config.server-addr=http://192.168.220.1:8848
spring.cloud.nacos.config.file-extension=yaml
spring.cloud.nacos.config.namespace=8302a253-b30a-4a13-bdeb-0caf566317b9
spring.profiles.active=dev
spring.cloud.nacos.config.refresh-enabled=true

在nacos网站里同样需要配置
在这里插入图片描述

bootstrap.properties文件中输入的内容与在网页里配置的内容相一致

application.name会对应nacos上面配置文件的dataid值server-addr是nacos的地址file-extension是对应nacos上面配置文件的扩展名namespace是对应nacos上面配置文件所属的命名空间active是表示后缀使用哪个配置文件,例如nacos-provide-config-center-dev.yaml,nacos-provide-config-center-test.yamlrefresh-enabled是开启配置文件自动刷新(修改nacos的配置文件后默认不会自动刷新,除非重启服务。注意:需要结合@RefreshScope注解一起使用)

在这里插入图片描述

在controller层增加注解@RefreshScope

在这里插入图片描述

测试

启动生产者与消费者后,可以在nacos网站的配置中看到,端口号与本地不同。

http://www.tj-hxxt.cn/news/21368.html

相关文章:

  • 如何登陆建设银行信用卡网站百度seo排名点击器app
  • 模版网站可以做seo吗seo优化必备技巧
  • wordpress几万条数据响应式网站 乐云seo品牌
  • 王野天个人资料seo优化名词解释
  • 南昌商城网站建设公司sem账户托管外包
  • 海创网站建设郑州千锋教育培训机构怎么样
  • 阿里云备案 网站备案域名购买外贸seo优化公司
  • 做vlogger的网站有哪些今日最新闻
  • 网站开发 需要用到什么软件什么网站可以免费推广
  • 一个网站需要多少空间培训班该如何建站
  • 百度网站前三名权重一般在多少seo推广软件排行榜前十名
  • 微信小程序专业开发公司郑州网站seo顾问
  • 低价做网站优化seo方案
  • wordpress 图文直播插件台州优化排名推广
  • 接项目的网站开发pb桌面程序小红书seo排名规则
  • 网站架构设计师怎样宣传网站
  • 重庆建设网站的公司百度推广开户2400
  • python网站开发演示网站推广去哪家比较好
  • 全网霸屏推广系统广州宣布5条优化措施
  • 陶瓷网站模板交换友情链接的平台有哪些
  • 友汇网 做公司网站百度指数的特点
  • 网站开发asp软件有哪些软文优化
  • 精品课程网站营销型网站建设ppt
  • 兰州网站建设hiteeth网站制作公司官网
  • 韶关专业网站建设教程网络营销推广经验总结
  • 孝感58同城网站建设网站设计的毕业论文
  • 51做图片的网站市场调研报告包括哪些内容
  • 网站设计需要学什么软件成人再就业技能培训班
  • 洛阳市住房和城乡建设委员会网站seo培训班 有用吗
  • 国内男女直接做的视频网站百度数据分析