springCloud学习

1 篇文章 0 订阅
1 篇文章 0 订阅

eureka配置和使用

用途:用于管理各个微服务模块

使用

1.在父工程下建立eureka子工程

eureka子工程

2.在eurake子工程的pom文件中添加eureka-server服务依赖

  <!--  eureka服务   -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>

由于在父工程的依赖中已经规定了版本,所以在这里就不用写版本信息了

3. 在子工程下建立启动类

package cn.itcast.erueka;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
//引入eureka服务
@EnableEurekaServer
@SpringBootApplication

public class EruekaApplication {
    public static void main(String[] args) {
        SpringApplication.run(EruekaApplication.class,args);
    }
}

在eureka子工程中添加配置文件

server: #指定端口
  port: 10086
spring:
  application: #项目名称
    name: eurekaserver
eureka:
  client:
    service-url: #地址信息
      defaultZone: http://127.0.0.1:10086/eureka

在启动类中启动项目

3.在服务中点击端口即可跳转到eureka的管理页面

启动子工程
eureka管理页面

4.将子工程注册进eureka中

  • 在子项目pom文件中添加依赖
 <!--   在eureka中注册  -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
  • 在子项目配置文件中添加eureka配置
    在子项目中添加配置
    在spring标签中放入
    项目名称
  • 重启子项目就可以看到子项目全部注册进eureka中了
    子项目注册

5.使用RestTemplate发送http请求调用微服务

  • 在需要调用微服务的子工程的启动类中注入RestTemplare
   //创建restTemplate对象
    @Bean
    @LoadBalanced
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
  • 在service类中使用RestTemplare发送请求得到所需数据
@Service
public class OrderService {

    @Autowired
    private OrderMapper orderMapper;
    @Autowired
    private RestTemplate restTemplate;
    public Order queryOrderById(Long orderId) {
        // 1.查询订单
        Order order = orderMapper.findById(orderId);
        //2.利用RestTemplate发送http请求,获取user信息
        //url路径写服务名称
        String url="http://userservice/user/"+order.getUserId();
        //发送http请求,实现远程调用
        User user = restTemplate.getForObject(url, User.class);
        //order中加入用户信息
        order.setUser(user);
        // 4.返回
        return order;
    }
}

这里需要注意的是:我们要调用其他子工程上的微服务,而其他子工程可能是部署在其他服务器上的,我们不一定知道地址,而且后期维护比较麻烦,所以这里的url不能直接写服务器地址,而是要写在eurrka中注册的服务名称即可,eureka会通过负载均衡调用服务

负载均衡

通俗来讲就是把同一件事情分发给不同的服务器去做,有效地减小了单台服务器的负载

配置

由于我们这里只有一台服务器,所以只能用idea中的服务复制来模拟

步骤:

  1. 在idea的service面板中选中一个service,然后按ctrl+D,会出现下列页面
    复制
服务
  2. 由于端口和被辅助的那个service是冲突的。所以要修改端口,找到VM options这个输入框,输入-Dserver.port=指定端口即可
  3. 在子工程的启动类注入restTemplate的方法上写上@LoadBalanced 即可开启负载均衡
  4. 启动service即可
    此时eureka就会根据service当前的状态自动分配任务,以达到减小负载的目的

未完待续

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值