基础项目结构(二)

前言

在《基础项目结构(一)》的基础上接入了dubbo2.7.9,及其注册中心etcdV3.

技术依赖包

jar作用说明
netty-alltcp通讯框架Netty概述
dubborpc通讯框架dubbo系列
javassistaop技术浅谈AOP
protobuf-java序列化工具序列化工具-Protobuf
grpc-api
grpc-context
grpc-core
grpc-grpclb
grpc-netty
grpc-protobuf
grpc-protobuf-lite
grpc-stub
perfmark-api
google Grpc框架http2概述
Grpc概述
jetcd-core
jetcd-common
etcd3注册中心分布式事务与一致性》《Etcd官方文档中文版
jetcd-core

dubbo registry 根据spi技术实现etcd3的注册


      <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>30.0-jre</version>
            <exclusions>
                <exclusion>
                    <groupId>com.google.j2objc</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.google.errorprone</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.checkerframework</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>io.etcd</groupId>
            <artifactId>jetcd-core</artifactId>
            <version>0.5.4</version>
            <exclusions>
                <exclusion>
                    <groupId>io.netty</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.google.android</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.google.guava</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.google.errorprone</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.google.auto.service</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
  
依赖包说明
jar名作用
nettytcp通讯
gsongoogle json工具包
protobuf-java序列化工具
guava
failureaccess
listenablefuture
jsr305
google 核心工具包
grpc-api
grpc-context
grpc-core
定义,上下文,整合
grpc-nettygrpc netty桥接
perfmark-apigoogle调用链路工具包
grpc-protobuf
grpc-protobuf-lite
grpc 桥接 protobuf
proto-google-common-protosgrpc 自己内部生成 protobuf类
grpc-stubgrpc 客户端
grpc-grpclb
protobuf-java-util
grpc 负载均衡
failsafegrpc 失败策略包
jetcd-core
jetcd-common
etcd3客户端包
dubbo-spring-boot-starter

dubbo也提供了spring starter机制

    <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.7.9</version>
            <exclusions>
                <exclusion>
                    <groupId>com.alibaba</groupId>
                    <artifactId>fastjson</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.yaml</groupId>
                    <artifactId>snakeyaml</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
依赖包说明
jar名作用
dubborpc通讯包
nettytcp通讯
javassistdubbo中aop技术
gsonjson工具包,dubbo中上传数据源依赖
spring-contextdubbo支持spring容器
spring-context-supportdubbo操作spring容器的工具包
dubbo-spring-boot-autoconfigure
dubbo-spring-boot-autoconfigure-compatible
dubbo自动注入
dubbo集成

dubbo引入了自己的autoconfigure。其中主要关注DubboAutoConfiguration。


// 1. 从配置文件中读取配置注入DubboConfigurationProperties
// 2. DubboConfigurationProperties中每个属性有NestedConfigurationProperty会在spring容器中注册
// 3. 利用AbstractConfig中addIntoConfigManager和spring PostConstruct,将参数注入dubbo全局配置中
@EnableConfigurationProperties(DubboConfigurationProperties.class)
public class DubboAutoConfiguration{

   // 通过配置文件中dubbo.scan.base-packages可配置扫描路径
   // 也可以使用DubboComponentScan注解代替(推荐) 
   public ServiceClassPostProcessor serviceClassPostProcessor(@Qualifier(BASE_PACKAGES_BEAN_NAME)
                                                                       Set<String> packagesToScan)
}

实现用例

请参考github:《基础项目结构二

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值