Java微服务学习Day1

文章目录

认识微服务






注册中心(Service Registry):

注册中心是微服务架构中的一个核心组件,用于管理和维护所有微服务实例的注册信息。

  • 微服务启动时会将自己的网络位置(例如 IP 地址、端口号)以及其他元数据(如服务名称、版本号等)注册到注册中心。
  • 当其他微服务需要调用某个服务时,它们会向注册中心查询该服务的实例信息,然后直接调用其中一个实例。
  • 注册中心通常实现了服务发现机制,使得微服务能够动态地发现和调用其他微服务,从而实现服务之间的通信。

配置中心(Configuration Center):

配置中心用于集中管理微服务应用的配置信息,包括各种环境下的配置项、属性值、特性开关等。

  • 微服务在启动时可以从配置中心动态获取配置信息,而不需要硬编码在代码中,这样可以实现配置的集中管理和动态更新。
  • 配置中心通常提供了版本管理、变更通知、安全性等功能,以便对配置进行有效管理和控制。
  • 配置中心可以帮助微服务应用实现动态的配置更新,从而减少了重新部署的需要,提高了系统的灵活性和可维护性。



服务拆分及远程调用

服务拆分



服务远程调用


java启动类

java 复制代码
@MapperScan("cn.itcast.order.mapper")
@SpringBootApplication
public class OrderApplication {

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

    /**
     * 创建RestTemplate并注入Spring容器
     */
    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

Service实现类

java 复制代码
@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请求,查询用户
        //2.1url路径
        String url = "http://localhost:8081/user/" + order.getUserId();
        //2.2发送HTTP请求实现远程调用
        User user = restTemplate.getForObject(url, User.class);
        //3.封装User到Order
        order.setUser(user);
        // 4.返回
        return order;
    }
}

提供者与消费者


Eureka注册中心

介绍



构建EurekaServer


注册user-service



order-service完成服务拉取


Ribbon负载均衡

介绍

原理

策略



第二种方法根据yml的名称只针对某一个微服务。

饥饿加载

Nacos注册中心

介绍

配置


启动

分级存储



负载均衡




环境隔离






nacos注册中心原理


相关推荐
lingggggaaaa22 分钟前
免杀对抗——C2远控篇&PowerShell&有无文件落地&C#参数调用&绕AMSI&ETW&去混淆特征
c语言·开发语言·笔记·学习·安全·microsoft·c#
阿拉斯攀登43 分钟前
Spring Cloud Gateway 的内置路由过滤器使用
spring cloud·微服务·gateway
无心水1 小时前
【分布式利器:限流】3、微服务分布式限流:Sentinel集群限流+Resilience4j使用教程
分布式·微服务·架构·sentinel·分布式限流·resilience4j·分布式利器
2501_941145852 小时前
微服务链路追踪与分布式调用可观测性在高并发优化实践经验分享
eureka
一起学开源2 小时前
分布式基石:CAP定理与ACID的取舍艺术
分布式·微服务·架构·流程图·软件工程
wdfk_prog3 小时前
[Linux]学习笔记系列 -- [kernel]workqueue
linux·笔记·学习
wdfk_prog3 小时前
[Linux]学习笔记系列 -- [kernel]usermode_helper
linux·笔记·学习
冬夜戏雪3 小时前
【学习日记】【刷题回溯、贪心、动规】
学习
一只爱做笔记的码农3 小时前
【BootstrapBlazor】移植BootstrapBlazor VS工程到Vscode工程,报error blazor106的问题
笔记·学习·c#
xixixi777774 小时前
“C2隐藏”——命令与控制服务器的隐藏技术
网络·学习·安全·代理·隐藏·合法服务·c2隐藏