首页 文章 精选 留言 我的

精选列表

搜索[思维链],共10000篇文章
优秀的个人博客,低调大师

spring cloud 学习(8) - sleuth & zipkin 调用链跟踪

业务复杂的微服务架构中,往往服务之间的调用关系比较难梳理,一次http请求中,可能涉及到多个服务的调用(eg: service A -> service B -> service C...),如果想分析各服务间的调用关系,以及各服务的响应耗时,找出有性能瓶颈的服务,这时zipkin就派上用场,它是Twitter公司开源的一个tracing系统,官网地址为:http://zipkin.io/ , spring cloud可以跟它无疑集成。 使用步骤: 一、微服务方 1.1 添加依赖jar包 compile 'org.springframework.cloud:spring-cloud-starter-bus-kafka' compile 'org.springframework.cloud:spring-cloud-starter-sleuth' compile 'org.springframework.cloud:spring-cloud-sleuth-stream' 注:为了实现tracing数据埋点与采集的解耦,spring cloud引入了message bus(消息总线)的概念,微服务无需关心tracing系统在哪,长什么样,只要向bus总线上扔消息就行,所以引入了bus-kafka以及sleuth-stream。 1.2 application.yml配置 spring: ... cloud: bus: enabled: true stream: default-binder: kafka kafka: binder: brokers: 10.0.1.2,10.0.1.3,10.0.1.4 //kafaka的服务器集群列表 zkNodes: 10.0.1.5,10.0.1.6,10.0.1.7 //zk的服务器集群列表 defaultZkPort: 2181 //zk的端口 defaultBrokerPort: 9092 //kafka的broker端口 ... sleuth: sampler: percentage: 0.2 //采样率 0.2为20% 上面2项配置好就行了,代码不用任何修改,真正的代码零侵入 二、zipkin-server zipkin从kafka上接收过来数据后,有4种保存方式:in-memory(保存在内存中)、mysql、cassandra、elasticsearch 个人开发调试的话,推荐用in-memory模式,其它环境不要使用!(注:因为随着收集的数据越来越多,都放在内存中 很容易造成OOM) 2.1 mysql 存储 2.1.1 主要jar包依赖 dependencies { ... 关键是下面几个 compile 'org.springframework.cloud:spring-cloud-starter-sleuth' compile 'org.springframework.cloud:spring-cloud-sleuth-zipkin-stream' compile 'org.springframework.cloud:spring-cloud-starter-bus-kafka' compile 'io.zipkin.java:zipkin-server' compile 'io.zipkin.java:zipkin-autoconfigure-ui' compile 'io.zipkin.java:zipkin-autoconfigure-storage-mysql' #mysql的存储 ... 下面几个是spring-boot/cloud的常规项 compile 'org.springframework.boot:spring-boot-starter-actuator' compile 'org.springframework.boot:spring-boot-starter-web' compile 'org.springframework.boot:spring-boot-starter-security' compile 'log4j:log4j:1.2.17' //zipkin的storage jar包,依赖低版本的log4j compile 'org.apache.logging.log4j:log4j-slf4j-impl:2.8.2' compile 'mysql:mysql-connector-java:6.0.5' } 2.1.2 application.yml配置 spring: application: name: zipkin-server datasource: //指定mysql数据源 schema: classpath:/mysql.sql url: jdbc:mysql://192.168.1.2:3306/zipkin?autoReconnect=true&useSSL=false username: root password: *** driver-class-name: com.mysql.cj.jdbc.Driver initialize: true continue-on-error: true sleuth: enabled: false cloud: bus: enabled: true ... stream: default-binder: kafka kafka: binder: brokers: ${kafka.brokers} zkNodes: ${kafka.zkNodes} defaultZkPort: ${kafka.zkPort} defaultBrokerPort: ${kafka.brokerPort} zipkin: storage: type: mysql //配置成mysql存储 2.1.3 main入口代码 @SpringBootApplication(exclude = { MybatisAutoConfiguration.class, RedisAutoConfiguration.class, RedisRepositoriesAutoConfiguration.class}) @EnableZipkinStreamServer public class ZipkinServer { public static void main(String[] args) { SpringApplication.run(ZipkinServer.class, args); } } 注:如果你的项目中依赖了redis,mybatis等其它包,可以参考上面的写法,排除掉这些自动配置,否则的话,不用加那一堆exclude。 2.2 cassandra 2.2.1 依赖jar包 注:cassandra和elasticsearch下,可能会遇到zipkin中的dependencies面板无数据,详情见github上的讨论:https://github.com/openzipkin/zipkin-dependencies/issues/22 compile 'org.springframework.boot:spring-boot-starter-data-cassandra' compile('io.zipkin.java:zipkin-autoconfigure-storage-cassandra3:1.29.3') { exclude group: "com.datastax.cassandra", module: "cassandra-driver-core" } compile 'com.datastax.cassandra:cassandra-driver-core:3.1.1' compile 'com.datastax.cassandra:cassandra-driver-mapping:3.1.1' 2.2.2 application.yml spring: data: cassandra: contact-points: localhost port: 9042 keyspace-name: zipkin3 ... zipkin: storage: type: cassandra3 2.3 elasticsearch 2.3.1 依赖jar包 compile 'io.zipkin.dependencies:zipkin-dependencies-elasticsearch:1.7.2' compile 'io.zipkin.java:zipkin-autoconfigure-storage-elasticsearch-http:1.29.2' 2.3.2 application.yml zipkin: storage: type: elasticsearch elasticsearch: cluster: elasticsearch hosts: http://localhost:9200 index: zipkin index-shards: 5 index-replicas: 1

优秀的个人博客,低调大师

把“双创细胞”融入智慧城市创业生态链

武汉,烽火创新谷。 一个首次由双创基地承办的国家双创品牌活动——2017“创响中国”首站活动近日在这里启幕。 “‘双创’的终极目的,是将创新动能转变为经济新动能。依托规模以上大型高科技企业,开放其市场、平台和创新资源,吸引社会上更多‘双创细胞’融入,从而激发出更大的创新活力,这正是烽火创新谷着力追求的。”烽火创新谷董事长夏存海说。 的确,在烽火创新谷,以“智慧城市”为主题,这里集结了很多优秀的创业团队,他们的创业激情就如初夏的武汉天气一样,生机勃勃。 创业需借势 与实体经济相结合 说起烽火创新谷,就不得不提到烽火科技集团,其正是它打造了国内为数不多的企业双创基地之一。 随着“互联网+”等国家战略的提出,年收入超300亿元、光通信领域全国第一的烽火创新谷,将智慧城市作为其继光通信后全新的业务方向。“做双创一是要顺势,这里的势主要指一行业势,什么行业是未来生活必需的;二是要与实体经济相结合;三是要结合自己的地域和企业特点。”夏存海说。 因此,夏存海表示,综合考虑之后,我们将烽火创新谷的业务锁定在智慧城市。因为智慧城市是一个新兴的万亿产业,企业实力再强,也吞不下整个市场。烽火需要更加开放,集结行业内最出色的双创团队与领军企业,协同创新,才能变得更加强大。 烽火创新谷占地106亩,重点围绕平安城市、智慧旅游、智慧教育三大板块发展。短短一年,已吸纳无线飞翔、朵儿网等46家上下游科技企业。国际创客中心内,签约61个团队,30个创客团队正在孵化,参与创新创业的创客达到1000多名。 一大批创业新秀在这里集结 “抓现货”是一家芯片交易B2B电商平台。彭承路是该公司的总经理,而一年前,他的身份还是烽火科技集团的一名芯片采购人员。 “我出来创业正是由于之前在工作中发现的商机。”彭承路说。 中国芯片进口额去年超过万亿元。华为、中兴、烽火等众多电子设备制造商,都有庞大的芯片进口需求。 但是,国外芯片供货周期往往需要8周至16周,市场瞬息万变,芯片到手时,市场行情或已生变,很容易产生库存。“一方面,库存芯片占用了流动资金,急需脱手;另一方面,很多中小企业到处找芯片。”彭承路说,我国芯片呆滞库存约159亿元,“抓现货”平台为芯片去库存提供重要渠道。 创新谷里,这样的企业比比皆是。武汉光谷地铁站,日均客流20万人次,日常监控尤为重要。其应用的人脸识别系统正是武汉烽火众智数字技术有限公司提供的,通过人脸识别,不仅可比对寻找犯罪嫌疑人,监控设备连身高、步态、背影等也可识别。 “凭借城市视频监控系统等智慧警务应用,去年销售额达到10亿元,年增长超过50%。如今,烽火众智已成为国内领先的智慧警务及智慧城市系统一站式供应商,今年的销售目标是20亿元。”该公司负责人说,在公安系统,“智慧城市”应用就涉及信通、刑侦、情报、反恐等业务。未来,这些关联业务都可在创新谷实现,有望再造10个“烽火众智”。 以龙头企业主导 构建良好双城生态 “我理解的双创,政府、企业、高校为三大主体。目前阶段,双创应由政府引导、龙头型企业主导、高校来做智力支撑。”夏存海说。 烽火创新谷正是按照这样的理念建成的。 当地政府出资引导,烽火科技集团、虹信通信、长江通信等龙头企业主导、湖北省多家高校作为智力支撑参与其中,通过构建生态型企业群,实现双创人才、资本与产业的集聚。 夏存海表示,龙头企业在烽火创新谷的“生态”环境中发挥着不可替代的主导作用,它们不仅帮助小微型创业企业成长,同时对于其自身的发展也有很大帮助。 虹信通信是烽火创新谷的一家龙头企业代表。该企业负责人罗昆初说:“烽火创新谷给我们带来了新的发展,我们公司承接的项目,不一定所有的项目任务都能靠我们自己完成,不是我们擅长的,可以把需求信息发在烽火创新谷,合适的公司会主动接单,我们共同完成一个项目,原本要三、五年完成的项目,现在两年就可以完成。” 同样的,近日,龙头企业烽火集成公司在做一个无纸化会议系统,有两项很重要的功能,在线批注和同屏功能。公司现有的研发团队中没有相关的开发经验,其就在平台发布项目信息,找到了相关的开发团队,提前一个月就将该项目交付。 像这样的例子还有很多,有数据显示,2017年1—4月,创新谷龙头企业共发布项目100余个,已支付的项目经费约360余万元。 “创业是有风险的,在烽火创新谷,业内资源配置相对容易。包括烽火在内的很多企业,都会不定期发布技术及产品需求,孵化器里的创客们可先从这些‘订单’入手,积累一定经验后再创业,降低市场风险。”夏存海说。 本文转自d1net(转载)

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册