SpringCloud微服务实践1|Eureka实践,nacos实践,Ribbon实践

[复制链接]
发表于 2026-2-8 21:56:24 | 显示全部楼层 |阅读模式
一:服务长途调用

   1.使命:

  在order里长途调用user.(order对user发起哀求)
  

  2.实现步调:

  step1:在order的启动类OrderApplication里注册RestTemplate

  创建RestTemplate并注入Spring容器
  

  
  step2:修改查询方法,使用RestTemplate长途调用服务user

  

  如下代码
  

  url:前面是IP和端口,反面是user的哀求参数: “/user”,在user服务里可以看到,其继承相应的路径参数为: “/user”
  

   二:Eureka实践

   

  1.搭建Eureka注册中心

   step1:新建eurka-server模块

  引入maven
  

  step2:引入eurka依靠

  在该项目标xml文件中引入eurka依靠
  不必要指定版本,由于在父工程(cloud-demo)的xml文件中已经指定好了(同springboot)
  

  1. <dependency>
  2.             <groupId>org.springframework.cloud</groupId>
  3.             <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
  4.         </dependency>
复制代码
step3:编写启动类(main函数),添加@EnableEurekaServer注解

  留意启动类的位置
  (feign与gateway的位置也一样)
  

  1. public class EurekaApplication {
  2.     public static void main(String[] args) {
  3.         SpringApplication.run(EurekaApplication.class, args);
  4.     }
  5. }
复制代码
step4:添加application.yml文件,编写设置--用于服务注册

  在resource包下创建yml文件---用于服务注册--本身注册到本身上
  关于为什么要设置eureka的地点信息?

  eureka也是一个服务,其同order和user一样在父工程下的一个服务(功能)。其是注册中心,也要设置端标语和哀求路径(http://127.0.0.1:10086/eureka),将自身注册进去。
  留意:eureka是服务,且负担大量服务的注册和发现操纵。其非常关键。因此同紧张数据一样,多级备份。差别地区,同一地区多台。
  

  1. server:
  2.   port: 10086 # 服务端口
  3. spring:
  4.   application:
  5.     name: eurekaserver # eureka的服务名称
  6. eureka:
  7.   client:
  8.     service-url:  # eureka的地址信息
  9.       defaultZone: http://127.0.0.1:10086/eureka
复制代码
   eureka的UI界面

  欣赏器输入地点信息http://127.0.0.1:10086,即可跳转eureka的UI界面。便于检察当前注册中心管理的各个服务环境
  

  

  2.服务注册


   Step1:引入依靠
  1. <dependency>
  2.             <groupId>org.springframework.cloud</groupId>
  3.             <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
  4. </dependency>
复制代码
step2:添加服务注册的设置
  1. eureka:
  2.   client:
  3.     service-url:  # eureka的地址信息
  4.       defaultZone: http://127.0.0.1:10086/eureka
复制代码

  

    注册多个实例:

  

  添加  应用步调  服务(不是Java草稿)
  然后右键复制设置,看弹幕,编辑设置,答应多个实例,修改原yml文件中的端标语,重新运行,即可实现。
  10-Eureka-服务注册_哔哩哔哩_bilibili
  IDEA 2023.2新版怎样将同一个项目开启多个,模仿集群环境_idea同一个项目打开两个窗口-CSDN博客
  

  

  

  3.服务发现

   

  

  Step1:orderservice里的访问路径url, 服务名更换原来的IP端口

  原来:
  

  现在:
  

  Step2:添加负载均衡注解--多个实例“均衡分担哀求(流量)”

  @Bean 是注册RestTemplate,创建bean对象,交给IOC容器管理
  

  4.总结



三:Ribbon实践--调解负载均衡计谋

   通过IRule接口 选择某个服务实例----IRule接口的实现类,是差别的负载均衡计谋通过修改其参数可以实现差别的计谋
  

  

  

  1.调解负载均衡计谋

   方法一:启动类界说新的Irule

  

  

  方法二:设置文件中界说规则

  

  1. userservice:
  2.   ribbon:
  3.     NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule  # 负载均衡规则
复制代码
2.饥饿加载

  

  1. ribbon:
  2.   eager-load:
  3.     enabled: true # 开启饥饿加载
  4.     clients: # 指定饥饿加载的服务名称
  5.       - userservice
复制代码
四:nacos实践--注册中心与设置管理

1.注册中心(服务中心)

   1.1 认识安装nacos

  (1)启动

  bin目次打开,输入: .\startup.cmd -m standalone
  

  

  (2)打开UI界面

  点如下毗连,跳转页面,账号暗码都是nacos
  

  

  1.2 服务注册

  将order服务与user服务注册到nacos里
  

  

  1.3 添加服务集群属性

  设置文件加属性
  

  1.4 将负载均衡计谋调解为:集群优先

  设置文件加参数
  

  1.5 将负载均衡计谋调解为:权重优先

  nacos控制台操纵
  (权巨大不是肯定调用权巨大的,照旧具有随机性,同线程的优先级)
  

  1.6 设置环境隔离

  

  

  

  给谁人服务添加环境隔离属性,就修改其设置
  

  1.7 设置 暂时实例属性

  修改文件设置
  

  2.同一设置管理

   目标:服务A长途调用B,B调用C,.....,
  在服务集群很大时,这个长途调用链路几十上百个
  而当我们在:修改服务A的某个设置时,就大概必要修改它调用的服务的设置。而一个一个地去找这些服务并修改设置是繁琐地。
  nacos同一设置管理:
  step1:
  nacos界面(控制台):对服务A创建一个设置文件yaml,把常变的一些设置  放进  这个设置文件中。实现被调用服务的热更新。
  step2:
  在服务A里:(1)引入nacos同一设置管理依靠
  (2)在设置文件里添加:辨认nacos控制台新建的设置文件yaml。
    step1:新创建置文件---nacos控制台操纵

  对必要同一设置管理的服务新创建置文件---nacos控制台操纵
  

  

  

    step2: 对需同一设置管理的服务引入依靠+添加新设置文件

  

    step3: 设置热更新

  springboot里:属性设置两种方式:
  (1)@value
  (2)@ConfigurationProperties
  

  设置属性的热更新同样在这两种方法上修改
  (1)@value方法设置的属性
  这个变量在服务user的谁人类里,就在这个类上上添加@RefreshScope注解
  

  (2)@ConfigurationProperties设置的属性
  @ConfigurationProperties(prefix = "pattern")
  

  

  

  关于属性:prefix

  本实行中:@ConfigurationProperties(prefix = "pattern")
  全部设置文件含
  

  

  





免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表