http://servicecomb.apache.org/cn/docs/getting-started/ 官网地址(本文部分资源出处)
1 服务中心(Service Center)
Service Center 是一个服务注册中心,和其他注册中心一样,其主要作用在于解决服务的注册与发现,即动态路由的问题;同时为了更好的解决跨团队协作的问题,其增加了对契约(基于OpenAPI规范)服务的支持,与契约工具(Tookit)以及Java 微服务开发框架(Java Chassis)配合使用,可以使服务之间的通讯接口变得透明,从而使用户专注于业务开发。
2 服务注册发现
前文提到微服务是把专业的事交给专业的服务来干,下图就比较完美的解释了其含义,微服务将原本单体服务解耦,各个服务单独部署,每个服务可以独立更新,部署和扩展。
注册中心优点
1 解耦服务提供者与服务消费者,服务消费者不需要硬编码服务提供者地址;
2 服务动态发现及可伸缩能力,服务提供者实例的动态增减能通过注册中心动态推送到服务消费者端;
3 通过注册中心可以动态的监控服务运行质量及服务依赖,为服务提供服务治理能力。
注册中心缺点(个人见解)
1 服务运行过程中,需要始终保持心跳,需要高频率周期性发送/health健康检查。
2 如果出现网络中断、服务宕机等问题,Service Center注册中心在短期内(一般2min)仍会继续认为服务可用。
3 服务注册发现
服务发现流程(Service-Center注册发现接口基于RESTful标准实现,不受开发语言限制)
1、服务提供者向Service-Center注册服务信息
2、服务提供者发送心跳,维持在Service-Center中的“UP”状态
3、服务消费者向Service-Center注册服务信息
4、服务消费者从Service-Center发现服务提供者信息
5、服务消费者向服务提供者发送请求,并获取通讯结果
4 下载安装启动
https://github.com/apache/servicecomb-service-center/releases 自行下载。
下载windows安装包解压,运行前端显示脚本、服务注册中心启动脚本
注册中心默认监听地址:127.0.0.1:30100
前端访问地址:127.0.0.1:30103
5 服务集成注册
添加依赖
<dependency>
<groupId>org.apache.servicecomb</groupId>
<artifactId>registry-service-center</artifactId>
</dependency>
application.yml配置文件
APPLICATION_ID: asky
service_description:
name: socket
version: 0.0.3
servicecomb:
request:
timeout: 30000 #超时时间
service:
registry:
address: http://127.0.0.1:30100
rest:
address: 0.0.0.0:8081
handler:
chain:
Provider:
default: qps-flowcontrol-provider
accesslog:
enabled: true ## server 端 启用access log
pattern: "%h - - %t %r %s %B %D" ## server 端 自定义 access log 日志格式
request:
enabled: true ## client 端开启 request log
pattern: "%h %SCB-transport - - %t %r %s %D" ## client 端自定义 request log 日志格式
spring:
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
datasource:
url: jdbc:mysql://localhost:3306/socket?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC&characterEncoding=utf-8&useSSL=false
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
mybatis:
mapper-locations: classpath:*/*.xml
6 前端显示
访问127.0.0.1:30103即可打开服务中心。