vlambda博客
学习文章列表

微服务注册中心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 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。

微服务注册中心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(一)

这样服务就注册上去了,这是快速入门的展示
接下来就是集群部署,教程之前先看一下

nacos领域模型划分以及概念

Nacos 数据模型 Key 由三元组唯一确定, Namespace默认是空串,公共命名空间(public),分组默认是 DEFAULT_GROUP

微服务注册中心NACOS(一)

这样有什么好处就是为了服务的颗粒细分化
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
节点列表

微服务注册中心NACOS(一)

服务注册情况

微服务注册中心NACOS(一)

微服务注册中心NACOS(一)

微服务注册中心NACOS(一)


微服务注册中心NACOS(一)

Pine的知识库

微服务注册中心NACOS(一)

扫码关注我

微服务注册中心NACOS(一)

淘宝内部优惠券点击“阅读原文”领取

右边给我一朵小花花