1. Configuration of zipkin server
B2B2C E-Commerce Platform Source Code Required to Build Distributed Microservice Cloud in JAVA Spring Cloud Large Enterprises
1. Introducing dependencies
//======================= Dependency of message queuing mode============ //This dependency automatically introduces spring-cloud-sleuth-stream and zipkin dependency packages compile("org.springframework.cloud:spring-cloud-sleuth-zipkin-stream") compile("org.springframework.cloud:spring-cloud-starter-stream-rabbit") compile('io.zipkin.java:zipkin-autoconfigure-ui') //To save to the database, you need the following dependencies compile('mysql:mysql-connector-java') compile('org.springframework.boot:spring-boot-starter-jdbc')
2. Start Class Configuration
Add @EnableZipkinStream Server to the startup class
@EnableZipkinStreamServer @SpringBootApplication public class ZipkinApplication { public static void main(String[] args) { SpringApplication.run(ZipkinApplication.class, args); } }
3. Configuration file
The complete configuration is as follows, according to their own settings can be modified.
#============================================================= Basic configuration======================== Basic configuration======================== #Application name spring.application.name=zipking-server-v1 #port server.port=9411 #=============================================================== message queue========================= spring.rabbitmq.host=localhost spring.rabbitmq.port=5672 spring.rabbitmq.username=guest spring.rabbitmq.password=guest #============================================================ Data Source Configuration======================= #The following configuration is required for zipkin data to be stored in the database #Represents that the current program does not use sleuth spring.sleuth.enabled=false #Represents that zipkin data is stored in mysql zipkin.storage.type=mysql #The database script creates an address when there are multiple elements of the collection that can be represented by [x] spring.datasource.schema[0]=classpath:/zipkin.sql #spring boot data source configuration spring.datasource.url=jdbc:mysql://localhost:3306/zipkin spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.initialize=true spring.datasource.continue-on-error=true
4. Database files
Set up a database in the local database, named zipkin.
Create a new zipkin.sql file in the resources directory, which reads as follows
SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for zipkin_annotations -- ---------------------------- CREATE TABLE `zipkin_annotations` ( `trace_id` bigint(20) NOT NULL COMMENT 'coincides with zipkin_spans.trace_id', `span_id` bigint(20) 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(11) NOT NULL COMMENT 'BinaryAnnotation.type() or -1 if Annotation', `a_timestamp` bigint(20) DEFAULT NULL COMMENT 'Used to implement TTL; Annotation.timestamp or zipkin_spans.timestamp', `endpoint_ipv4` int(11) DEFAULT NULL COMMENT 'Null when Binary/Annotation.endpoint is null', `endpoint_ipv6` binary(16) DEFAULT NULL COMMENT 'Null when Binary/Annotation.endpoint is null, or no IPv6 address', `endpoint_port` smallint(6) DEFAULT NULL COMMENT 'Null when Binary/Annotation.endpoint is null', `endpoint_service_name` varchar(255) DEFAULT NULL COMMENT 'Null when Binary/Annotation.endpoint is null', UNIQUE KEY `trace_id` (`trace_id`,`span_id`,`a_key`,`a_timestamp`) COMMENT 'Ignore insert on duplicate', KEY `trace_id_2` (`trace_id`,`span_id`) COMMENT 'for joining with zipkin_spans', KEY `trace_id_3` (`trace_id`) COMMENT 'for getTraces/ByIds', KEY `endpoint_service_name` (`endpoint_service_name`) COMMENT 'for getTraces and getServiceNames', KEY `a_type` (`a_type`) COMMENT 'for getTraces', KEY `a_key` (`a_key`) COMMENT 'for getTraces' ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPRESSED; -- ---------------------------- -- Table structure for zipkin_dependencies -- ---------------------------- CREATE TABLE `zipkin_dependencies` ( `day` date NOT NULL, `parent` varchar(255) NOT NULL, `child` varchar(255) NOT NULL, `call_count` bigint(20) DEFAULT NULL, UNIQUE KEY `day` (`day`,`parent`,`child`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPRESSED; -- ---------------------------- -- Table structure for zipkin_spans -- ---------------------------- CREATE TABLE `zipkin_spans` ( `trace_id` bigint(20) NOT NULL, `id` bigint(20) NOT NULL, `name` varchar(255) NOT NULL, `parent_id` bigint(20) DEFAULT NULL, `debug` bit(1) DEFAULT NULL, `start_ts` bigint(20) DEFAULT NULL COMMENT 'Span.timestamp(): epoch micros used for endTs query and to implement TTL', `duration` bigint(20) DEFAULT NULL COMMENT 'Span.duration(): micros used for minDuration and maxDuration query', UNIQUE KEY `trace_id` (`trace_id`,`id`) COMMENT 'ignore insert on duplicate', KEY `trace_id_2` (`trace_id`,`id`) COMMENT 'for joining with zipkin_annotations', KEY `trace_id_3` (`trace_id`) COMMENT 'for getTracesByIds', KEY `name` (`name`) COMMENT 'for getTraces and getSpanNames', KEY `start_ts` (`start_ts`) COMMENT 'for getTraces ordering and range' ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPRESSED;
zipkin's server is configured, so don't forget to refresh the next project.
2. Configuration of zipkin client
Introducing dependency
compile("org.springframework.cloud:spring-cloud-sleuth-zipkin-stream") compile("org.springframework.cloud:spring-cloud-starter-stream-rabbit")
Then the client is configured.
Three. Start up
At this time, the client and server are started separately, and the initialization of the mq connection can be seen in the log.
Then visit a client's rest interface to see if the server locahost:9411 is opened to see if any records have been generated. Then look at the database and three tables will be created. That means we have successfully configured it. Java B2C Springcloud Electronic Mall System