Solon集成(02)- 轻松吃下小馒头 Dubbo

Solon集成系列文章:
Solon集成(01)- Mybatis 与 Solon 相亲相爱
Solon集成(02)- 轻松吃下小馒头 Dubbo

Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成。现在,也可以和Solon框架无缝集成。。。今天主要讲讲Springboot mini - Solon如何集成官方的Dubbo。

一、运行工具与环境

  • 运行环境:JDK 8,Maven 4.0
  • 技术栈:Solon 1.2+、Dubbo 2.7.5+、Nacos 1.3+
  • 工具:IntelliJ IDEA、谷歌浏览器

二、Solon快速集成Dubbo关键的依赖

<dependency>
    <groupId>org.noear</groupId>
    <artifactId>dubbo-solon-plugin</artifactId>
    <version>1.2.10</version>
</dependency>

三、如何使用

  • 1.使用Dubbo要知道服务提供者和消费者概念,而且调用的服务接口最好是共同的Api,如下图是我写的入门项目。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nVE2W86t-1608713573093)(/img/6199f6ddec0e44fa8099d5b42ce8aa88.png)]

  • 2.配置application.yml
server.port: 8011

dubbo:
  application:
    name: hello
    owner: noear
  registry:
    address: nacos://192.168.8.118:8848

这边用到的注册中心是阿里的Nacos,当然你也可以用其他注册中心,你可以查看Dubbo文档,里面有其他注册中心使用方法。其他一些配置可以去官网查看,这边就不在多说。

  • 3.服务提供者和消费者

共同的接口:

public interface HelloService {
    
    
    String sayHello(String name);
}

这就是服务提供者和消费者共同调用的接口了。简单了点儿。

服务提供者:

@Service(group = "hello")
public class HelloServiceImpl implements HelloService {
    
    
    @Override
    public String sayHello(String name) {
    
    
        return "hello, " + name;
    }
}

@EnableDubbo
public class DubboProviderApp {
    
    
    //服务端启动入口
    public static void main(String[] args) {
    
    
        Solon.start(DubboProviderApp.class, args);
    }
}

简单来说就是将上面接口的实现方法(称之为服务)注册到注册中心,并暴露端口供其他消费者消费。@Service里面的一些信息就是服务具体的注册地址。

服务消费者:

@EnableDubbo
@Controller
public class DubboConsumeApp {
    
    
    //同时加个应用启动入口;方便测试
    public static void main(String[] args) {
    
    
        Solon.start(DubboConsumeApp.class, args, app -> app.enableHttp(false));

        //通过手动模式直接拉取bean
        DubboConsumeApp tmp = Aop.get(DubboConsumeApp.class);
        System.out.println(tmp.home());
    }

    @Reference(group = "hello")
    HelloService helloService;

    @Mapping("/")
    public String home() {
    
    
        return helloService.sayHello("noear");
    }
}

如上@Reference的直接表示远程调用,里面最重要的是url,表示要调用的地址,也就是上面服务暴露的地址。

四、运行项目

首先启动服务提供者,在启动服务调用者,打开谷歌浏览器,输入 http://localhost:8080/,输出:

hello, noear

五、还示项目源码

https://gitee.com/noear/solon_demo/tree/master/demo23.solon_dubbo_sml

附:Solon项目地址

猜你喜欢

转载自blog.csdn.net/cwzb/article/details/109050226