启动本地服务中心
通过设置环境信息方便本地调试
服务中心是微服务框架中的重要组件,用于服务元数据以及服务实例元数据的管理和处理注册、发现。服务中心与微服务提供/消费者的逻辑关系下图所示:
步骤 1 启动本地服务中心
以可执行文件的方式运行
1. 下载服务注册中心可执行文件压缩包并解压缩 2. 运行服务注册中心 bash bash apache-servicecomb-incubating-service-center-1.0.0-m1-linux-amd64/start-service-center.sh
注意:Window和Linux版本均只支持64位系统。
- 步骤 2 启动本地服务中心后,在服务提供/消费者的microservice.yaml文件中配置ServerCenter的地址和端口,示例代码:
yaml servicecomb: service: registry: address: # 服务中心地址及端口 http://127.0.0.1:30100
- 步骤 3 开发服务提供/消费者,启动微服务进行本地测试。
-—-结束
在本进程内存中模拟一个只能本进程使用的服务中心,一般是在测试场景中使用。 * ### 进程内调用 只需要在启动ServiceComb引擎之前声明一下即可启用:
步骤 1 新建本地服务中心定义文件,假设名字为registry.yaml,内容示例如下:
* 步骤 2 consumer本地部署契约文件
参考: * 步骤 3 在consumer main函数,启动ServiceComb引擎之前声明:
setProperty第二个参数填写registry.yaml在磁盘中的系统绝对路径,注意区分在不同系统下使用对应的路径分隔符。
java chassis在设计时,严格依赖于契约,所以正常来说契约变了就必须要修改微服务的版本。但是如果当前还是开发模式,那么修改接口是很正常的情况,每次都需要改版本的话,对用户来说非常的不友好,所以增加了一个环境设置。如果微服务配置成开发环境,接口修改了(schema发生了变化),重启就可以注册到服务中心,而不用修改版本号。但是如果有consumer已经调用了重启之前的服务,那么consumer端需要重启才能获取最新的schema。比如A -> B,B接口进行了修改并且重启,那么A这个时候还是使用B老的schema,调用可能会出错,以免出现未知异常,A也需要重启。有三种方式可以设置,推荐使用方法1 * 方法1:通过JVM启动参数-Dservice_description.environment=development进行设置
- 方法2:通过microservice.yaml配置文件来指定
yaml service_description: environment: development