三天速成微服务

微服务技术栈

总结

微服务技术对比

技术栈

SpringCloud

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

Springboot和SpringCould兼容性

代码目录结构如下

用于远程调用Bean

代码

java 复制代码
package cn.itcast.order.config;

//import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration
public class RestTemplateConfig {

    @Bean
//    @LoadBalanced // 添加负载均衡注解
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

方法执行过程过程

OrderController
OrderService
OrderMapper

UserMapper

Order
User
远程调用成功截图

访问

总结

微服务调用方式基于RestTemplate发起的http请求实现远程调用http请求做远程调用是与语言无关的调用,只要知道对方编辑端口、接口路径、请求参数即可。

Eureka消费者与提供者

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

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

提供者和消费者是相对的,一个服务可能既是提供者又是消费者。

pom.xml引入依赖服务端依赖

java 复制代码
    <dependencies>
        <!--eureka服务端-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
    </dependencies>

注册userservice

use pom.xml引入服务管理依赖

java 复制代码
      <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

成功服务截图

复制多个实例

操作如下

输入 -Dserver.port=8082

点击确定

成功注册两个实例

Eureka服务注册总结

服务注册是微服务架构中的关键环节,保证各服务之间的发现和调用。

1引入依赖

在pom文件中eureka-client依赖:

复制代码
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
2配置文件

在application.yml文件,添加服务名称、eureka地址:

复制代码
spring:
  application:
    name: userservice
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:1086/eureka

服务注册是微服务架构中的关键环节,保证各服务之间的发现和调用。以下是服务注册的关键概念和步骤的总结:

Eureka服务发现总结

Ribbon-负载均衡原理

SpringCloudRibbon的底层采用了一个拦截器,拦截了RestTemplate发出的请求,对地址做了修改

相关推荐
sanggou11 小时前
Spring Boot 中基于 WebClient 的 SSE 流式接口实战
java·人工智能
未若君雅裁11 小时前
SpringBoot2.x与SpringBoot3.x自动配置注册的差异
java·spring boot
wishchin11 小时前
Jetson Orin Trt: No CMAKE_CUDA_COMPILER could be found
linux·运维·深度学习
赵八斤11 小时前
java 项目中配置多个数据源
java·开发语言·数据库
小冷coding11 小时前
【Java】以 Java + Redis + MySQL 为技术栈,模拟电商商品详情的读写场景,Cache Aside+ 延迟双删 方案
java·redis·mysql
ArrebolJiuZhou11 小时前
03 rtp,rtcp,sdp的包结构
linux·运维·服务器·网络·arm开发
4032407311 小时前
Ubuntu/Jetson 通用:NVMe 硬盘分区、挂载及开机自动挂载完整教程
linux·运维·ubuntu
SuperherRo11 小时前
JAVA攻防-Ys项目Gadget链分析&CC2&CC4&CC5&CC7&入口点改动&触发点改动
java·cc2·cc4·cc5·cc7·gadget链
2501_9445264211 小时前
Flutter for OpenHarmony 万能游戏库App实战 - 关于页面实现
android·java·开发语言·javascript·python·flutter·游戏
毕设源码-赖学姐11 小时前
【开题答辩全过程】以 高校实验室教学管理系统的设计和实现为例,包含答辩的问题和答案
java