Pack 0.4.0新特性解读 |集成Spring Cloud Eureka

645 阅读3分钟
原文链接: mp.weixin.qq.com
点击上方蓝字带你体验新特性~

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

启动 Eureka
  • 使用 Docker 启动 Eureka

  • 更多方式请参考官方网站 https://cloud.spring.io

docker run -d -p 8761:8761 springcloud/eureka

  • 访问 Eureka UI

在浏览器中访问 http://0.0.0.0:8761 ,能看到如下页面表示 Eureka 启动成功

启动 Alpha

注册中心功能通过设置

 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>

配置 Omega 端

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的服务发现

*修复事件扫描线程退出的问题

前期阅读 ServiceComb1.2.0发布|新版本特性解读 Javachaiss1.2.0新特性解读 |使用inspector功能... Pack 0.4.0新特性解读 |集成Consul 文章预告

● 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点个“⭐”吧