微服务01-基本介绍+注册中心EureKa

这篇具有很好参考价值的文章主要介绍了微服务01-基本介绍+注册中心EureKa。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基本介绍

服务集群:一个请求由多个服务完成,服务接口暴露,以便于相互调用;

注册中心:每个服务的状态,需要进行维护,我们可以在注册中心进行监控维护服务;

配置中心:这些服务的配置我们都放在配置中心中配置,方便拉取配置信息,减少代码冗余;

微服务01-基本介绍+注册中心EureKa,微服务,微服务,eureka,架构

微服务01-基本介绍+注册中心EureKa,微服务,微服务,eureka,架构
微服务01-基本介绍+注册中心EureKa,微服务,微服务,eureka,架构
微服务优点

耦合度高,所有代码量放在一个里面,打包编译时间会很长,动一个模块中的代码,其他的可能会受影响;

微服务01-基本介绍+注册中心EureKa,微服务,微服务,eureka,架构
分布式架构:

对功能进行拆分,每个业务作为独立的项目作为独立项目开发,称为一个服务;方便升级,修改;

微服务01-基本介绍+注册中心EureKa,微服务,微服务,eureka,架构

微服务01-基本介绍+注册中心EureKa,微服务,微服务,eureka,架构
认识微服务
每个功能对应一种服务,避免业务重复开发,耦合度低,每个服务可以做一个对应的数据库,防止数据污染;
微服务01-基本介绍+注册中心EureKa,微服务,微服务,eureka,架构
总结:
微服务01-基本介绍+注册中心EureKa,微服务,微服务,eureka,架构

SpringCloudAlibaba兼容前面两种:

微服务01-基本介绍+注册中心EureKa,微服务,微服务,eureka,架构
企业微服务遇到场景:

微服务01-基本介绍+注册中心EureKa,微服务,微服务,eureka,架构
SpringCloud=SpringBoot+新的组件,因为基于springboot可以将这些组件自动装配;

微服务01-基本介绍+注册中心EureKa,微服务,微服务,eureka,架构

服务拆分及远程调用

微服务01-基本介绍+注册中心EureKa,微服务,微服务,eureka,架构

例子:
让订单模块调用用户模块(暴露接口),从而得到用户信息(数据库每个模块有自己专属的)

微服务01-基本介绍+注册中心EureKa,微服务,微服务,eureka,架构
远程调用分析:订单模块只需要能够请求到用户模块即可

微服务01-基本介绍+注册中心EureKa,微服务,微服务,eureka,架构
使用RestTemplate来完成远程调用获取用户信息;

1.现在主启动类注入一个RestTemplate组件

package cn.itcast.order;
 
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
 
@MapperScan("cn.itcast.order.mapper")
@SpringBootApplication
public class OrderApplication {
 
    public static void main(String[] args) {
        SpringApplication.run(OrderApplication.class, args);
    }
 
    /**
     * 创建RestTemplate并且注入Spring容器
     * @return
     */
    @Bean
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
}

然后再订单的业务功能中调用RestTemplate中的方法对远程接口进行调用以获取数据:

getForObject(请求路径,数据类型)

package cn.itcast.order.service;
 
import cn.itcast.order.mapper.OrderMapper;
import cn.itcast.order.pojo.Order;
import cn.itcast.order.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
 
@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请求,查询用户
        String url="http://localhost:8081/user/"+order.getUserId();
 
        //2.1对url进行请求得到json数据,并且转化为User类型
        User user = restTemplate.getForObject(url, User.class);
        order.setUser(user);
 
        // 4.返回
        return order;
    }
}

微服务01-基本介绍+注册中心EureKa,微服务,微服务,eureka,架构

消费者和提供者

服务与服务之间的关系需要相对来看,一个服务即可以是消费者也可以是提供者;

服务提供者:将接口暴露给其他服务;

服务消费者:调用暴露的接口;

EureKa注册中心

针对消费者如何获取提供者的地址信息;

对于消费者如何在多个提供者中进行选择;

消费者如何知道提供者健康状态;
微服务01-基本介绍+注册中心EureKa,微服务,微服务,eureka,架构
这里,EureKa全部帮你解决了

所有的服务,只要在EureKa的客户端,都会被注册到EureKa的注册中心(就跟暗网一样),每个人都能又当商家又当卖家,比如这里的消费者->会对其他服务进行请求;

直接根据具体的请求向EureKa拉取提供者信息;

而多个提供者的筛选——>消费者会利用负载均衡算法选择一个微服务进行远程调用;

而其他服务的请求状态(是否宕机等等),每30s会对注册中心反馈一次心跳;

微服务01-基本介绍+注册中心EureKa,微服务,微服务,eureka,架构

EureKa实战:搭建EureKaServer
微服务01-基本介绍+注册中心EureKa,微服务,微服务,eureka,架构

1.先专门建一个 EureKa服务端,然后引入EureKa-server依赖
微服务01-基本介绍+注册中心EureKa,微服务,微服务,eureka,架构

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

2.对EureKa启动类中+@EnableEureKaServer注解,声明是一个EureKa服务启动

@EnableEurekaServer
@SpringBootApplication
public class EurekaApplication {
    public static void main(String[] args) {
        SpringApplication.run(EurekaApplication.class, args);
    }
}

3.在yaml中配置EureKa服务端地址->(另外要把自己也注册到EureKa客户端中,因为如果有多个EureKa,也就是集群,会出现相互调用的情况)

server:
  port: 10086 # 服务端口
spring:
  application:
    name: eurekaserver # eureka的服务名称
eureka:
  client:
    service-url: # eureka的地址信息,因为eureka也要注册自己,比如eureka集群之间需要通信
      defaultZone: http://127.0.0.1:10086/eureka

服务名字+信息地址 (服务注册地址)
微服务01-基本介绍+注册中心EureKa,微服务,微服务,eureka,架构

服务注册:(对一个服务设置多个端口进行处理)

好处

有利于分担请求压力

对服务进行引入EureKa的依赖+yaml中配置EureKa的地址——>代表服务注册

微服务01-基本介绍+注册中心EureKa,微服务,微服务,eureka,架构
.对服务引入EureKa-client依赖,并且在yaml中设置EureKa地址以及服务名称

 <!--eureka客户端-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
server:
  port: 8080
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/cloud_order?useSSL=false
    username: Wuyuhang
    password: 2002514wyh11
    driver-class-name: com.mysql.jdbc.Driver
 
  application:
    name: orderservice # user的服务名称
eureka:
  client:
    service-url: # user的地址信息
      defaultZone: http://127.0.0.1:10086/eureka

我们还可以对一个服务多端口的方式注册到EureKa中:

微服务01-基本介绍+注册中心EureKa,微服务,微服务,eureka,架构
在其中配置端口信息即可:Dserver:8082

微服务01-基本介绍+注册中心EureKa,微服务,微服务,eureka,架构

效果:

微服务01-基本介绍+注册中心EureKa,微服务,微服务,eureka,架构

负载均衡

在orderservice中完成服务拉取:基于服务名称来获取服务列表,然后根据服务列表进行负载均衡 ——>默认是轮流机制;

微服务01-基本介绍+注册中心EureKa,微服务,微服务,eureka,架构

总结

微服务01-基本介绍+注册中心EureKa,微服务,微服务,eureka,架构文章来源地址https://www.toymoban.com/news/detail-694769.html

到了这里,关于微服务01-基本介绍+注册中心EureKa的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微服务springcloud 02 创建项目中的三个service子系统,springcloud中注册中心Eureka介绍和把三个系统注册到Eureka中

    item service项目 01.使用springboot创建项目 02.选择依懒项 在这里插入代码片 spring web 03.添加sp01-commons依赖 在pom.xml文件中 04.修改application.yml ItemServiceImpl 05.创建接口实现类和controller类 ItemController 注:Spring MVC接受参数的几个注解,controller类中使用的参数注解 注解@GetMapping()=@

    2024年02月09日
    浏览(35)
  • 微服务Eureka注册中心

    目录 一、Eureka的结构和作用 二、搭建eureka-server 三、服务注册 四、服务发现 假如我们的服务提供者user-service部署了多个实例,如图: 存在的问题: order-service在发起远程调用的时候,该如何得知user-service实例的ip地址和端口? 有多个user-service实例地址,order-service调用时该如

    2024年02月13日
    浏览(37)
  • 【微服务】Eureka注册中心

    我们在前文的案例中,我们采取如下的方式发送http请求: 我们将user-service的ip地址和端口硬编码在了代码当中,这样的写法是有一定问题的。我们在公司开发中,可能会面临多个环境,开发环境、测试环境等等,每一次环境的变更可能服务的地址也会发生变化,使用硬编码显

    2024年01月15日
    浏览(25)
  • 服务注册中心 Eureka

    服务注册中心 Eureka Spring Cloud Eureka 是 Netflix 公司开发的注册发现组件,本身是一个基于 REST 的服务。提供 注册与发现 ,同时还提供了负载均衡、故障转移等能力。 Eureka 有 3 个角色 服务中心(Eureka Server):服务器端。它提供服务的注册和发现功能,即实现服务的治理。 服

    2024年02月11日
    浏览(38)
  • 微服务—Eureka注册中心

           eureka相当于是一个公司的管理人事HR,各部门之间如果有合作时,由HR进行人员的分配以及调度,具体选哪个人,全凭HR的心情,如果你这个部门存在没有意义,直接把你这个部门撤销,全体人员裁掉,所以不想被裁员,只能每天拼命的工作,做一个累死累活的打工人

    2024年02月12日
    浏览(25)
  • 1.2 eureka注册中心,完成服务注册

    目录 环境搭建 搭建eureka服务 导入eureka服务端依赖 编写启动类,添加@EnableEurekaServer注解 编写eureka配置文件 启动服务,访问eureka Euraka服务注册 创建了两个子模块 在模块里导入rureka客户端依赖  编写eureka配置文件 添加Services 创建父工程,父工程中导入spring cloud的依赖,用来统

    2024年02月14日
    浏览(29)
  • 微服务学习 Eureka注册中心

    服务调用时候出现问题,当服务者很多时候,比如不同的端口。消费者如何找到服务者的地址?又如何判断服务者是否健康。 Eureka基本原理: 总结:如果有多个服务提供者,消费者该如何选择? 搭建Eureka注册中心: 1.引入依赖 2.编写启动类,添加@EnableEurekaServer注解 这里在启动

    2024年04月16日
    浏览(23)
  • SpringCloud:Eureka服务注册中心

    Eureka是一个服务治理组件,它主要包括服务注册和服务发现,主要用来搭建服务注册中心。 在搭建微服务项目时遇到的三个问题: 服务消费者该如何获取服务提供者的地址信息? 如果有多个服务提供者,消费者该如何选择? 消费者如何得知服务提供者的健康状态? Eureka的作

    2024年01月20日
    浏览(24)
  • 微服务注册中心之Eureka

    微服务注册中心之Eureka Spring Boot 2.1.7.RELEASE spring-cloud-starter-netflix-eureka-server Finchley.SR2 spring-boot-starter-security 2.1.7.RELEASE pom.xml 文件 单节点搭建非常简单,引入上面的依赖,然后编写配置文件 application.yml 启动类添加注解 这样单节点就构建完成了。 但是单节点一般来说仅仅是个

    2024年02月02日
    浏览(26)
  • 【微服务开篇-RestTemplate服务调用、Eureka注册中心、Nacos注册中心】

     本篇用到的资料: https://gitee.com/Allengan/cloud-demo.git https://gitee.com/Allengan/cloud-demo.git 目录 1.认识微服务 1.1.单体架构 1.2.分布式架构 1.3.微服务 1.4.SpringCloud 1.5.总结 2.服务拆分和远程调用 2.1.服务拆分原则 2.2.服务拆分示例 2.2.1.导入Sql语句 2.2.2.导入demo工程 2.3.实现远程调用案例

    2024年02月08日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包