title: “运行模式” lang: cn ref: run-mode permalink: /cn/docs/users/run-mode/ excerpt: “运行模式” last_modified_at: 2017-06-06T10:01:43-04:00 redirect_from:
{% include toc %} 微服务框架当前提供了两种部署运行模式:standalone模式和web容器模式。推荐使用standalone模式拉起服务进程。
一个Standalone的容器,以简单的Main加载Spring启动,因为服务通常不需要Tomcat/JBoss等Web容器的特性,没必要用Web容器去加载服务。微框架提供了standalone部署运行模式,服务容器只是一个简单的Main方法,并加载一个简单的Spring容器,用于暴露服务。
步骤1 编写Main函数,初始化日志和加载服务配置,内容如下:
import org.apache.servicecomb.foundation.common.utils.BeanUtils; import org.apache.servicecomb.foundation.common.utils.Log4jUtils; public class MainServer { public static void main(String[] args) throws Exception { Log4jUtils.init(); #日志初始化 BeanUtils.init(); # Spring bean初始化 // other codes omitted } }
步骤2 运行MainServer即可启动该微服务进程,向外暴露服务。
注意:如果使用的是rest网络通道,需要将pom中的transport改为使用cse-transport-rest-vertx包。
如果需要将该微服务加载到web容器中启动运行时,需要新建一个servlet工程包装一下,该servlet工程,根据需要,可以不写或写少量的引导代码即可。
<web-app> <context-param> <param-name>contextConfigLocation</param-name> <param-value> classpath*:META-INF/spring/*.bean.xml classpath*:app-config.xml </param-value> </context-param> <listener> <listener-class>org.apache.servicecomb.transport.rest.servlet.RestServletContextListener</listener-class> </listener> <servlet> <servlet-name>RestServlet</servlet-name> <servlet-class>org.apache.servicecomb.transport.rest.servlet.RestServlet</servlet-class> <load-on-startup>1</load-on-startup> <async-supported>true</async-supported> </servlet> <servlet-mapping> <servlet-name>RestServlet</servlet-name> <url-pattern>/rest/*</url-pattern> </servlet-mapping> </web-app>
<dependencies> <dependency> <groupId>org.apache.servicecomb</groupId> <artifactId>transport-rest-servlet</artifactId> </dependency> </dependencies> <build> <finalName>test</finalName> </build>
注意事项: