常州网站建设培训郑州网络营销与网站推广
web/
2025/9/25 13:13:20/
文章来源:
常州网站建设培训,郑州网络营销与网站推广,wordpress seo栏目标题,二手房交易网站排行前些天发现了一个巨牛的人工智能学习网站#xff0c;通俗易懂#xff0c;风趣幽默#xff0c;忍不住分享一下给大家。点击跳转到教程。
一、 在微服务系统中#xff0c;不同应用服务可能会有各种不同的相互调用 。 springcloud 集成了 zipkin 来实现对于不同服务调用的追踪…前些天发现了一个巨牛的人工智能学习网站通俗易懂风趣幽默忍不住分享一下给大家。点击跳转到教程。
一、 在微服务系统中不同应用服务可能会有各种不同的相互调用 。 springcloud 集成了 zipkin 来实现对于不同服务调用的追踪和统计。
二、具体实现 。
1. Docker 方式安装并运行 zipkin 作为 zipkin 的 server即服务追踪的服务端。
1.1 安装方式及运行见文章Docker 方式安装 zipkin linux 、阿里云ECS上安装
运行效果如下图此时并没有服务调用记录zipkin 管控中心 未展示任何追踪数据 1.2 在 base 工程 pom 中加上依赖spring-boot-starter-web 。
完整依赖如下
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.base/groupIdartifactIdbase-config/artifactIdversion0.0.1-SNAPSHOT/versionnamebase-config/namepackagingpom/packagingdescription整个 springCloud 体系基本 pom 配置/descriptionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.1.6.RELEASE/version!--lookup parent from repository查找顺序relativePath元素中的地址–本地仓库–远程仓库。设定一个空值将始终从仓库中获取不从本地路径获取。--relativePath//parent!-- 配置远程发布到私服mvn deploy --!--distributionManagement--!--lt;!ndash;releases发布ndash;gt;--!--repository--!--idmaven-releases/id--!--nameNexus Release Repository/name--!--urlhttp://ergouzi.fun:8081/repository/maven-releases//url--!--/repository--!--lt;!ndash;Snapshot:快照ndash;gt;--!--snapshotRepository--!--idmaven-snapshots/id--!--nameNexus Snapshot Repository/name--!--urlhttp://ergouzi.fun:8081/repository/maven-snapshots//url--!--/snapshotRepository--!--/distributionManagement--!--定义子模块--!--modules--!--modulebbb/module--!--moduleaaa/module--!--/modules--propertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncodingproject.reporting.outputEncodingUTF-8/project.reporting.outputEncodingjava.version1.8/java.versionspring-cloud.versionFinchley.RELEASE/spring-cloud.version/propertiesdependencies!--配置文件管理--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-autoconfigure/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency/dependenciesdependencyManagementdependenciesdependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversion${spring-cloud.version}/versiontypepom/typescopeimport/scope/dependency/dependencies/dependencyManagementbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build/project2. 新建工程 see-name 工程作为一个 zipkin 客户端对外暴露接口查看姓名。
2.1. file -- new -- project 2.2. spring Initializr - module SDK 选择自己的 JDK 其余的可以不用填写next。 2.3. 填写工程相关信息包名、工程名等next。 2.4.直接 next 2.5. 工程名代码存放位置等finish 。 2.6.工程结构 2.7. 在 pom 中引入 依赖 dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-zipkin/artifactId/dependency
完整依赖
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom/groupIdartifactIdsee-name/artifactIdversion0.0.1-SNAPSHOT/versionnamesee-name/namedescription服务查看姓名/descriptionparentgroupIdcom.base/groupIdartifactIdbase-config/artifactIdversion0.0.1-SNAPSHOT/version/parentdependenciesdependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-zipkin/artifactId/dependency/dependencies/project2.8 在配置文件中配置 zipkin 服务地址 spring.zipkin.base-urlhttp://ergouzi.fun:9411
端口设置为 8805 。
# 端口
server.port 8805# 工程名
spring.application.namesee-name# zipkin 服务地址
spring.zipkin.base-urlhttp://ergouzi.fun:9411# zipkin 收集信息频率默认为0.1
# 1 代表收集所有请求记录但会有延迟
# spring.sleuth.sampler.percentage1
# zipkin.sender.typeWEB
2.9 暴露接口 seeName、并调用 8806 端口的接口 seeAge 。以实现不同服务相互调用。
完整启动类
package com.seename;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;SpringBootApplication
RestController
public class SeeNameApplication {public static void main(String[] args) {SpringApplication.run(SeeNameApplication.class, args);}RequestMapping(/seeAge)public String seeAge() throws Exception {return HttpUtil.seeName(http://localhost:8806/seeAge);}RequestMapping(/seeName)public String seeName() {return 姓名小熊;}}2.10 用工具类实现请求发送HttpUtil 代码
package com.seename;import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;/*** author yujiang* description 发送请求工具类* date 2019/8/5 18:27*/
public class HttpUtil {public static String seeName(String url) throws Exception {URL restURL new URL(url);HttpURLConnection conn (HttpURLConnection) restURL.openConnection();conn.setRequestMethod(GET);conn.setDoOutput(true);conn.setAllowUserInteraction(false);BufferedReader bReader new BufferedReader(new InputStreamReader(conn.getInputStream()));String line, resultStr ;while (null ! (line bReader.readLine())) {resultStr line;}bReader.close();return resultStr;}}3. 同样方法新建工程 see-age 工程作为一个 zipkin 客户端对外暴露接口查看年龄。
3.1 工程结构 3.2 同样加依赖并配置好 zipkin 服务地址
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom/groupIdartifactIdsee-age/artifactIdversion0.0.1-SNAPSHOT/versionnamesee-age/namedescription服务查看年龄/descriptionparentgroupIdcom.base/groupIdartifactIdbase-config/artifactIdversion0.0.1-SNAPSHOT/version/parentdependenciesdependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-zipkin/artifactId/dependency/dependencies/project端口设置为8806 。
# 端口
server.port 8806# 工程名
spring.application.namesee-age# zipkin 服务地址
spring.zipkin.base-urlhttp://ergouzi.fun:9411
3.3 暴露接口 seeAge、并调用 8805 端口的接口 seeName 。以实现不同服务相互调用。
package com.seeage;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;SpringBootApplication
RestController
public class SeeAgeApplication {public static void main(String[] args) {SpringApplication.run(SeeAgeApplication.class, args);}RequestMapping(/seeName)public String seeName() throws Exception {return HttpUtil.seeName(http://localhost:8805/seeName);}RequestMapping(/seeAge)public String seeAge() {return 16岁;}
}4. 浏览器分别请求这 4 个接口一定要先请求接口zipkin管控中心 才会有追踪数据
http://localhost:8805/seeName 、http://localhost:8805/seeAge 、
http://localhost:8806/seeName 、http://localhost:8806/seeAge
5.查看 zipkin管控中心 追踪数据。
5.1 点击 “依赖” 查看到服务间依赖对应
PS我不确定 zipkin 的延迟到底为多久昨天我反复测试但此页面依赖关系一直没有任何记录到今天早上依旧无果。一刻钟前再次刷新终于有如下图的记录了。项目代码并未作改动 。 5.2 点击 “查看” 可以看到接口请求记录 可以单独查看对应接口请求 至此zipkin 已经正常运行并追踪到服务间调用。
-------------------------------------------------------------
下一篇springCloud - 第11篇 - Eureka 注册中心集群的实现
源码见
https://gitee.com/FJ_WoMenDeShiJie/springcloud-base
https://gitee.com/FJ_WoMenDeShiJie/springcloud-seeAge
https://gitee.com/FJ_WoMenDeShiJie/springcloud-seeName
-------------------------------------------------------------
PS这个系列不定时更新只是个人的学习分享
内容全程参考书目
《Spring Cloud 与 Docker 微服务架构空实战 》、
《Spring Cloud 微服务实战》及此书作者博客http://blog.didispace.com/spring-cloud-learning/
《深入理解 Spring Cloud 与微服务构建》及此书作者博客https://blog.csdn.net/forezp/article/details/70148833 --------------------------------------------------------------
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/81634.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!