Nacos Discovery--服务治理 和 使用 eureka 作为注册中心

1.nacos

1.安装 nacos

下载地址 : https://github.com/alibaba/nacos/releases
下载 zip 格式的安装包,然后进行解压缩操作
2. 启动 nacos

3.访问 nacos

打开浏览器输入 http://localhost:8848/nacos ,即可访问服务, 默认密码是 nacos/nacos

4.将商品和订单都微服务注册到 nacos

引入注册中心的依赖(全部版本号在父工程的pom.xml已配置)

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

在主启动类上添加 nacos 的开启注解

application.yml 中添加 nacos 服务的地址,并为微服务起名称

商品:

订单:

5.启动服务, 观察 nacos 的控制面板中是否有注册上来的商品和订单的微服务

6.修改 OrderController 中的代码

 
 

2.实现服务调用的负载均衡

1.自定义实现负载均衡

2.通idea 再启动一个 shop-product 微服务,设置其端口为 8082

3.启动创建的项目,通过 nacos 查看微服务的启动情况

4.修改 shop-order 的代码,实现负载均衡(随机)

5,启动两个服务提供者和一个服务消费者,多访问几次消费者测试效果

3.基于 Ribbon 实现负载均衡 ---组件

Ribbon 是 Netflix 发布的一个负载均衡器,Ribbon 自动的从注册中心中获取服务提供者的 列表信息,并基于内置的负载均衡算法,请求服务。
Ribbon 的主要作用:
1 )服务调用
基于 Ribbon 实现服务调用, 是通过拉取到的所有服务列表组成(服务名 - 请求路径的)映射关系。 借助 RestTemplate 最终进行调用。
2 )负载均衡
当有多个服务提供者时, Ribbon 可以根据负载均衡的算法自动的选择需要调用的服务地址,Ribbon 是 Spring Cloud 的一个组件, 它可以让我们使用一个注解就能轻松的搞定负载均衡。
1. RestTemplate 的生成方法上添加 @LoadBalanced 注解
2. 修改服务调用的方法 (轮流交替)
我们可以通过修改配置来调整 Ribbon 的负载均衡策略,(随机负载均衡)具体代码如下:

4.基于 OpenFeign 实现服务调用

     Feign 是 Spring Cloud 提供的一个声明式的伪 Http 客户端,它使得调用远程服务就像调用本地服务一样简单, 只需要创建一个接口并添加一个注解即可。
     Nacos 很好的兼容了 Feign, Feign 负载均衡默认集成了 Ribbon, 所以在 Nacos 下使用 Fegin 默认就实现了负载均衡的效果。
1.在shop-order的pom 加入 Fegin 的依赖
<!--feign的ja文件-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
2.在主启动类上加入开启 feign 的注解
@EnableFeignClients //开启 feign 的注解
3. 创建 feign 的接口 (  feign.ProductFeign  )
4. 修改 OrderController 的代码
5. 重启 order 微服务 ,测试 查看效果(随机)

5.使用 eureka 作为注册中心

Eureka Netflix 开发的服务发现框架, SpringCloud 将它集成在自己的子项目
spring-cloud-netflix , 实现 SpringCloud 的服务发现功能。
1.创建一个 eureka 服务端
2. eureka 服务端引入相关的依赖
<dependencies> <!--eureka-server-->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <scope>runtime</scope>
        <optional>true</optional>
    </dependency>
</dependencies>

3.书写application.yml配置类

4.书写主启动类

然后运行主启动类,在浏览器打开eureka

5.在shop-product的application.yml进行添加配置(注册shop-product)

6.在shop-product的pom添加eureka的依赖

7.刷新eureka

说明注册shop-product成功

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值