java 微服务框架介绍 SpringCloud Eureka注册中心 Nacos注册中心

文章介绍了微服务架构的演进,从单体架构到分布式架构,再到微服务结构。重点讲解了SpringCloud作为国内最常用的微服务框架,以及如何搭建Eureka服务发现中心。随后,提到了服务拆分、远程调用的概念,并讨论了Ribbon负载均衡的原理和自定义规则。最后,文章转向了Nacos注册中心的使用,包括服务注册、集群管理和负载均衡策略,并探讨了Nacos的环境隔离功能。
摘要由CSDN通过智能技术生成

为什么要学习微服务框架

 

 

 

 认识微服务

服务架构演变

单体架构

 分布式架构

 

 

 

微服务结构 

 

 

SrpingCloud

SpringCloud是目前国内使用最广泛的微服务框架。官网地址:https://spring.io/projects/spring-cloud。

 

 

服务拆分及远程调用

服务拆分注意事项 

 

 

 

 我们查询的时候需要到另一个数据库查询username,我们只能通过向另一个服务发送请求的方式,来获得对应的响应

 

 

提供者与消费者

服务提供者:一次业务中,被其它微服务调用的服务。(提供接口给其它微服务)

服务消费者:一次业务中,调用其它微服务的服务。(调用其它微服务提供的接口)

一个服务可以同时是服务提供者和服务消费者

Eureka注册中心

服务调用出现的问题

 

 

 

  

搭建EurekaServer

1.创建项目,引入spring-cloud-starter-netflix-eureka-server的依赖

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

2.编写启动类,添加@EnableEurekaServer注解

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

3.添加application.yml文件,编写下面的配置:

server:
  port: 10086 #服务端口
spring:
  application:
    name: eurekaserver
eureka:
  client:
    service-url:  #eureka地址信息
      defaultZone: http://127.0.0.1:10086/eureka

编译器记得改成8版本的,1.8不支持!

运行后,直接点击端口就能打开

 

 注册Eureka 服务

将user-service服务注册到EurekaServer步骤如下:

1.在user-service项目引入spring-cloud-starter-netflix-eureka-client的依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

2.在application.yml文件,编写下面的配置:

spring:
  application:
    name: userservice
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:10086/eureka/

 再启动后,实例就有两个了:

在order-service完成服务拉取

 

 

 

Ribbon 负载均衡

负载均衡原理

 

 

 

 修改负载均衡规则

 饥饿加载

 

 Nacos注册中心

 默认是8848端口

我们下载好nacos 在nacos的bin目录打开终端

输入startup.cmd -m standalone

浏览器打开:

http://192.168.219.1:8848/nacos/index.html#/login

默认账号密码都是nacos,直接登陆就可以了

服务注册到Nacos

1.在cloud-demo父工程中添加spring-cloud-alilbaba的管理依赖:

<dependency>   
    <groupId>com.alibaba.cloud</groupId>    
    <artifactId>spring-cloud-alibaba-dependencies</artifactId>
    <version>2.2.6.RELEASE</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

2.注释掉order-service和user-service中原有的eureka依赖。

3.添加nacos的客户端依赖:

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

然后启动服务就可以了

Nacos服务分级存储模型

服务跨集群调用问题

 

服务集群属性

 直接配置集群名称了,运行另一个实例的时候修改集群,这样两个实例的集群都不一样

 

根据集群负载均衡

 NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule # 负载均衡规则

优先选择本地集群,在本地集群的多个服务中,随机进行选择

根据权重负载均衡

实际部署中会出现这样的场景: 服务器设备性能有差异,部分实例所在机器性能较好,另一些较差,我们希望性能好的机器承担更多的用户请求 Nacos提供了权重配置来控制访问频率,权重越大则访问频率越高 

 

可通过权重设置,进行无感知升级

 环境隔离 - namespace

Nacos中服务存储和数据存储的最外层都是一个名为namespace的东西,用来做最外层隔离

 

 

 

 

 Nacos注册中心原理

临时实例和非临时实例 

 

 主动检测对服务器压力比较大,建议临时实例

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值