根据要求将新生电子报道系统由SpringBoot拆分为SpringCloud,只做架构的修改,不涉及业务源码修改。
技术栈 | 功能/版本 |
---|---|
Spring Boot | 2.2.5.RELEASE |
Spring Cloud | Hoxton.SR6 |
Spring Cloud Alibaba | 2.1.2.RELEASE |
Nacos | 注册中心,配置中心 |
OpenFeign | 远程调用 |
Gateway | 网关,请求分发,统一拦截 |
Sentinel | 服务限流,熔断监控 |
Seata | 分布式事务 |
Zipkin + Sleuth | 链路追踪 |
Spring Boot Admin | 状态监控 |
ELK | 日志分析解决方案 |
electronic-registration-cloud
├── erc-admin -- 业务:管理员模块 [8005]
├── erc-common -- 系统公共模块
├── erc-data -- 业务:大屏模块 [9001]
├── erc-gateway -- Spring Cloud Gateway网关 [9527]
├── erc-monitor -- Spring Boot Admin 服务状态监控 [8769]
├── erc-openid -- 业务:微信模块[8003]
├── erc-praise -- 业务:喜报模块 [8004]
├── erc-healthinfo -- 业务:健康码模块[8006]
└── erc-student -- 业务:用户模块 [8001]
参考:https://blog.csdn.net/su2231595742/article/details/122827205?spm=1001.2014.3001.5502
1、下载 https://github.com/alibaba/Sentinel/releases
2、启动
3、访问web界面 http://localhost:8858/
注:这种启动方式要一直终端窗口开启
# 1. 搜索镜像
docker search sentinel-dashboard
# 2. 拉取镜像
docker pull bladex/sentinel-dashboard
# 3. 查看端口
docker inspect sentinel-dashboard
发现默认暴露端口为8719、8858
# 4. 启动
docker run --name sentinel -d -p 8858:8858 -p 8719:8719 -d bladex/sentinel-dashboard
docker方式安装
docker search zipin
docker pull openzipkin/zipkin
docker run --name zipkin -d -p 9411:9411 openzipkin/zipkin
普通方式安装(要求jdk 1.8+环境)
curl -sSL https://zipkin.io/quickstart.sh | bash -s
java -jar zipkin.jar
1、创建mysql数据环境
CREATE TABLE IF NOT EXISTS zipkin_spans (
`trace_id_high` BIGINT NOT NULL DEFAULT 0 COMMENT 'If non zero, this means the trace uses 128 bit traceIds instead of 64 bit',
`trace_id` BIGINT NOT NULL,
`id` BIGINT NOT NULL,
`name` VARCHAR(255) NOT NULL,
`parent_id` BIGINT,
`debug` BIT(1),
`start_ts` BIGINT COMMENT 'Span.timestamp(): epoch micros used for endTs query and to implement TTL',
`duration` BIGINT COMMENT 'Span.duration(): micros used for minDuration and maxDuration query'
) ENGINE=InnoDB ROW_FORMAT=COMPRESSED CHARACTER SET=utf8 COLLATE utf8_general_ci;
ALTER TABLE zipkin_spans ADD UNIQUE KEY(`trace_id_high`, `trace_id`, `id`) COMMENT 'ignore insert on duplicate';
ALTER TABLE zipkin_spans ADD INDEX(`trace_id_high`, `trace_id`, `id`) COMMENT 'for joining with zipkin_annotations';
ALTER TABLE zipkin_spans ADD INDEX(`trace_id_high`, `trace_id`) COMMENT 'for getTracesByIds';
ALTER TABLE zipkin_spans ADD INDEX(`name`) COMMENT 'for getTraces and getSpanNames';
ALTER TABLE zipkin_spans ADD INDEX(`start_ts`) COMMENT 'for getTraces ordering and range';
CREATE TABLE IF NOT EXISTS zipkin_annotations (
`trace_id_high` BIGINT NOT NULL DEFAULT 0 COMMENT 'If non zero, this means the trace uses 128 bit traceIds instead of 64 bit',
`trace_id` BIGINT NOT NULL COMMENT 'coincides with zipkin_spans.trace_id',
`span_id` BIGINT NOT NULL COMMENT 'coincides with zipkin_spans.id',
`a_key` VARCHAR(255) NOT NULL COMMENT 'BinaryAnnotation.key or Annotation.value if type == -1',
`a_value` BLOB COMMENT 'BinaryAnnotation.value(), which must be smaller than 64KB',
`a_type` INT NOT NULL COMMENT 'BinaryAnnotation.type() or -1 if Annotation',
`a_timestamp` BIGINT COMMENT 'Used to implement TTL; Annotation.timestamp or zipkin_spans.timestamp',
`endpoint_ipv4` INT COMMENT 'Null when Binary/Annotation.endpoint is null',
`endpoint_ipv6` BINARY(16) COMMENT 'Null when Binary/Annotation.endpoint is null, or no IPv6 address',
`endpoint_port` SMALLINT COMMENT 'Null when Binary/Annotation.endpoint is null',
`endpoint_service_name` VARCHAR(255) COMMENT 'Null when Binary/Annotation.endpoint is null'
) ENGINE=InnoDB ROW_FORMAT=COMPRESSED CHARACTER SET=utf8 COLLATE utf8_general_ci;
ALTER TABLE zipkin_annotations ADD UNIQUE KEY(`trace_id_high`, `trace_id`, `span_id`, `a_key`, `a_timestamp`) COMMENT 'Ignore insert on duplicate';
ALTER TABLE zipkin_annotations ADD INDEX(`trace_id_high`, `trace_id`, `span_id`) COMMENT 'for joining with zipkin_spans';
ALTER TABLE zipkin_annotations ADD INDEX(`trace_id_high`, `trace_id`) COMMENT 'for getTraces/ByIds';
ALTER TABLE zipkin_annotations ADD INDEX(`endpoint_service_name`) COMMENT 'for getTraces and getServiceNames';
ALTER TABLE zipkin_annotations ADD INDEX(`a_type`) COMMENT 'for getTraces';
ALTER TABLE zipkin_annotations ADD INDEX(`a_key`) COMMENT 'for getTraces';
CREATE TABLE IF NOT EXISTS zipkin_dependencies (
`day` DATE NOT NULL,
`parent` VARCHAR(255) NOT NULL,
`child` VARCHAR(255) NOT NULL,
`call_count` BIGINT
) ENGINE=InnoDB ROW_FORMAT=COMPRESSED CHARACTER SET=utf8 COLLATE utf8_general_ci;
ALTER TABLE zipkin_dependencies ADD UNIQUE KEY(`day`, `parent`, `child`);
2、在启动ZipKin Server的时候,指定数据保存的mysql的信息
java -jar zipkin-server-2.12.9-exec.jar --STORAGE_TYPE=mysql --MYSQL_HOST=127.0.0.1 --MYSQL_TCP_PORT=3306 --MYSQL_DB=zipkin --MYSQL_USER=root --MYSQL_PASS=123456
docker方式
docker run --name zipkin -d \
-p 9411:9411 \
-e STORAGE_TYPE=mysql \
-e MYSQL_HOST=127.0.0.1 \
-e MYSQL_TCP_PORT=3306 \
-e MYSQL_DB=zipkin \
-e MYSQL_USER=root \
-e MYSQL_PASS=123456 \
openzipkin/zipkin
https://blog.csdn.net/su2231595742/article/details/124515517?spm=1001.2014.3001.5501
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/su2231595742/article/details/123340769
内容来源于网络,如有侵权,请联系作者删除!