服务导出的⼊⼝为ServiceBean中的export()⽅法,当Spring启动完之后,通过接收Spring的
ContextRefreshedEvent事件来触发export()⽅法的执⾏。
⼀个ServiceBean对象就表示⼀个Dubbo服务,ServiceBean对象中的参数就表示服务的参数,⽐如
timeout,该对象的参数值来⾄@Service注解中所定义的。
服务导出主要得做两件事情:
1. 根据服务的参数信息,启动对应的⽹络服务器(netty、tomcat、jetty等),⽤来接收⽹络请求
2. 将服务的信息注册到注册中⼼
但是在做这两件事情之前得先把服务的参数确定好,因为⼀个Dubbo服务的参数,除开可以在@Service注
解中去配置,还会继承Dubbo服务所属应⽤(Application)上的配置,还可以在配置中⼼或JVM环境变量
中去配置某个服务的参数,所以⾸先要做的是确定好当前服务最终的(优先级最⾼)的参数值。
确定好服务参数之后,就根据所配置的协议启动对应的⽹络服务器。在启动⽹络服务器时,并且在⽹络服
务器接收请求的过程中,都可以从服务参数中获取信息,⽐如最⼤连接数,线程数,socket超时时间等
等。
启动完⽹络服务器之后,就将服务信息注册到注册中⼼。同时还有向注册中⼼注册监听器,监听Dubbo的
中的动态配置信息变更。