当前位置: 首页 > news >正文

哪里有建网站的开发微信小程序大概需要多少钱

哪里有建网站的,开发微信小程序大概需要多少钱,北京网站制作计划,wordpress音乐插件百度云文章目录 前言技术积累spring cloud sleuth介绍zipkin介绍Zipkin与Sleuth的协作 SpringCloud多模块搭建Zipkin Server部署docker pull 镜像启动zipkin server SpringCloud 接入 Sleuth 与 Zipkinpom引入依赖 (springboot2.6)appilication.yml配置修改增加测试链路代码 调用微服… 文章目录 前言技术积累spring cloud sleuth介绍zipkin介绍Zipkin与Sleuth的协作 SpringCloud多模块搭建Zipkin Server部署docker pull 镜像启动zipkin server SpringCloud 接入 Sleuth 与 Zipkinpom引入依赖 (springboot2.6)appilication.yml配置修改增加测试链路代码 调用微服务进行验证 前言 最近项目上准备引入接口调用链路追踪说到这个我们就不得不想到springcloud全家桶中的sleuth了。他可以将跨多个服务请求链路记录下来供我们查询分析。然后我们在此基础上用zipkin来采集和上报分析请求链路简直不要太爽。那么今天就分享一期微服务架构接入sleuthzipkin实战演示。 技术积累 spring cloud sleuth介绍 Sleuth是Spring cloud的分布式跟踪解决方案。 1.span(跨度)基本工作单元。一次链路调用创建一个spanspan用一个64位id唯一标识。包括:id描述时间戳事件spanld,span父id.span被启动和停止时记录了时间信息初始化span叫:rootspan它的span id和trace id相等。 2.trace(跟踪)一组共享root span”的span组成的树状结构称为 tracetrace也有一个64位IDtrace中所有span共享一个trace id。类似于一颗 span 树。 3.annotation (标签)annotation用来记录事件的存在其中核心annotation用来定义请求的开始和结束CS(Client Send客户端发起请求)。客户端发起请求描述了span开始 SR(Server Received服务端接到请求)。服务端获得请求并准备处理它。SR-CS网络延迟SS(Server Send服务器端处理完成并将结果发送给客户端)。表示服务器完成请求处理响应客户端时。SS-SR服务器处理请求的时间 CR(Client Received 客户端接受服务端信息)。span结束的标识。客户端接收到服务器的响应。CR-CS客户端发出请求到服务器响应的总时间。 其实数据结构是一颗树从root span 开始。 工具定位 Spring Cloud Sleuth是一个用于Spring Cloud应用程序的分布式追踪工具它主要专注于在服务间传播追踪信息。 主要功能 传播追踪上下文在服务调用间传递Trace ID和Span ID确保整个请求链路的追踪信息保持一致。 集成日志框架修改日志框架的配置使得日志记录中包含Trace和Span的ID。 与Spring Cloud生态集成与Spring Cloud的其他组件如Ribbon、Hystrix、Zuul等无缝集成。 依赖性Sleuth是为Spring Cloud应用程序设计的它依赖于Spring框架和Spring Boot。 zipkin介绍 Zipkin是一款开源的分布式实时数据追踪系统Distributed Tracking System基于 Google Dapper的论文设计而来由 Twitter 公司开发贡献。其主要功能是聚集来自各个异构系统的实时监控数据。 工具定位 Zipkin是一个分布式追踪系统它提供了追踪数据的收集、存储、查找和展示功能。 主要功能 收集追踪数据Zipkin通过其客户端库如Brave收集追踪数据。 存储追踪数据支持多种存储方案如内存、MySQL、Cassandra、Elasticsearch等。 查询和展示提供Web界面用于查询追踪数据并以可视化的方式展示服务间的调用关系和延迟。 独立性Zipkin可以独立于任何应用程序或框架运行并且可以与多种编程语言和框架集成。 zipkin 官网 https://zipkin.io/pages/quickstart.html Zipkin与Sleuth的协作 数据收集Sleuth负责在Spring Cloud应用程序中生成和传播追踪数据而Zipkin负责收集这些数据。 数据展示Sleuth生成的追踪数据可以通过Zipkin的Web界面进行查询和展示。 集成在Spring Cloud应用程序中Sleuth通常与Zipkin一起使用Sleuth负责追踪信息的生成和传播Zipkin负责存储和展示。 SpringCloud多模块搭建 多模块微服务项目结构 新增父项目来管理微服务各个模块 #父模块pom必须声明 pom 新增子模块 Zipkin Server部署 由于springcloud F版本不支持自定义zipkin server故我们采用docker镜像进行部署zipkin server。 docker pull 镜像 docker pull openzipkin/zipkin:latest 启动zipkin server 未持久化(内存) docker run --name zipkin-server -d --restartalways -p 9411:9411 openzipkin/zipkin:latest http://127.0.0.1:9411/zipkin/ 持久化到MySQL5 docker run --name zipkin-server-mysql -d --restartalways -p 19411:9411 -e MYSQL_USERroot -e MYSQL_PASS12345678 -e MYSQL_HOST127.0.0.1 -e STORAGE_TYPEmysql -e MYSQL_DBzipkin -e MYSQL_TCP_PORT13306 openzipkin/zipkin:3.3 mysql DD语句如下 https://github.com/openzipkin/zipkin/blob/master/zipkin-storage/mysql-v1/src/main/resources/mysql.sql -- -- Copyright The OpenZipkin Authors -- SPDX-License-Identifier: Apache-2.0 --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,remote_service_name VARCHAR(255),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,PRIMARY KEY (trace_id_high, trace_id, id) ) ENGINEInnoDB ROW_FORMATCOMPRESSED CHARACTER SETutf8 COLLATE utf8_general_ci;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(remote_service_name) COMMENT for getTraces and getRemoteServiceNames; 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 ) ENGINEInnoDB ROW_FORMATCOMPRESSED CHARACTER SETutf8 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 and autocomplete values; ALTER TABLE zipkin_annotations ADD INDEX(a_key) COMMENT for getTraces and autocomplete values; ALTER TABLE zipkin_annotations ADD INDEX(trace_id, span_id, a_key) COMMENT for dependencies job;CREATE TABLE IF NOT EXISTS zipkin_dependencies (day DATE NOT NULL,parent VARCHAR(255) NOT NULL,child VARCHAR(255) NOT NULL,call_count BIGINT,error_count BIGINT,PRIMARY KEY (day, parent, child) ) ENGINEInnoDB ROW_FORMATCOMPRESSED CHARACTER SETutf8 COLLATE utf8_general_ci;持久化到ES docker run --name zipkin-server-es -d -p 19411:9411 --restartalways -e STORAGE_TYPEelasticsearch -e ES_HOSTS127.0.0.1:9200 openzipkin/zipkin:latest JAR运行 curl -sSL https://zipkin.io/quickstart.sh | bash -s java -jar zipkin.jar --STORAGE_TYPEmysql --MYSQL_HOST127.0.0.1 --MYSQL_TCP_PORT3306 --MYSQL_DBzipkin --MYSQL_USERroot --MYSQL_PASS12345678 我们测试选择不持久化 docker run -d -p 9411:9411 --name zipkinServer --restartalways openzipkin/zipkin 3、启动完成 SpringCloud 接入 Sleuth 与 Zipkin pom引入依赖 (springboot2.6) propertiesspring-cloud.version2021.0.5/spring-cloud.version /properties dependenciesdependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversion${spring-cloud.version}/versiontypepom/typescopeimport/scope/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-sleuth/artifactIdversion3.1.10/version/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-sleuth-zipkin/artifactIdversion3.1.10/version/dependency /dependenciesappilication.yml配置修改 spring:zipkin:#zipkin服务所在地址base-url: http://127.0.0.1:9411/sender:type: web #使用http的方式传输数据#配置采样百分比sleuth:sampler:probability: 1 # 将采样比例设置为 1.0也就是全部都需要。默认是0.1也就是10%一般情况下10%就够用了 ##打开debug日志 logging:level:org.springframework.web.servlet.DispatcherServlet: Debugtypeweb也就是通过 HTTP 的方式发送数据到 Zipkin 。 如果请求量比较大这种方式其实性能是比较低的一般情况下我们都是通过消息中间件来发送比如 RabbitMQ 。如果日志数据量比较大一般推荐拥有更高吞吐量的 Kafka 来进行日志推送。这种方式就是让服务将 Sleuth 收集的日志推给 MQ 让 Zipkin 去监控 MQ 的信息通过 MQ 的队列获取到服务的信息。这样就提高了性能。 而日志的存储则可以采用mysql、 Elasticsearch 对数据进行持久化这样可以保证 Zipkin 重启后链路信息不会丢失。 增加测试链路代码 链路为 user-service -- order-service -- finance-service user-service增加请求入口getOrderAmount /*** 计算订单金额* param orderId* author senfel* date 2024/12/9 18:25* return java.lang.String*/ RequestMapping(/getOrderAmount) public String getOrderAmount(RequestParam(name orderId) String orderId) {return orderService.getOrderAmount(orderId); }user-service增加feign调用order-service /*** FeeService* author senfel* version 1.0* date 2024/12/9 18:02*/ FeignClient(name order-service,fallback OrderServiceFallback.class) public interface getOrderAmount {/*** 获取订单金额* param orderId* author senfel* date 2024/12/9 18:06* return java.lang.String*/RequestMapping(value /order/getOrderAmount,method RequestMethod.GET)String getOrderAmount(RequestParam(name orderId) String orderId); }order-service增加调用入口getOrderAmount /*** 获取订单金额* param orderId* author senfel* date 2024/12/9 18:06* return java.lang.String*/ RequestMapping(value /getOrderAmount,method RequestMethod.GET) public String getOrderAmount(RequestParam(name orderId) String orderId){return financeService.getFee(orderId); }order-service增加feign调用finance-service /*** FinanceService* author senfel* version 1.0* date 2024/12/9 18:10*/ FeignClient(name finance-service,fallback FinanceServiceFallback.class) public interface FinanceService {/*** 获取费用* param orderId* author senfel* date 2024/12/9 18:12* return java.lang.String*/RequestMapping(value /finance/getFee,method RequestMethod.GET)String getFee(RequestParam(name orderId) String orderId); }finance-service增加请求入口getFee /*** 获取费用* param orderId* author senfel* date 2024/12/9 18:12* return java.lang.String*/ RequestMapping(value /getFee,method RequestMethod.GET) public String getFee(RequestParam(name orderId) String orderId) {return 100; }调用微服务进行验证 启动微服务调用getOrderAmount() 进入zipkin界面查看请求调用链路和各个阶段耗时 至此我们已经完微服务链路追踪实战.。
http://www.hkea.cn/news/14334365/

相关文章:

  • 专业网站建设联系电话做网站最好的公司有哪些
  • 四川省城乡住房与建设厅网站首页phpstudy
  • 私人搭建服务器seo优化心得
  • 找网站建设需要问什么软件出口外贸网站
  • 怎么建设淘宝联盟的网站做vip视频网站侵权
  • 建德网站seo邢台网站建设要多少钱
  • 一键网站提交网站备案查询站长工具
  • 怎么开发销售网站专业网站推广公司
  • 非常好的资讯网站设计wordpress 电影解析
  • 怎样做免费网站卖东西美容产品网站建设多少钱
  • 那些网站专门做棋牌推广的企业网站打不开的原因
  • 昆明网页重做南昌网站排名优化报
  • 长沙网站优化方案机票网站开发知乎
  • jsp商业网站开发网站系统排名
  • 三门县住房和城乡建设规划局网站陕西网站关键词自然排名优化
  • 2021网站建设前景怎么样网站后台编辑器不能正常显示
  • 公司网站 开源钓鱼网站链接
  • 网站设立前置审批ppt模板下载后怎么导入
  • 图片做视频在线观看网站贵阳网站建设在线
  • 专业的模板建站企业杭州百度快照
  • 给公司做网站怎么样重庆公司注销的流程及需提供的材料
  • 网站建设宗旨是指最新闻头条新闻
  • 建网站如何备案建设小型网站
  • 做一网站要学些什么软件郑州网页开发的公司
  • 互联网公司注册百度搜索优化费用
  • 金融课程网站模板下载和平区网站建设
  • 搭建外文网站济南小程序开发多少钱
  • 基于网站的网络营销方法有哪些有没有咨询求助做任务的网站
  • 教如何做帐哪个网站好项目营销推广策划
  • 网页设计如何建立网站网店代理免费一件代发