建设部网站 造价,响应式企业网站设计与实现,网站建设系统开发感想与收获,石家庄哪里有做网站目录
安装Nacos服务器
服务发现与消费
服务发现与消费-添加依赖
服务发现-配置文件
服务发现-注解
服务发现-Controller
服务消费-配置文件
服务消费-注解与Ribbon消费代码
服务消费-运行
配置管理
配置管理-添加依赖
配置管理-配置文件
配置管理-注解
配置管理-…
目录
安装Nacos服务器
服务发现与消费
服务发现与消费-添加依赖
服务发现-配置文件
服务发现-注解
服务发现-Controller
服务消费-配置文件
服务消费-注解与Ribbon消费代码
服务消费-运行
配置管理
配置管理-添加依赖
配置管理-配置文件
配置管理-注解
配置管理-加入配置1
配置管理-加入配置2
配置管理-切换不同环境
DatalD方案
Group方案
Namespace空间方案
单机模式支持mysql
linux版本安装集群配置
linux安装
更改Nacos启动命令配置原理
集群配置
Linux服务器上Mysql数据库配置
Linux服务器上Nacos的集群配置cluster.conf
编辑Nacos的启动脚本startup.sh
Nginx配置
测试启动
启动Nacos
启动Nginx
集群添加配置
配置微服务为Linux版Nacos集群并注册进Nacos 安装Nacos服务器
Nacos 快速开始
下载软件包然后sh startup.sh -m standalone即可
服务发现与消费
Nacos Spring Cloud 快速开始 服务发现与消费-添加依赖
dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactIdversion${latest.version}/version
/dependency
注意版本 2.1.x.RELEASE 对应的是 Spring Boot 2.1.x 版本。版本 2.0.x.RELEASE 对应的是 Spring Boot 2.0.x 版本版本 1.5.x.RELEASE 对应的是 Spring Boot 1.5.x 版本。
该依赖对生产者和消费者都适用
更多版本对应关系参考版本说明 Wiki
服务发现-配置文件
配置服务提供者从而服务提供者可以通过 Nacos 的服务注册发现功能将其服务注册到 Nacos server 上。
在 application.properties 中配置 Nacos server 的地址
server.port8070
spring.application.nameservice-providerspring.cloud.nacos.discovery.server-addr127.0.0.1:8848
或者bootstrap.yaml 中配置 Nacos server 的地址和应用名
server:port:9001spring:cloud:nacos:config:server-addr: 192.168.29.1:8848file-extension: yamlapplication:name: nacos-p
之所以需要配置 spring.application.name 是因为它是构成 Nacos 配置管理 dataId字段的一部分。
在 Nacos Spring Cloud 中dataId 的完整格式如下
${prefix}-${spring.profiles.active}.${file-extension}
prefix 默认为 spring.application.name 的值也可以通过配置项spring.cloud.nacos.config.prefix来配置。
spring.profiles.active 即为当前环境对应的 profile详情可以参考 [Spring Boot文档](https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-profiles.html#boot-features-profiles)。 **注意当 spring.profiles.active 为空时对应的连接符 - 也将不存在dataId 的拼接格式变成 ${prefix}.${file-extension}
file-exetension 为配置内容的数据格式可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。
服务发现-注解
通过 Spring Cloud 原生注解 EnableDiscoveryClient 开启服务注册发现功能
SpringBootApplication
EnableDiscoveryClient
public class NacosProviderApplication {public static void main(String[] args) {SpringApplication.run(NacosProviderApplication.class, args);}RestControllerclass EchoController {RequestMapping(value /echo/{string}, method RequestMethod.GET)public String echo(PathVariable String string) {return Hello Nacos Discovery string;}}
}
服务发现-Controller
RestController
RefreshScope
public class MainController {Value(${xxoo})private String userName;RequestMapping(/hello)public String hello() {return hello: userName;}
}
RefreshScope注解能帮助我们做局部的参数刷新但侵入性较强需要开发阶段提前预知可能的刷新点并且该注解底层是依赖于cglib进行代理
注意服务启动前要先启动Nacos!!
服务消费-配置文件
在 application.properties 中配置 Nacos server 的地址
server.port8080
spring.application.nameservice-consumerspring.cloud.nacos.discovery.server-addr127.0.0.1:8848
服务消费-注解与Ribbon消费代码
通过 Spring Cloud 原生注解 EnableDiscoveryClient 开启服务注册发现功能。给 RestTemplate 实例添加 LoadBalanced 注解开启 LoadBalanced 与 Ribbon 的集成
SpringBootApplication
EnableDiscoveryClient
public class NacosConsumerApplication {// 注意这里生成resttemplateLoadBalancedBeanpublic RestTemplate restTemplate() {return new RestTemplate();}public static void main(String[] args) {SpringApplication.run(NacosConsumerApplication.class, args);}
}RestController
public class TestController {private final RestTemplate restTemplate;Autowiredpublic TestController(RestTemplate restTemplate) {this.restTemplate restTemplate;}RequestMapping(value /echo/{str}, method RequestMethod.GET)public String echo(PathVariable String str) {return restTemplate.getForObject(http://service-provider/echo/ str, String.class);}
}restTemplate.getForobject(arg1, arg2, arg3...);
第一个参数url表示被调用的目标Rest接口位置
1. url的第一部分是在Nacos中注册的服务提供者名称如果多个服务提供者注册相同名称 Ribbon会自动寻找其中一个服务提供者并且调用接口方法。这个就是负载均衡功能。
2.url后半部是控制器的请求路径。
第二个参数是返回值类型
1. JavaBean类型或者JavaBean数组类型如果控制器返回的是List集合需要使用数组类型接收。
第三个参数是可变参数
1.是传递给url的动态参数使用参数时候需要在url上需要使用(1)、(2)、(3)进行参数占位这样传递的参数就会自动替换占位符。
nacos自带了ribbon所以不用别的配置
服务消费-运行
启动 ProviderApplication 和 ConsumerApplication 调用 http://localhost:8080/echo/2018返回内容为 Hello Nacos Discovery 2018。
配置管理
配置管理-添加依赖
dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactIdversion${latest.version}/version
/dependency
注意版本 2.1.x.RELEASE 对应的是 Spring Boot 2.1.x 版本。版本 2.0.x.RELEASE 对应的是 Spring Boot 2.0.x 版本版本 1.5.x.RELEASE 对应的是 Spring Boot 1.5.x 版本。
更多版本对应关系参考版本说明 Wiki
配置管理-配置文件
在 bootstrap.properties 中配置 Nacos server 的地址和应用名
spring.cloud.nacos.config.server-addr127.0.0.1:8848spring.application.nameexample
说明之所以需要配置 spring.application.name 是因为它是构成 Nacos 配置管理 dataId字段的一部分。
在 Nacos Spring Cloud 中dataId 的完整格式如下
${prefix}-${spring.profiles.active}.${file-extension}
例如xxxspring的application的名字-dev/test如果没配就没有.properties/yaml
例如my-producer-dev.yaml
prefix 默认为 spring.application.name 的值也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
可以在application.properties里面设置spring.profiles.activedev或者test等等
spring.profiles.active 即为当前环境对应的 profile详情可以参考 Spring Boot文档。 注意当 spring.profiles.active 为空时对应的连接符 - 也将不存在dataId 的拼接格式变成 ${prefix}.${file-extension}
可以在boostrap.properties里配置spring.cloud.nacos.config.file-extensionyaml或者properties
file-exetension 为配置内容的数据格式可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。
配置管理-注解
启动类要加入EnableDiscoveryClient注解
通过 Spring Cloud 原生注解 RefreshScope 实现配置自动更新
RestController
RequestMapping(/config)
RefreshScope
public class ConfigController {Value(${useLocalCache:false})private boolean useLocalCache;RequestMapping(/get)public boolean get() {return useLocalCache;}
}
配置管理-加入配置1
首先通过调用 Nacos Open API 向 Nacos Server 发布配置dataId 为example.properties内容为useLocalCachetrue
curl -X POST http://127.0.0.1:8848/nacos/v1/cs/configs?dataIdexample.propertiesgroupDEFAULT_GROUPcontentuseLocalCachetrue
运行 NacosConfigApplication调用 curl http://localhost:8080/config/get返回内容是 true。
再次调用 Nacos Open API 向 Nacos server 发布配置dataId 为example.properties内容为useLocalCachefalse
curl -X POST http://127.0.0.1:8848/nacos/v1/cs/configs?dataIdexample.propertiesgroupDEFAULT_GROUPcontentuseLocalCachefalse
再次访问 http://localhost:8080/config/get此时返回内容为false说明程序中的useLocalCache值已经被动态更新了。
配置管理-加入配置2 配置管理-切换不同环境
DatalD方案
1.指定spring.profile.active和配置文件的DatalD来使不同环境下读取不同的配置,配置规则:默认空间新建dev和test两个Datald:
a 新建dev配置DatalD 已经创建完成
b 新建test配置DatalD 2.通过spring.profile.active属性就能进行多环境下配置文件的读取 3 配置文件弄多个然后修改active属性即可切换到对应配置文件
Group方案
根据之前的讲解我们都知道Group为分组默认是: DEFAULT_GROUP,所以现在我们就需要分出两组】一组是Dev开发组,一组是“test测试组”
1.新建Group
DEV_GROUP 建立TEST_GROUP分组同名的文件nacos-config-client-info.yaml
2.完成以上配置以后接下来就需要通过bootstrapapplication来配合完成具体方式
在config下增加一条Group的配置即可可以配置为DEV_GROUP或TEST_GROUP
bootstrap: application
注意刚刚将profile改成info了这个之后就不用变了 3 配置文件弄多个同名group不同修改bootstrap的group属性即可切换配置文件
Namespace空间方案
我们已经把DatalD方案和Group方案完成了,然后接下来我们来看一下Namespace (命名空间)方案,默认此方案为public,此方案不能删除我们现在来新建两个命名空间方案
1 新建dev/test的命名空间 2 服务管理-服务列表页面查看
此时我们就可以切换对应的命名空间,然后再通过Group和DatalD来进行切换,如果想要切换命名空间,我们就需要通过命名空间ID来进行切换 2. 按照域名配置(NamespaceGroupDatald)编写
先通过namespace命名空间ID来确认使用的命名空间 单机模式支持mysql
在0.7版本之前在单机模式时nacos使用嵌入式数据库实现数据的存储不方便观察数据存储的基本情况。0.7版本增加了支持mysql数据源能力具体的操作步骤
1.安装数据库版本要求5.6.5
2.初始化mysql数据库数据库初始化文件mysql-schema.sql
注意先创建数据库nacos_config然后在里面执行sql 3.修改nacos自己目录的conf/application.properties文件增加支持mysql数据源配置目前只支持mysql添加mysql数据源的url、用户名和密码。
spring.datasource.platformmysqldb.num1
db.url.0jdbc:mysql://11.162.196.16:3306/nacos_devtest?characterEncodingutf8connectTimeout1000socketTimeout3000autoReconnecttrue
db.usernacos_devtest
db.passwordyoudontknow
再以单机模式启动nacosnacos所有写嵌入式数据库的数据都写到了mysql
这里表示更改Nacos数据库为本机MySql数据库
注意这里需要注意几个点一个是url地址需要改另外数据库的用户和密码也需要更改同时还有一个是官网上在db.url.0jdbc:mysql这个属性上少了一个属性为serverTimezoneUTC需要我们手动添加l
测试
重启Nacos服务此时之前所创建的NamespaceGroupDatalD将全部消失因为这些数据是保存在之前Nacos内嵌的derby数据库中现在使用的是本地的MySql数据库此时我们可以添加配置测试在查看数据库nacos_config中的config_info表此时就会有新添加的配置内容
linux版本安装集群配置
Nacos生产环境下需要搭建集群配置那么这里我们预计需要 1个Nginx3个Nacos注册中心1个Mysql对nginx和mysql进行简化 linux安装
1.在官网下载NacosLinux版本: https://github.com/alibaba/nacos/releases 2.在Linux系统中解压此文件并且把其中nacos目录拷贝到mynacos目录中
tar -zxvf nacos-server-2.0.3.tar.gz
3.打开nacos目录下的bin目录输入命令即可执行
sh startup.sh
更改Nacos启动命令配置原理
我们现在知道,想要启动Naocs只需要启动startup.sh命令即可,但是如果启动3个Nacos那?所以如果我们需要启动多个Nacos,就需要自行修改startup命令 集群配置
Linux服务器上Mysql数据库配置
1.在Linux系统上执行SQL脚本,具体位置在nacos目录下的conf中,这里的操作和之前是一样的,我们可以直接打开这个文件然后拷贝到数据库中执行,当然也是要创建数据库使用数据库然后在复制脚本内容执行即可
create database nacos_config;
use nacos_config;
2.修改application.properties配置文件但是修改之前我们最好做一个备份。
cp application.properties application.properties.init
3.这里的修改和我们之间的在win上的修改是完全一样的,所以我们只要打开这个文件,加上对应的内容即可
spring.datasource.platformmysql
db.num1
db.ur1.0jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncodingutf8connectTimeout1000socketTimeout3000autoReconnecttrueserverTimezoneUTCl
db.userroot
db.password123456
Linux服务器上Nacos的集群配置cluster.conf
1.这里开始正式配置集群,首先我们要更改cluster.conf这个配置文件,当然我们也需要备份,但是这里它的原始名称为: cluster.conf.example,我们需要把它保留同时复制出一个cluster.conf来进行更改
cp cluster.conf.example cluster.conf
2.具体配置内容,这里我们在配置集群的时候不能直接写127.0.0.1这样,这样分不清楚,所以我们需要知道具体的IP地址,我们可以通过:
在conf文件里写入3个服务器对应的ip地址和端口号
ifconfig -a 查看具体ip地址 编辑Nacos的启动脚本startup.sh
1,编辑这个脚本的目的,是为了能够让我们在使用此命令启动的时候传入对应的端口号参数,这样携带着具体端口号参数的启动就能启动具体的Nacos节点了,此脚本的为止在/nacos/bin中 2.核心点传递不同的端口号启动不同的nacos实例命令
./startup.sh-p 3333
表示启动端口号为3333的nacos服务器实例这里要和config保持一直。
3. 具体修改依旧要备份cp startup.sh starup.sh.bk
修改对应的配置文件为红框的部分原来是没有port的那些东西 Nginx配置
1.我们需要找到Nginx的配置文件然后做备份
cd /usr/local/nginx
cp nginx.conf nginx.conf.bk
2. 修改nginx.conf
修改成下面红框那样监听1111端口 测试启动
启动Nacos
1.这里注意我们在启动之前必须要保证JDK环境变量配置好同时保证以上配置没有问题具体启动命令
./startup.sh -o 3333
./startup.sh -o 4444
./startup.sh -o 5555 2.启动完成之后我们需要通过如下指令来测试Nacos集群是否正常启动数量为3
ps -eflgrep nacos|grep -v grep Iwc -1
3 访问具体地址 xxx.xxx.xxx.xxx:3333/nacos出现即可
启动Nginx
1.首先进入到Nginx目录下,启动Nginx,同时要带着我们设置过得配置文件启动
cd /usr/local/nginx/sbin
./nginx -c /usr/local/nginx/conf/nginx.conf
2.通过访问Nginx来测试是否能够访问到Nacos,在win系统浏览器网址上输入:
192.168.124.133:1111/nacos
集群添加配置
1.在Nacos平台上添加配置 2. 在数据库中检查是否有这一条配置如果有表示成功添加 配置微服务为Linux版Nacos集群并注册进Nacos
1.我们以9002为例此时我们要修改application.yaml文件把之前的Nacos端口换成Nacos集群 2,配置完成启动服务,我们就可以在Naocs平台上看贝对应的微服务了,此时表示服务注册成功