📅  最后修改于: 2023-12-03 15:27:19.592000             🧑  作者: Mango
离子启动服务器(Ion Server)是由阿里云和 Apache Dubbo 社区合作开源的高性能 RPC 服务框架。它基于 RPC 协议提供服务治理、负载均衡、容错、流量控制、安全防范等一系列服务治理能力。
高性能:采用多层 UDP 传输协议,相较于基于 TCP 传输的传统 RPC 框架,可以大幅提升 QPS 和响应速度。
易用性:提供零侵入式的服务注册和发现能力,统一管理服务,使服务治理变得更加方便。
易扩展性:支持动态扩展服务提供者,提高系统可用性和可扩展性。
生态完备:与阿里云多项服务和开源项目深度融合,支持 Dubbo 生态和 Spring 生态。
离子启动服务器的使用分为两个步骤:服务提供者和服务消费者。
服务提供者需要经过注册和发布展示两个过程。其中,注册将该服务提供者关联到注册中心,发布生产者服务的协议和端口。
# 注册服务提供者
## 1. 在 pom.xml 中添加依赖:
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-dependencies-zookeeper</artifactId>
<version>2.7.3</version>
<type>pom</type>
<scope>provided</scope>
</dependency>
## 2. 使用 @Service 注解进行服务提供者注册:
@Service
public class UserServiceImpl implements UserService {
// ...
}
# 发布服务提供者
## 1. 在 application.properties 中配置:
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.application.name=provider
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880
## 2. 使用 Dubbo 提供的 API 进行服务发布:
@Service
public class UserServiceImpl implements UserService {
@Override
public User getUser() {
return new User(1L, "张三");
}
}
@Service
public class ProviderApplication {
public static void main(String[] args) {
SpringApplication.run(ProviderApplication.class, args);
}
}
服务消费者需要经过对消费者接口类使用 Reference 注解进行远程调用。其中,Reference 注解使用 URL 指针指向注册中心内的生产者接口。
## 注册服务消费者
## 1. 在 pom.xml 中添加依赖:
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-maven-plugin</artifactId>
<version>2.7.3</version>
</dependency>
## 2. 在 application.properties 中配置:
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.application.name=consumer
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880
## 3. 在客户端直接使用 Reference 注解调用服务:
@RestController
public class UserController {
@Reference
private UserService userService;
@GetMapping("/user/{id}")
public User findUserById(@PathVariable Long id) {
return userService.getUserById(id);
}
}