微服务架构演进&Nacos注册中心

1.系统架构的演变

单体架构(war包 or jar包 到服务器直接运行)——>垂直架构(增加NGINX反向代理)——>SOA面向服务架构——>微服务架构

单体架构:

垂直架构:

横向扩展服务器,NGINX做分流

SOA架构:

依托服务总线

微服务架构:

架构选型:看适用人数,没必要自己坑自己

如何实现微服务架构?

为什么需要注册中心?

新启动的服务, 注册到注册中心。调用者从服务中心拉取服务列表供服务调用者去使用,就算注册中心挂了,也能从缓存中取到。

Nacos:CP+AP

Zookeeper:CP

如果要接入注册中心,就需要引入Nacos的客户端的包 Client

注册中心就是服务端,Nacos  Server

核心功能

Nacos权限认证2.1.0之前有secretKey有默认值,别人可以通过调用Auth往Nacos插入新用户,所有服务别人都能看到和下线

Nacos的使用:

1.给需要加入到注册中心的微服务添加上依赖(这个依赖能实现自动注册功能)

2.启动类 开启服务发现(这个注解可省略)

3.指定注册中心地址(最好建立域名映射 不用改ip那么麻烦)

4.记得指定微服务的名字

5.然后登录到Nacos就发现注册上去了实例

6.远程调用服务

方法一

引用依赖

可以注入一个负载均衡的客户端(Nacos帮我们实现的)

传入微服务名字

底层会帮我们选择一个实例(基于权重的轮询)

接下来再通过restTemplate发起调用

常用配置:低版本需要禁用ribbon

方法二

底层调用会做替换(做了封装 实际还是方法一)

在远程调用的组件上带上注解

可以设置集群名字:上海机房

底层原理:

命名服务会获取所有实例,判断一下是不是同一个集群

需要指定负载均衡策略(可以自定义)这里指定的是NacosLoadBalancer(本地集群优先)

生效办法:

指定微服务名  和 策略的类

针对不同微服务可以配置多个

服务逻辑隔离

可以指定命名空间 

只会调用同一个命名空间下的实例

group 一般用来配置隔离

持久实例:一般是基础服务 比如:数据库,缓存服务,配好就不变了

会把数据持久化到本地磁盘,即使挂了重启会读本地磁盘文件

默认微服务注册的都是临时实例

数据都存在内存中,用弱一致协议保证一致性(AP)

权限鉴权(开启权限认证)

在Nacos配置里设置为true

修改默认值

同一个集群下要一致

记得配置用户名和密码 否则会报错

高可用配置(Nacos集群搭建):

官方推荐架构:

服务端负载均衡,由负载均衡器反向代理到具体的nacos

假如搭了2个集群,

这时候一个是8848,一个是8849

两个集群都会用到9849端口,就会gRPC端口冲突,隔开 隔大一点就不会

修改cluster.conf配置

本地搭伪集群需要指定ip

注册中心可以三个节点都指定(当然使用服务端负载均衡更推荐)

8848和9848需要暴露出去

Nginx配置

http里同样需要加配置

修改yaml配置

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值