Apache Geode 运行服务器进程 博客分类: Apache Geode框架
一个Geode服务器是一个进程,它作为长期运行的,客户端/服务器系统可配置的成员。Geode服务器主要用作保存长期存活的数据区域和运行标准的Geode进程例如在客户端/服务器配置中的服务器。你可以用以下方法来停止服务器:
- gfsh工具允许你用命令行方式管理你的Geode服务器进程。
- 你也可以通过
com.gemstone.gemfire.distributed.ServerLauncher
API来启动,停止和管理Geode服务器。ServerLauncher
API 仅可以用作用gfsh启动的服务器或是
ServerLauncher类自己启动的。查看《
JavaDocs》来获得额外的
ServerLauncher
API使用说明。
默认的服务器配置和日志文件
gfsh实用工具使用一个工作目录来保存配置文件和日志文件。如下这些是默认和配置选项:
- 当你用gfsh启动一个独立的服务器,gfsh会自动的加载需要的jar文件
$GEMFIRE/lib/server-dependencies.jar
和$JAVA_HOME/lib/tools.jar到jvm进程的类路径。如果你是使用
ServerLauncher API来启动一个独立的服务器,你必须在你的运行进程命令内指定$GEMFIRE/lib/server-dependencies.jar。查看《Geode进程类路径设置》来获取更多的类路径设置信息。
- 服务器和其它Geode进程的配置一样,带有
gemfire.properties和共享的集群配置文件。它是不可编程的,除了通过应用程序插件。
通常地,你提供gemfire.properties
文件和gfsecurity.properties
文件(如果您使用的是单独的,受限制的访问安全设置文件)。你也可以在缓存服务器的工作目录指定一个cache.xml文件。
-
默认情况下,假设定位器正在运行集群配置服务,那么一个使用gfsh启动的新服务器会从集群配置服务接收它的初始缓存配置。如果你在启动服务器的时候指定了一个组,该服务器还接收应用于组的配置。共享的配置包括了
cache.xml
文件,gemfire.properties
文件,和部署的jar文件。你可以在用gfsh启动服务器的时候指定--use-cluster-configuration=false来
禁用集群配置服务。查看《群集配置服务概述》 -
如果你使用了spring框架,你可以在使用gfsh启动服务器时使用
--spring-xml-location
命令行选项指定一个Spring ApplicationContext XML文件。这个选项允许你用你的spring应用配置重启你的geode服务器进程。查看《spring文档》来获得在这个文件上的更多信息。 -
对于日志输出,日志文件输出为默认为缓存服务器工作目录下的
server_name.log。如果你使用相同的服务器名重启一个服务器,已有的
server_name.log文件会自动的为你重命名(例如,server1-01-01.log
或server1-02-01.log
)。你可以在启动服务器时通过在--log-level参数中
指定一个级别来实现在这个文件中修改日志级别。 -
默认情况下,服务器会在gfsh执行目录下的一个子目录(在服务器之后命名)中启动。这个子目录被认为是当前的工作目录。你也可以在用gfsh启动服务器时指定一个不同的工作目录。
-
默认情况下,一个因为网络断开或是成员没有响应而被关闭和断开连接的服务器会自己重启并且自动尝试重新连接到分布式系统。查看《使用自动重连接处理被动缓存掉线》获得更多详情。
-
你可以在启动服务器时使用
--J=-Dproperty.name=value将
JVM参数传递到服务器的JVM参数。这些参数可以作为java属性或是Geode配置属性例如gemfire.jmx-manager。例如:
gfsh>start server --name=server1 --J=-Dgemfire.jmx-manager=true \ --J=-Dgemfire.jmx-manager-start=true --J=-Dgemfire.http-port=8080
Pivotal推荐你在启动服务器时不要用 -XX:+UseCompressedStrings
和 -XX:+UseStringCache JVM配置参数。 这些JVM选项可能会导致数据损坏和兼容性问题。
启动Geode服务器的gfsh语法是:
start server --name=value [--assign-buckets(=value)] [--bind-address=value] [--cache-xml-file=value] [--classpath=value] [--disable-default-server(=value)] [--disable-exit-when-out-of-memory(=value)] [--enable-time-statistics(=value)] [--force(=value)] [--include-system-classpath(=value)] [--properties-file=value] [--security-properties-file=value] [--group=value] [--locators=value] [--locator-wait-time=value] [--log-level=value] [--mcast-address=value] [--mcast-port=value] [--memcached-port=value] [--memcached-protocol=value] [--rebalance(=value)] [--server-bind-address=value] [--server-port=value] [--spring-xml-location=value] [--statistic-archive-file=value] [--dir=value] [--initial-heap=value] [--max-heap=value] [--use-cluster-configuration(=value)] [--J=value(,value)*] [--critical-heap-percentage=value] [--critical-off-heap-percentage=value] [--eviction-heap-percentage=value] [--eviction-off-heap-percentage=value] [--hostname-for-clients=value] [--max-connections=value] [--message-time-to-live=value] [--max-message-count=value] [--max-threads=value] [--socket-buffer-size=value] [--lock-memory=value] [--off-heap-memory-size=value]
注意: 当在服务器启动期间指定了--max-heap
和 --initial-heap,额外的GC参数由
Geode的资源管理器的内部指定。如果你不想要
资源管理器设置的
额外的默认GC属性,那就使用
e -Xms
& -Xmx
JVM选项。查看《源管理器堆使用控制》来获得更多信息。
如下的gfsh start server启动序列为每个缓存配置指定一个cache.xml文件,并且使用不同的传入的客户端连接端口:
gfsh>start server --name=server1 --mcast-port=10338 \ --cache-xml-file=../ServerConfigs/cache.xml --server-port=40404 gfsh>start server --name=server2 --mcast-port=10338 \ --cache-xml-file=../ServerConfigs/cache.xml --server-port=40405
这是gemfire.properties的一部份,它
设置了一个cache.xml位置
并且设置多播端口:
mcast-port=10338 cache-xml-file=D:\gfeserver\cacheCS.xml
使用gemfire.properties
文件启动服务器,键入:
gfsh>start server --name=server1 \ --properties-file=D:\gfeserver\gemfire.properties
启动一个嵌入了JMX管理器的服务器,你可以输入如下命令:
gfsh>start server --name=server2 \ --J=-Dgemfire.jmx-manager=true --J=-Dgemfire.jmx-manager-start=true
启动一个服务器并提供JVM配置设置,你可以发出如下命令:
gfsh>start server --name=server3 \ --J=-Xms80m,-Xmx80m --J=-XX:+UseConcMarkSweepGC,-XX:CMSInitiatingOccupancyFraction=65
编程方式启动服务器
在你的代码中使用com.gemstone.gemfire.distributed.ServerLauncher
API来启动缓存服务器进程。使用ServerLauncher.Builder类来构建
ServerLauncher实例,然后用
start()
方法来启动服务器服务。ServerLauncher类中的其它方法提交了服务器状态信息并可以允许你停止服务器。
import com.gemstone.gemfire.distributed.ServerLauncher; public class MyEmbeddedServer { public static void main(String[] args){ ServerLauncher serverLauncher = new ServerLauncher.Builder() .setMemberName("server1") .setServerPort(40405) .set("jmx-manager", "true") .set("jmx-manager-start", "true") .build(); serverLauncher.start(); System.out.println("Cache server successfully started"); } }
检查服务器状态
如果你用gfsh连接到分布式系统,你可以通过提供服务器名称检查一个正在运行的缓存服务器的状态。例如:
gfsh>status server --name=server1
如果你没有连接到分布式系统,你可以通过提供进程ID或是服务器的当前工作目录来检查本地缓存的状态。例如:
gfsh>status server --pid=2484
或
% gfsh status server --dir=<server_working_directory>
<server_working_directory> 对应的是哪里,哪里就是服务器运行的工作目录。如果成功,命令会返回如下的信息(带着启动时提供的jvm参数):
% gfsh status server --dir=server4 Server in /home/stymon/server4 on ubuntu.local[40404] as server4 is currently online. Process ID: 3324 Uptime: 1 minute 5 seconds GemFire Version: 8.0.0 Java Version: 1.7.0_65 Log File: /home/stymon/server4/server4.log JVM Arguments: ...
停止服务器
如果你用gfsh连接到了分布式系统,你可以通过提供服务器名来停止一个正在运行的服务器。例如:
gfsh>stop server --name=server1
如果你没有连接到一个分布式系统,你可以通过进程ID或是服务器当前工作目录来停止一个本地的服务器。例如:
gfsh>stop server --pid=2484
或
gfsh>stop server --dir=<server_working_directory>
<server_working_directory> 对应的是哪里,哪里就是服务器运行的工作目录。
你也可以使用gfsh
shutdown
命令来以有序的方式关闭所有的缓存服务器。如果你是使用持久化区域,这会很有用的。查看《启动和关闭你的系统》获取更多详情。
上一篇: Apache Geode 管理系统输出文件 博客分类: 框架Apache Geode
下一篇: Apache Geode 加载已有的配置文件到集群配置中 博客分类: 框架Apache Geode Apache Geode
推荐阅读
-
Apache Geode 更改文件规范 博客分类: 框架Apache Geode Apache Geode
-
Apache Geode 以jar文件部署配置文件 博客分类: 框架Apache Geode Apache Geode
-
Apache Geode 运行定位器进程 博客分类: 框架Apache Geode
-
Apache Geode 管理系统输出文件 博客分类: 框架Apache Geode
-
Apache Geode 运行服务器进程 博客分类: Apache Geode框架
-
Apache Geode 加载已有的配置文件到集群配置中 博客分类: 框架Apache Geode Apache Geode
-
Apache Geode 防火墙需要考虑的事 博客分类: 框架Apache Geode
-
Apache Geode 默认文件规范和搜索位置 博客分类: 框架Apache Geode Apache Geode
-
Apache Geode 基本的配置和编程 博客分类: 框架Apache Geode
-
Apache Geode 防火墙和端口 博客分类: 框架Apache Geode