ServiceComb Pack 从 0.4.0 版本开始支持将 Alpha 服务实例注册到发现服务 Eureka 中,Omega 端的程序通过注册中心 Eureka 获取Alpha 服务器实例地址。
编译支持 Eureka 的版本
默认发行版不包含 Eureka 的支持,你需要使用 -Pspring-cloud-eureka 参数编译支持 Eureka 的版本↓↓↓
git clone https://github.com/apache/servicecomb-pack.gitcd servicecomb-pack git checkout 0.4.0 -b 0.4.0mvn clean install -DskipTests=true -Pspring-boot-2,spring-cloud-eureka
-
使用 Docker 启动 Eureka
-
更多方式请参考官方网站 https://cloud.spring.io
docker run -d -p 8761:8761 springcloud/eureka
-
访问 Eureka UI
在浏览器中访问 http://0.0.0.0:8761 ,能看到如下页面表示 Eureka 启动成功
注册中心功能通过设置
eureka.client.enabled=true 参数开启
java -jar alpha-server-0.4.0-exec.jar \ --server.port=8090 \ --alpha.server.port=8080 \ --spring.datasource.url="jdbc:postgresql://127.0.0.1:5432/saga?useSSL=false" \ --spring.datasource.username=saga-user \ --spring.datasource.password=saga-password \ --eureka.client.enabled=true \ --eureka.client.service-url.defaultZone=http://0.0.0.0:8761/eureka \ --spring.profiles.active=prd
注意: 更多eureka参数请参考Spring Cloud Netflix 2.x Spring Cloud Netflix 1.x
Alpha 启动完毕后可以看到已经注册到 Eureka
执行命令curl http://127.0.0.1:8761/eureka/apps/
可以看到已经将 Alpha 的 gRPC 地址和端口注册到 Eureka 的 Metadata 中
<applications> <versions__delta>1</versions__delta> <apps__hashcode>UP_1_</apps__hashcode> <application> <name>SERVICECOMB-ALPHA-SERVER</name> <instance> <hostName>10.50.8.23</hostName> <app>SERVICECOMB-ALPHA-SERVER</app> <ipAddr>10.50.8.23</ipAddr> <status>UP</status> <overriddenstatus>UNKNOWN</overriddenstatus> <port enabled="true">8090</port> <securePort enabled="false">443</securePort> <countryId>1</countryId> <dataCenterInfo class="com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo"> <name>MyOwn</name> </dataCenterInfo> <leaseInfo> <renewalIntervalInSecs>30</renewalIntervalInSecs> <durationInSecs>90</durationInSecs> <registrationTimestamp>1555317761365</registrationTimestamp> <lastRenewalTimestamp>1555317761365</lastRenewalTimestamp> <evictionTimestamp>0</evictionTimestamp> <serviceUpTimestamp>1555317761067</serviceUpTimestamp> </leaseInfo> <metadata> <management.port>8090</management.port> <servicecomb-alpha-server>0.0.0.0:8080</servicecomb-alpha-server> </metadata> <homePageUrl>http://10.50.8.23:8090/</homePageUrl> <statusPageUrl>http://10.50.8.23:8090/actuator/info</statusPageUrl> <healthCheckUrl>http://10.50.8.23:8090/actuator/health</healthCheckUrl> <vipAddress>servicecomb-alpha-server</vipAddress> <secureVipAddress>servicecomb-alpha-server</secureVipAddress> <isCoordinatingDiscoveryServer>false</isCoordinatingDiscoveryServer> <lastUpdatedTimestamp>1555317761365</lastUpdatedTimestamp> <lastDirtyTimestamp>1555317760932</lastDirtyTimestamp> <actionType>ADDED</actionType> </instance> </application></applications>
ServiceComb Pack 0.4.0 Omega 默认依赖 Spring Boot 2.x Spring 和 Spring Cloud Netflix 2.x ,如果你的 Omega 端项目依赖 Spring Boot 1.x 你可以使用
-Pspring-boot-1参数重新编译 Spring Boot 1.x 和 Spring Cloud Netflix 1.x 的版本
修改原有 omega 端项目
增加以下依赖↓↓↓
<dependency> <groupId>org.apache.servicecomb.pack</groupId> <artifactId>omega-spring-cloud-eureka-starter</artifactId> <version>${pack.version}</version></dependency>
在 application.yaml 添加下面的配置项↓↓↓
eureka: client: service-url: defaultZone: http://127.0.0.1:8761/eurekaalpha: cluster: register: type: eureka
eureka.client.service-url.defaultZone 配置 Eureka 注册中心的地址,更多 Eureka 客户端配置可以参考Spring Cloud Netflix 2.x 或 Spring Cloud Netflix 1.x
alpha.cluster.register.type=eureka 配置 Omega 获取Alpha的方式是通过 Eureka 的注册中心
●spring boot 版本兼容
如果你的项目使用的不是 spring boot 2.1.1 版本,那么请参照此列表增加兼容的 spring-cloud-starter-consul-discovery 版本↓↓ ↓
| spring boot | spring-cloud-starter-netflix-eureka-client |
|
2.1.x.RELEASE |
2.1.1.RELEASE |
|
2.0.x.RELEASE |
2.0.3.RELEASE |
dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> <version>2.0.3.RELEASE</version> </dependency> </dependencies></dependencyManagement>
未来,新功能还会不断加入,欢迎大家一起参与完善。共同打造优秀的微服务生态圈。
Pack 0.4.0 的重要更新
*提供Alpha HA实现
*支持使用eureka或consul进行Alpha的服务发现
*修复事件扫描线程退出的问题
● Pack 0.4.0新特性解读 |Cluster集群实现
项目地址:
https://github.com/apache/servicecomb-pack
更多信息请浏览官网:
http://servicecomb.apache.org/cn
另插播一条
2019年中国开源盛事 KubeCon & CloudNativeCon & OSS 上海峰会 Co-located Event Apache ServiceComb Meetup 已经在线上接受报名。
报名链接:
https://www.lfasiallc.com/events/kubecon-cloudnativecon-china-2019/co-located-events/#Apache-ServiceComb-meetup
戳“阅读原文” 给Pack点个“⭐”吧