一:服务长途调用
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)
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
- </dependency>
复制代码 step3:编写启动类(main函数),添加@EnableEurekaServer注解
留意启动类的位置
(feign与gateway的位置也一样)
- public class EurekaApplication {
- public static void main(String[] args) {
- SpringApplication.run(EurekaApplication.class, args);
- }
- }
复制代码 step4:添加application.yml文件,编写设置--用于服务注册
在resource包下创建yml文件---用于服务注册--本身注册到本身上
关于为什么要设置eureka的地点信息?
eureka也是一个服务,其同order和user一样在父工程下的一个服务(功能)。其是注册中心,也要设置端标语和哀求路径(http://127.0.0.1:10086/eureka),将自身注册进去。
留意:eureka是服务,且负担大量服务的注册和发现操纵。其非常关键。因此同紧张数据一样,多级备份。差别地区,同一地区多台。
- server:
- port: 10086 # 服务端口
- spring:
- application:
- name: eurekaserver # eureka的服务名称
- eureka:
- client:
- service-url: # eureka的地址信息
- defaultZone: http://127.0.0.1:10086/eureka
复制代码 eureka的UI界面
欣赏器输入地点信息http://127.0.0.1:10086,即可跳转eureka的UI界面。便于检察当前注册中心管理的各个服务环境
2.服务注册
Step1:引入依靠
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
- </dependency>
复制代码 step2:添加服务注册的设置
- eureka:
- client:
- service-url: # eureka的地址信息
- 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
方法二:设置文件中界说规则
- userservice:
- ribbon:
- NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule # 负载均衡规则
复制代码 2.饥饿加载
- ribbon:
- eager-load:
- enabled: true # 开启饥饿加载
- clients: # 指定饥饿加载的服务名称
- - 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企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金 |