微服务注册中心NACOS(一)
什么是注册中心
1ResponseEntity<OrderInfo> response OrderInfo =
2restTemplate.getFor OrderInfo (“http://localhost:8081/selectOrderInfoById/”+
3orderInfo.getOrderNo(), OrderInfo.class);
1restTemplate.getFor OrderInfo (“http://order/selectOrderInfoById/”+1)
Order服务部署一万台我也是这样去调你的服务,小明再也不用加班陪着调试了,回家欢快的找老王喝酒去了。
工作原理
SpringCloud中的注册中心
Netflix、Eureka、Zookeeper、Consul 、Nacos都可以实现注册中心以前最常用的是Eurek随着不更新维护断代,要寻找替代品,也有选择Consul的,这里我们选择阿里的Nacos。
Nacos
官方解释如下
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
其实直接在官网都能看的到https://nacos.io/zh-cn/docs/what-is-nacos.html
启动Nacos
1wget https://github.com/alibaba/nacos/releases/download/1.3.0/nacos-server-1.3.0.zip
2unzip nacos-server-1.3.0.zip -d /usr/local
3cd /usr/local/nacos/bin
4#启动命令(standalone代表着单机模式运行,非集群模式):
5sh startup.sh -m standalone
6tail -f /usr/local/nacos/logs/start.out
7#查看运行情况
8 ,--.
9 ,--.'|
10 ,--,: : | Nacos
11,`--.'`| ' : ,---. Running in cluster mode, All function modules
12| : : | | ' ,'\ .--.--. Port: 8848
13: | \ | : ,--.--. ,---. / / | / / ' Pid: 2385
14| : ' '; | / \ / \. ; ,. :| : /`./ Console: http://192.168.1.128:8848/nacos/index.html
15' ' ;. ;.--. .-. | / / '' | |: :| : ;_
16| | | \ | \__\/: . .. ' / ' | .; : \ \ `. https://nacos.io
17' : | ; .' ," .--.; |' ; :__| : | `----. \
18| | '`--' / / ,. |' | '.'|\ \ / / /`--' /
19' : | ; : .' \ : : `----' '--'. /
20; |.' | , .-./\ \ / `--'---'
21'---' `--`---' `----'
22#访问地址 http://192.168.1.128:8848/nacos/index.html
23
client服务端的搭建
①加入依赖
1 <dependency>
2 <groupId>com.alibaba.cloud</groupId>
3 <artifactId>spring‐cloud‐alibaba‐nacos‐discovery</artifactId>
4 </dependency>
②添加注解@EnableDiscoveryClient
1@SpringBootApplication
2@EnableDiscoveryClient //2.0之后可以不加
3public class Tulingvip01MsAlibabaNacosClientOrderApplication {
4 public static void main(String[] args) {
5 SpringApplication.run(Tulingvip01MsAlibabaNacosClientOrderApplication.class, args);
6 }
7}
③:配置文件添加
1 cloud:
2 nacos:
3 discovery:
4 server-addr: 192.168.1.128:8848 #这个地方不要加协议
默认的账号密码是nacos
这样服务就注册上去了,这是快速入门的展示
接下来就是集群部署,教程之前先看一下
nacos的领域模型划分以及概念
Nacos 数据模型 Key 由三元组唯一确定, Namespace默认是空串,公共命名空间(public),分组默认是 DEFAULT_GROUP。
这样有什么好处就是为了服务的颗粒细分化
Group1里面的有两个service,支付和订单,每个service里面又有两个集群分别为A和B,两个service里面的集群A里面的服务都在上海机房,这两个集群之间的服务将优先调用,这个是需要自己写点代码实现的,Group2和Group1之间就是为了阻隔两个服务之间的调用,你一个跑物流的过来喊我管支付的,没事看看我流水看看我账单,你看的着吗你,所以两个服务之前要进行隔离。当项目逐渐变大的时候,那么如何如何“管理”及“隔离”配置和服务需要根据实际项目环境去做出解决方案
Nacos的集群部署
1)修改nacos配置文件
1#复制两份nacos
2cd /usr/local
3cp -r nacos nacos88849
4cp -r nacos nacos88849
5#修改配置文件
6cd nacos/conf
7vi application.properties
8#修改数据库连接
9#默认端口号为8848,所以8849和8850的nacos要修改端口号,例如88849的修改为server.port=8849
1### Default web server port:
2server.port=8848
3
4#*************** Config Module Related Configurations ***************#
5### If user MySQL as datasource:
6spring.datasource.platform=mysql
7
8### Count of DB:
9db.num=1
10
11### Connect URL of DB:
12db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
13db.user=nacos
14db.password=nacos
1#添加集群文件
2cp cluster.conf.example cluster.conf
3vi cluster.conf
1#2020-07-08T01:49:30.296
2192.168.1.128:8848
3192.168.1.128:8849
4192.168.1.128:8850
1#建议修改一下启动文件一开始我是怎么也启动不起来
2#发现startup.sh默认设置的是2G,虚拟机内存不够了
3#根据自己实际情况修改
4vi ../bin/startup.sh
1JAVA_OPT="${JAVA_OPT} -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m中的-Xms -Xmx -Xmn
1#同理修改8849和8850
2#然后启动直接sh startup.sh 不用加后面的单机模式的参数了
3 ,--.
4 ,--.'|
5 ,--,: : | Nacos
6,`--.'`| ' : ,---. Running in cluster mode, All function modules
7| : : | | ' ,'\ .--.--. Port: 8848
8: | \ | : ,--.--. ,---. / / | / / ' Pid: 2385
9| : ' '; | / \ / \. ; ,. :| : /`./ Console: http://192.168.1.128:8848/nacos/index.html
10' ' ;. ;.--. .-. | / / '' | |: :| : ;_
11| | | \ | \__\/: . .. ' / ' | .; : \ \ `. https://nacos.io
12' : | ; .' ," .--.; |' ; :__| : | `----. \
13| | '`--' / / ,. |' | '.'|\ \ / / /`--' /
14' : | ; : .' \ : : `----' '--'. /
15; |.' | , .-./\ \ / `--'---'
16'---' `--`---' `----'
17
182020-07-08 01:49:10,562 INFO The server IP list of Nacos is [192.168.1.128:8848, 192.168.1.128:8849, 192.168.1.128:8850]
19
1最后一行就可以看到几个节点了
官方支持配置文件直接添加多个节点,但是不支持,你想写我也拦不住你
1 cloud:
2 nacos:
3 discovery:
4 server-addr: 192.168.1.128:8848,192.168.1.128:8849,192.168.1.128:8850
2)配置nginx
1upstream nacos-server {
2 server 192.168.1.128:8849;
3 server 192.168.1.128:8850;
4 server 192.168.1.128:8851;
5}
6server {
7 listen 8847;
8 server_name localhost;
9 location /nacos/ {
10 proxy_pass http://nacos-server/nacos/;
11 }
12}
3)修改项目配置文件,启动项目路
1server-addr: 192.168.1.128:8847
4)查看nacos
节点列表
服务注册情况
Pine的知识库
扫码关注我
淘宝内部优惠券点击“阅读原文”领取
右边给我一朵小花花