三天速成微服务

微服务技术栈

总结

微服务技术对比

技术栈

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发出的请求,对地址做了修改

相关推荐
风虎云龙科研服务器40 分钟前
DeepSeek服务器繁忙之谜:原因与解决方案
运维·服务器·人工智能·科技·深度学习
计算机毕设定制辅导-无忧学长42 分钟前
Git 钩子的应用与自动化流程
运维·git·自动化
B站计算机毕业设计超人1 小时前
计算机毕业设计制造业MES生产管理平台 MES 生产制造源码+文档+运行视频+讲解视频)
java·spring boot·mysql·eclipse·tomcat·maven·web
亦世凡华、2 小时前
从零开始:使用Jenkins实现高效自动化部署
运维·自动化·jenkins·安装教程·基本使用
forestqq2 小时前
openEuler22.03LTS系统升级docker至26.1.4以支持启用ip6tables功能
linux·运维·docker
技术咖啡馆C2 小时前
二、通义灵码插件保姆级教学-IDEA(使用篇)
java·intellij-idea·通义灵码·ai助手·idea-plugin
星星点点洲2 小时前
【SpringBoot实现全局API限频】 最佳实践
java·spring boot·后端
linwq83 小时前
Java网络编程学习(一)
java·网络·学习
lllsure3 小时前
【快速入门】SpringMVC
java·后端·spring·mvc
xing.yu.CTF3 小时前
2022年中职网络建设与运维赛题-windows服务器解析
运维·服务器·网络·windows·网络建设与运维