欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > windows >内容正文

windows

boot分布式计算 spring_springboot05-分布式系统理念

发布时间:2025/3/20 windows 37 豆豆
生活随笔 收集整理的这篇文章主要介绍了 boot分布式计算 spring_springboot05-分布式系统理念 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

分布式系统理念

RPC

RPC(Remote Procedure Call)远程过程调用;是一种进程间通信方式,也是一种思想,而不是规范。允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数。

RPC的两个核心:通讯、序列化

序列化:将数据进行转换

dubbo

dubbo就是高可用,高性能的RPC框架,采用全是 Spring 配置方式,

提供了三大核心能力:面向接口的远程方法调用、智能容错和负载均衡,以及服务自动注册和发现。

服务注册实战

前提:zookeeper服务已开启

1.提供者提供服务

​ 1)导入依赖

com.alibaba.boot

dubbo-spring-boot-starter

0.1.0

com.github.sgroschupf

zkclient

0.1

​ 2)配置注册中心的地址,以及服务发现名,和要扫描的包

dubbo.application.name=privide-ticket

dubbo.registry.address=zookeeper://192.168.1.10:2181

dubbo.scan.base-packages=com.mjh.privideticket.service

​ 3)在想要被注册的服务上面增加一个注解@Service(Dubbo的)

service层和Impl层

package com.mjh.privideticket.service;

public interface TicketService {

public String getTicket();

}

package com.mjh.privideticket.service;

import org.springframework.stereotype.Component;

import org.springframework.stereotype.Service;

@Component

@Service//将服务发布出去

public class TicketServiceImpl implements TicketService {

@Override

public String getTicket() {

return "《厉害了,我的国》";

}

}

package com.mjh.privideticket;

import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;

import com.alibaba.dubbo.config.spring.context.annotation.EnableDubboConfig;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

/**

* 将服务提供者注册到注册中心

* 1.引入dubbo和zkclient相关服务依赖

* 2.配置dubbo的扫描包和注册中心地址

* 3.使用@Service发布服务

*/

@EnableDubboConfig

@SpringBootApplication

public class PrivideTicketApplication {

public static void main(String[] args) {

SpringApplication.run(PrivideTicketApplication.class, args);

}

}

2.消费者如何消费

​ 1)导入依赖

com.alibaba.boot

dubbo-spring-boot-starter

0.1.0

com.github.sgroschupf

zkclient

0.1

​ 2)配置注册中心的地址,配置自己的服务名

dubbo.application.name=privide-user

dubbo.registry.address=zookeeper://192.168.1.10:2181

​ 3)从远程注入服务 @Reference

(要使用远程的服务,就要跟远程的服务接口一致)

package com.mjh.privideticket.service;

public interface TicketService {

public String getTicket();

}

自己的service层

package com.mjh.privideuser.service;

import com.alibaba.dubbo.config.annotation.Reference;

import com.mjh.privideticket.service.TicketService;

import org.springframework.stereotype.Service;

@Service

public class UserService {

@Reference//远程引用

TicketService ticketService;

public void hello(){

String ticket = ticketService.getTicket();

System.out.println("买到票了:"+ticket);

}

}

package com.mjh.privideuser;

import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;

import com.alibaba.dubbo.config.spring.context.annotation.EnableDubboConfig;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

/**

* 引入依赖

* 配置dubbo的注册中心地址

* 引用服务

*/

@EnableDubboConfig

@SpringBootApplication

public class PrivideUserApplication {

public static void main(String[] args) {

SpringApplication.run(PrivideUserApplication.class, args);

}

}

总结

以上是生活随笔为你收集整理的boot分布式计算 spring_springboot05-分布式系统理念的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。