ToB企服应用市场:ToB评测及商务社交产业平台

标题: SpringBoot3.1.5对应新版本SpringCloud开发(1)-Eureka注册中心 [打印本页]

作者: 道家人    时间: 2024-5-19 01:30
标题: SpringBoot3.1.5对应新版本SpringCloud开发(1)-Eureka注册中心
服务的提供者和消费者
  1. 服务之间可以通过Spring提供的RestTemplate来进行http请求去请求另一个Springboot的项目,这就叫做服务间的远程调用。
  2. 当一个服务通过远程调用去调用另一个服务时,被调用的服务就叫做服务的提供者,调用服务的服务就叫做服务的消费者。
  3. 一个服务可以既是服务的提供者也是服务的消费者。
复制代码
1、服务调用关系
Eureka注册中心

eureka的作用
在eureka架构中,微服务脚色有两类:
EurekaServer服务注册
父工程引入对应版本的springcloud依赖
springboot 3.1.5对应
  1. <dependency>
  2.     <groupId>org.springframework.cloud</groupId>
  3.     <artifactId>spring-cloud-dependencies</artifactId>
  4.     <version>2022.0.4</version>
  5.     <type>pom</type>
  6.     <scope>import</scope>
  7. </dependency>
复制代码
引入eureka服务端依赖
  1. <dependencies>
  2.     <dependency>
  3.         <groupId>org.springframework.cloud</groupId>
  4.         <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
  5.     </dependency>
  6. </dependencies>
复制代码
启动eureka服务,在启动类上添加@EnableEurekaServer注解
  1. @SpringBootApplication
  2. @EnableEurekaServer
  3. public class EurekaServerApplication {
  4.     public static void main(String[] args) {
  5.         SpringApplication.run(EurekaServerApplication.class, args);
  6.     }
  7. }
复制代码
配置文件中配置服务名称-地址-服务端口
  1. spring:
  2.   application:
  3.     name: eureka-server #微服务名称
  4. server:
  5.   port: 10086 #服务端口
  6. eureka:
  7.   client:
  8.     service-url: #eureka地址信息 eureka自己也是一个微服务,也会被注册到eureka中 为了做eureka集群
  9.       defaultZone: http://127.0.0.1:10086/eureka
复制代码
eureka服务端自己也会被注册到eureka服务中
然后就可以访问http://127.0.0.1:10086进入eureka注册中心了
确保父工程成功引入cloud依赖后引入eureka服务端依赖
  1. <dependency>
  2.     <groupId>org.springframework.cloud</groupId>
  3.     <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
  4. </dependency>
复制代码
在配置文件中配置eureka服务名称和地址即可
  1. server:
  2.   port: 8081
  3. spring:
  4.   application:
  5.     name: cloud-user
  6. eureka:
  7.   client:
  8.     service-url:
  9.       defaultZone: http://127.0.0.1:10086/eureka
复制代码
引入依赖
  1. <dependency>
  2.     <groupId>org.springframework.cloud</groupId>
  3.     <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
  4. </dependency>
复制代码
配置地址
  1. eureka:
  2.   client:
  3.     service-url:
  4.       defaultZone: http://127.0.0.1:10086/eureka
复制代码
给RestTemplate添加上@LoadBalanced注解,实现同一服务多个地址的负载均衡调用
  1. //RestTemplate spring提供的远程调用模块 允许发送http请求
  2. @Bean
  3. @LoadBalanced
  4. public RestTemplate restTemplate(){
  5.     return new RestTemplate();
  6. }
复制代码
使用RestTemplate不通过具体的ip地址而是通过服务名称远程调用实现查询
  1. @Autowired
  2. RestTemplate restTemplate;
  3. @GetMapping("/order/all/{id}")
  4. public ordersUser getAllById(@PathVariable("id") Integer id){
  5.     String str1 = "http://cloud-order/order/"+id;
  6.     orders od = restTemplate.getForObject(str1, orders.class);
  7.     String str = "http://cloud-user/user/"+od.getOrderuserid();
  8.     user forObject = restTemplate.getForObject(str, user.class);
  9.     ordersUser ordersUser = new ordersUser();
  10.     ordersUser.setOrderid(od.getOrderid());
  11.     ordersUser.setUser(forObject);
  12.     ordersUser.setOrdername(od.getOrdername());
  13.     ordersUser.setOrderaddress(od.getOrderaddress());
  14.     ordersUser.setOrderprice(od.getOrderprice());
  15.     ordersUser.setOrdernumber(od.getOrdernumber());
  16.     return ordersUser;
  17. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4