新一代分布式鏈路追蹤skywalking編碼實戰教程(下)

🚀 作者 :“二當家-小D”
🚀 博主簡介:?前荔枝FM架構師、阿里資深工程師||曾任職于阿里巴巴擔任多個項目負責人,8年開發架構經驗,精通java,擅長分布式高并發架構,自動化壓力測試,微服務容器化k8s等
🚀 歡迎小伙伴們 點贊👍、收藏?、留言💬
🍅文末獲取源碼聯系 配套筆記打包🍅

🔗往期文章傳送門:

快速入門SpringCloudAlibaba實戰篇【SpringBoot3.x + JDK17】!

高并發解決方案:Sentinel的流量控制、熔斷與OpenFeign整合實戰 !
構建微服務網關:SpringCloud Gateway快速入門!
AlibabaCloud微服務下的鏈路追蹤系統實戰詳解!

新一代分布式鏈路追蹤skywalking實戰(上)

目錄

    • 一、 Springboot整合分布式鏈路追蹤SkyWalking
      • 1. 鏈路追蹤-Springboot項目環境搭建
      • 2. SpringBoot+MybaitsPlus+Mysql開發測試接口
      • 3. 分布式鏈路追蹤的臥底 Skywalking Agent 探針介紹
      • 4. IDEA編輯器配置Skywalking-Agent鏈路采集實戰
    • 二、分布式鏈路追蹤SkyWalking進階實戰
      • 1. 自定義SkyWalking鏈路追蹤配置實戰
      • 2. SkyWalking-RocketBot性能剖析講解
      • 3. SkyWalking鏈路追蹤-日志和RPC上報實戰
      • 4. 源碼部署 Apache SkyWalking實戰
      • 5. SkyWalking鏈路追蹤-告警模塊和WebHook通知《上》
      • 6. SkyWalking鏈路追蹤-告警模塊和WebHook通知《下》
      • 7. Jar包和微服務方式打包運行整合Skywalking實戰

一、 Springboot整合分布式鏈路追蹤SkyWalking

1. 鏈路追蹤-Springboot項目環境搭建

簡介:鏈路追蹤-框架Springboot項目搭建

  • Springboot介紹
    • GitHub地址:https://github.com/spring-projects/spring-boot
    • 官方文檔:https://spring.io/guides/gs/spring-boot/
    • 視頻地址:https://item.taobao.com/item.htm?id=618384570391
    • 在線創建:https://start.spring.io/
  • 相關的軟件環境
    • jdk11+maven3.5+ Mysql8.0
    • 編輯器IDEA
  • 創建一個Springboot項目

image-20220513181248421

  • 創建數據庫導入數據 (自己安裝Mysql8)
    • 庫名xdclass_sky_shop
CREATE TABLE `product` (`id` bigint NOT NULL,`title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '商品標題',`detail` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '詳情',`img` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '圖片',`amount` decimal(16,0) DEFAULT NULL COMMENT '現價',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;INSERT INTO `xdclass_sky_shop`.`product` (`id`, `title`, `detail`, `img`, `amount`) VALUES (1, '商用短鏈平臺-海量數據項目大課', '打造最佳簡歷項目的,短鏈平臺大課項目', 'https://file.xdclass.net/video/2022/71-HLSJCL/05.jpeg', 66);INSERT INTO `xdclass_sky_shop`.`product` (`id`, `title`, `detail`, `img`, `amount`) VALUES (2, '新一代AlibabaCloud全家桶實戰', '高并發分布式項目', 'https://file.xdclass.net/video/2022/71-HLSJCL/05.jpeg', 88);INSERT INTO `xdclass_sky_shop`.`product` (`id`, `title`, `detail`, `img`, `amount`) VALUES (3, '小滴課堂永久會員', '觀看全部IT專題視頻,永久有效', 'https://file.xdclass.net/video/2022/banner/03.jpeg', 999);INSERT INTO `xdclass_sky_shop`.`product` (`id`, `title`, `detail`, `img`, `amount`) VALUES (4, '架構大課訓練營', '全方位提升綜合能力,存儲、網絡、架構、解決方案', 'https://file.xdclass.net/video/2022/72-ShardingJDBC/banner.jpeg', 79);

2. SpringBoot+MybaitsPlus+Mysql開發測試接口

簡介:SpringBoot+MybaitsPlus+Mysql開發測試接口

  • 添加依賴配置
        <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.26</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.1</version></dependency>
  • 添加配置
server.port=8081
#==============================數據庫相關配置========================================
spring.datasource.driver-class-name =com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://112.74.107.230:3307/xdclass_sky_shop?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username =root
spring.datasource.password =xdclass.net168#配置mybatis plus打印sql日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
  • 開發接口
    • 商品列表接口
    • 商品詳情接口
  • 代碼
@SpringBootApplication
@MapperScan("net.xdclass.xdclassskydemo.mapper")
public class XdclassSkyDemoApplication {public static void main(String[] args) {SpringApplication.run(XdclassSkyDemoApplication.class, args);}}@RestController
@RequestMapping("/api/product/v1")
public class ProductController {@Autowiredprivate ProductService productService;/*** 查看商品列表接口** @return*/@GetMapping("list")public JsonData list() {List<ProductDO> list = productService.list();return JsonData.buildSuccess(list);}/*** 查看商品詳情** @param productId* @return*/@GetMapping("/detail/{product_id}")public JsonData detail(@PathVariable("product_id") long productId) {ProductDO productDO = productService.findDetailById(productId);return JsonData.buildSuccess(productDO);}
}@Service
public class ProductOrderServiceImpl implements ProductService {@Autowiredprivate ProductMapper productMapper;@Overridepublic List<ProductDO> list() {return productMapper.selectList(new QueryWrapper<>());}@Overridepublic ProductDO findDetailById(long productId) {return productMapper.selectOne(new QueryWrapper<ProductDO>().eq("id", productId));}
}public interface ProductMapper extends BaseMapper<ProductDO> {}@TableName("product")
public class ProductDO {private Long id;/*** 商品標題*/private String title;/*** 詳情*/private String detail;/*** 圖片*/private String img;/*** 現價*/private BigDecimal amount;// set、get方法
}

3. 分布式鏈路追蹤的臥底 Skywalking Agent 探針介紹

簡介:分布式鏈路追蹤的臥底 Skywalking Agent 探針介紹

  • 什么SkyWalking探針
    • 探針表示集成到目標系統中的代理或 SDK 庫,即收集并格式化數據, 并發送到后端 包括鏈路追蹤和性能指標
  • Skywalking-Agent的安裝和使用
    • 下載skywalking
      • 地址:https://skywalking.apache.org/downloads/

image-20220511134627972

  • skywalking-agen目錄文件的介紹

    • logs:skywalking agent的相關運行日志
    • bootstrap-plugins:插件包
    • optional-plugins:插件包(可供選擇的插件包,如果需要生效則需要拷貝到plugins包下)
    • plugins:插件包(生效的插件包,支持多個框架鏈路追蹤)
    • optional-reporter-plugins:插件包
    • activations:插件包
    • config: 配置文件
    • skywalking-agent.jar:agent代理的jar包(主要是這個!)
  • skywalking-agent的使用方式

    • 優先級:探針-> JVM配置-> 環境變量配置 -> agent.config(優先級低)
    • 第一種-javaagent:/path/to/skywalking-agent.jar={config1}={value1},{config2}={value2}
    -javaagent:../skywalking-agent.jar=agent.service_name=XdclassApp,collector.backend_service=127.0.0.1:11800
    
    • 第二種:-Dskywalking.[option1]=[value2]
    -javaagent: ../skywalking-agent.jar -Dskywalking.agent.service_name=XdclassApp -Dskywalking.collector.backend_service=127.0.0.1:11800
    
    • agent.service_name:客戶端服務名,在apm系統中顯示的服務名稱
    • collector.backend_service:SW上傳的服務地址

4. IDEA編輯器配置Skywalking-Agent鏈路采集實戰

簡介:IDEA編輯器配置Skywalking-Agent鏈路采集實戰

  • IDEA編輯器里面配置Skywalking-Agent

    • agent.service_name:客戶端服務名,在apm系統中顯示的服務名稱
    • collector.backend_service:SW上傳的服務地址
    -javaagent:/Users/xdclass/Desktop/agent/skywalking-agent.jar -Dskywalking.agent.service_name=XdclassShop -Dskywalking.collector.backend_service=120.79.150.146:11800
    

image-20220513211348208

  • 請求接口(多幾次)

    • 商品列表接口
    • 商品詳情接口
  • 查看RocketBot界面數據

    • 注意:如果沒數據,分析數據鏈路,端口、程序日志分析

二、分布式鏈路追蹤SkyWalking進階實戰

1. 自定義SkyWalking鏈路追蹤配置實戰

簡介:自定義 SkyWalking鏈路追蹤配置實戰

  • 什么是TraceId

    • 用來標識一條請求鏈路,一條請求鏈路中包含一個Trace ID,多個Span ID
  • 背景

    • 對業務代碼進行鏈路追蹤,方便排查問題
    • 比如,某個接口請求耗時慢,想對業務接口方法進行追蹤
    • controller->service 方法,記錄業務方法加入到鏈路中,記錄入參、返回值等
  • 編碼

    • 添加依賴
    <dependency><groupId>org.apache.skywalking</groupId><artifactId>apm-toolkit-trace</artifactId><version>8.5.0</version>
    </dependency>
    
    • 業務方法添加注解
    @Trace
    
    • 記錄入參和返回值
      • POJO記得重寫toString方法
    @Tags({@Tag(key = "方法名-input", value = "arg[0]"), @Tag(key = "方法名-output", value = "returnedObj")}
    )
    
  • 缺點

    • 代碼有侵入性

2. SkyWalking-RocketBot性能剖析講解

簡介:SkyWalking-RocketBot性能剖析講解

  • 性能剖析
    • 新建任務:新建需要分析的端點
    • 左側列表:對任務進行采樣
    • 右側:每個端點的鏈路信息
    • 性能分析:可以查看對應方法的調用棧,找出問題點
      • 直接定位到代碼方法和代碼行
    • 注意:一個服務在監控持續時間內只能設置一個端點監控任務

image-20220513152406769

image-20220513152755553

image-20220515180807195

3. SkyWalking鏈路追蹤-日志和RPC上報實戰

簡介: SkyWalking鏈路追蹤-日志和RPC上報實戰

  • 背景

    • 用戶請求接口,怎么在我們日志中找到traceId來跟蹤系統調用鏈路

    • 需要在系統日志打印出traceId

    • 注意(重要)

      • 由于阿里云選擇的的服務器和帶寬不高,安裝了多個組件 oap、ui、es7等
      • 所以測試的時候有時數據有延遲、或者服務器壓力過高,有時數據出不來,刷新頁面幾次才出來數據
      • 如果本地有docker環境和機器配置高,也可以本地進行安裝skywalking相關組件
      • 后續也有源碼安裝
  • 實戰

    • 添加依賴
    <dependency><groupId>org.apache.skywalking</groupId><artifactId>apm-toolkit-logback-1.x</artifactId><version>8.5.0</version>
    </dependency>
    
    • 配置logback打印日志(SpringBoot默認使用Logback),配置文件名 logback.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>  <!-- 控制臺輸出 --><appender name="console" class="ch.qos.logback.core.ConsoleAppender"><encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder"><layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout"><Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%tid] [%thread] %-5level %logger{36} -%msg%n</Pattern></layout></encoder></appender><!--系統操作日志--><root level="INFO">  <appender-ref ref="console"/> </root>
    </configuration>
    
    • 代碼打印日志
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;Logger logger = LoggerFactory.getLogger(ProductController.class);//代碼中 logger.info 打印日志
    
    • 將日志上傳到skywalking oap中,查看更方便
    <!-- skywalking grpc 日志收集上報服務端 8.4.0版本后支持 -->
    <appender name="grpc-log" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender"><encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder"><layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.mdc.TraceIdMDCPatternLogbackLayout"><Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%tid] [%thread] %-5level %logger{36} -%msg%n</Pattern></layout></encoder></appender><!--系統操作日志--><root level="INFO">  <appender-ref ref="console"/> <appender-ref ref="grpc-log"/></root>
    
  • 注意

    • skywaling agent 默認是上傳到本地的oap,如果oap server地址不是本地,則需要單獨配置oap server地址
    • agent文件夾里面config配置
    #日志數據的grpc服務器的主機
    plugin.toolkit.log.grpc.reporter.server_host=${SW_GRPC_LOG_SERVER_HOST:120.79.150.146} 
    #日志數據的grpc服務器的端口
    plugin.toolkit.log.grpc.reporter.server_port=${SW_GRPC_LOG_SERVER_PORT:11800}
    #日志數據的最大大小
    plugin.toolkit.log.grpc.reporter.max_message_size=${SW_GRPC_LOG_MAX_MESSAGE_SIZE:10485760}
    #發送數據時將超時多長時間。單位是秒
    plugin.toolkit.log.grpc.reporter.upstream_timeout=${SW_GRPC_LOG_GRPC_UPSTREAM_TIMEOUT:30}#下面是正式:不加中文注釋plugin.toolkit.log.grpc.reporter.server_host=${SW_GRPC_LOG_SERVER_HOST:120.79.150.146}
    plugin.toolkit.log.grpc.reporter.server_port=${SW_GRPC_LOG_SERVER_PORT:11800}
    plugin.toolkit.log.grpc.reporter.max_message_size=${SW_GRPC_LOG_MAX_MESSAGE_SIZE:10485760}
    plugin.toolkit.log.grpc.reporter.upstream_timeout=${SW_GRPC_LOG_GRPC_UPSTREAM_TIMEOUT:30}
    

    image-20220515232102295

4. 源碼部署 Apache SkyWalking實戰

簡介: 本地源碼部署 Apache SkyWalking實戰

  • 基礎環境(win和linux都在支持,但是推薦Linux系統進行操作,win存在坑)

    • 安裝jdk8或者jdk11(資料包里有)

    • SkyWalking源碼(資料里有)

    • 實戰是Mac蘋果系統,底層和Linux CentOS是一樣,常規操作命令一致

    • 注意:SkyWalking的路徑里面不要有中文,最好空格也不要有,導致啟動失敗

      image-20220516100038206

  • config配置文件 application.yml

    • 存儲
      • H2(默認)
      • ElasticSearch 6, 7
      • MySQL
      • TiDB
      • InfluxDB

image-20220516101726739

  • 本地部署SkyWalking

    • 方式一命令
    bin/startup.sh
    
    • 方式二:分別依次啟動
    #端口 11800
    bin/oapService.sh#端口8080
    bin/webappService.sh
    
    • 查看日志
    #oap日志
    skywalking-oap-server.log
    #ui界面日志
    webapp.log
    
  • 如果本地部署,則訪問

    • localhost:8080

5. SkyWalking鏈路追蹤-告警模塊和WebHook通知《上》

簡介: SkyWalking鏈路追蹤-告警模塊和WebHook《上》

  • 需求
    • 監控業務相關接口性能,超過閾值則觸發告警功能
    • 通過調用webhook接口進行觸發,具體的webhook接口地址可以自行定義路徑
      • 注意:要OAP Server的網絡可以觸發的webhook接口
    • 開發人員可以在webhook接口中編寫告警方式,比如郵件、短信等,就是一個http接口

image-20220516105015870

  • Apache Skywalking默認的告警規則配置

    • 安裝目錄下的con?g文件夾下 alarm-settings.yml文件

    • 默認內置多個規則

      • 最近3分鐘內服務的平均響應時間超過1秒
      • 最近2分鐘服務成功率低于80%
      • 最近3分鐘90%服務響應時間超過1秒
      • 最近2分鐘內服務實例的平均響應時間超過1秒
    • 配置講解

      • metrics-name 腳本中的度量名稱
      • threshold 閾值
      • op 比較操作符,可以設定>,<,=
      • period 多久檢查一次當前的指標數據是否符合告警規則,單位分鐘
      • count 達到多少次后,觸發告警消息
      • silence-period 在多久時間之內,忽略相同的告警消息,在時間T觸發了某告警,那么在(T+10)這個時間段,不會再次觸發相同告警
      • message 告警消息內容
      • webhooks 配置告警產生時的觸發的調用地址

6. SkyWalking鏈路追蹤-告警模塊和WebHook通知《下》

簡介: SkyWalking鏈路追蹤-告警模塊和WebHook《下》

  • 編碼實戰

    //實體類
    public class AlarmMessage  {private int scopeId;private String scope;private String name;private String id0;private String id1;private String ruleName;private String alarmMessage;private long startTime;private transient int period;private transient boolean onlyAsCondition;//set get方法
    }@RestController
    public class CallbackController {private List<AlarmMessage> messageList = new ArrayList<>();@PostMapping("/webhook")public void  webhook(@RequestBody List<AlarmMessage> alarmMessageList){System.out.println("收到消息:" +alarmMessageList);messageList = alarmMessageList;}@GetMapping("/show")public List<AlarmMessage> show(){return messageList;}
    }
  • 配置webhook接口,POST方式推送

    • 注意:要重啟oap server!!!
    webhooks:- http://127.0.0.1:8081/webhook/
    
  • 測試請求路徑

    • 修改睡眠時間為2秒,模擬接口響應慢
  • 結果

    [AlarmMessage{scopeId=2, scope='SERVICE_INSTANCE', name='abecc615d94a48bea4bf95b3c510d398@192.168.0.107 of XdclassShop', id0='WGRjbGFzc1Nob3A=.1_YWJlY2M2MTVkOTRhNDhiZWE0YmY5NWIzYzUxMGQzOThAMTkyLjE2OC4wLjEwNw==', id1='', ruleName='service_instance_resp_time_rule', alarmMessage='Response time of service instance abecc615d94a48bea4bf95b3c510d398@192.168.0.107 of XdclassShop is more than 1000ms in 2 minutes of last 10 minutes', startTime=1652693421403, period=0, onlyAsCondition=false}]
    

7. Jar包和微服務方式打包運行整合Skywalking實戰

簡介: 微服務和Jar方式打包運行整合Skywalking實戰

  • 項目打包

    • springboot項目和springcloud項目都一樣,jar方式運行

    • 通過java -jar 加入參數

    • 項目打包

      mvn install
      
  • 例子

    java -jar -javaagent:/Users/xdclass/Desktop/agent/skywalking-agent.jar -Dskywalking.agent.service_name=XdclassShop -Dskywalking.collector.backend_service=127.0.0.1:11800 xdclass-sky-0.0.1-SNAPSHOT.jar
    

今天的文章就分享到這了,希望對你有幫助,關注D哥,下期分享更多干貨內容!

資料獲取📚
完整代碼和筆記已經準備好,如果有問題,可以在評論區留言討論💬
原創不易,別忘了點贊👍+收藏?哦!
點擊下方鏈接即可獲取完整資料壓縮包🎁,快來領取吧!↓↓↓↓

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/13600.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/13600.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/13600.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

PostgresSQL開啟歸檔模式

文章目錄 一、查詢數據庫歸檔是否開啟1、查看數據目錄(找出conf文件位置)2、查看歸檔是否開啟 二、開啟歸檔模式&#xff08;開啟后有一定的性能損耗&#xff09;1、創建歸檔目錄2、修改postgresql.conf配置文件3、重啟pg 三、驗證歸檔情況1、查看歸檔是否開啟2、檢查點 , 刷新…

利用遠控工具橫向

一.橫向移動介紹和方式 1.介紹 內網滲透的橫向移動是指攻擊者在成功進入內網后&#xff0c;通過利用內部系統的漏洞或者獲取的合法訪問權限&#xff0c;從一個受感染的系統向其他系統擴散或移動。這種橫向移動的目的通常是為了獲取更多的敏感信息、提升權限、擴大攻擊面或者更…

【藍橋杯】

題目列表 - 洛谷 | 計算機科學教育新生態 (luogu.com.cn) #include<bits/stdc.h> using llunsigned long long; #define int ll const int N2e510; int k0; std::string s; int a,b,c,d; void solve() {char op;std::cin>>op;if(opA){std::string s;for(int i1;i&l…

文心一言指令解析

1、介紹 文心一言是一款靈感啟發類的產品&#xff0c;它以簡潔而深刻的文字表達來激發讀者的思考和感悟。該產品通過每天提供一句精選的短語&#xff0c;讓用戶在繁忙的生活中停下腳步&#xff0c;思考人生和內心的真實需求。 每一句文心一言都經過精心挑選&#xff0c;它們通…

小程序-滾動觸底-頁面列表數據無限加載

// index/index.vue <template> <!-- 自定義導航欄 --> <CustomNavbar /> <scroll-view scrolltolower"onScrolltolower" scroll-y class"scroll-view"> <!-- 猜你喜歡 --> <Guess ref"guessRef" /> </s…

Hugging Face的TrainingArguments常用參數學習

Hugging Face的TrainingArguments類是用于設置和管理訓練模型時的各種參數。下面是一些關鍵參數及其原理和使用示例&#xff1a; 1. 輸出目錄 (output_dir) 描述&#xff1a;保存模型和檢查點的目錄。 示例&#xff1a; output_dir./results2. 訓練和驗證批次大小 (per_devi…

藍橋杯高頻考點真題單——4.修改數組

修改數組 8.修改數組 - 藍橋云課 (lanqiao.cn) 本來我的思路很一般&#xff0c;用一個set&#xff0c;記錄每一段的最值&#xff0c;然后分情況討論&#xff0c;如果查詢到未記錄的&#xff0c;那就直接輸出&#xff0c;并記錄。如果當前值前面已經有過&#xff0c;那就直接從…

惡劣天氣下的車輛探測:多方關注 多模態融合方法

摘要 在自動駕駛汽車技術領域&#xff0c;多模式車輛檢測網絡(MVDNet)代表了一個重大的飛躍&#xff0c;特別是在具有挑戰性的天氣條件下。本文主要通過集成多頭關注層對MVDNet進行增強&#xff0c;旨在改進其性能。MVDNet模型中集成的多頭關注層是一個關鍵的改進&#xff0c;…

民國漫畫雜志《時代漫畫》第14期.PDF

時代漫畫14.PDF: https://url03.ctfile.com/f/1779803-1247458399-6732ac?p9586 (訪問密碼: 9586) 《時代漫畫》的雜志在1934年誕生了&#xff0c;截止1937年6月戰爭來臨被迫停刊共發行了39期。 ps:資源來源網絡&#xff01;

java+ vue.js+uniapp一款基于云計算技術的企業級生產管理系統,云MES源碼 MES系統如何與ERP系統集成?

java vue.jsuniapp一款基于云計算技術的企業級生產管理系統&#xff0c;云MES源碼&#xff0c;MES系統如何與ERP系統集成&#xff1f; MES系統&#xff08;制造執行系統&#xff09;與ERP系統&#xff08;企業資源規劃系統&#xff09;的集成可以通過多種方式實現&#xff0c;這…

探索亞馬遜云科技技術課程:大模型平臺與提示工程的應用與優化

上方圖片源自亞馬遜云科技【生成式 AI 精英速成計劃】技術開發技能課程 前言 學習了亞馬遜云科技–技術開發技能課程 本課程分為三個部分&#xff0c;了解如何使用大模型平臺、如何訓練與部署大模型及生成式AI產品應用與開發&#xff0c;了解各類服務的優勢、功能、典型使用案…

蘋果MacOS系統使用微軟遠程桌面連接Windows電腦桌面詳細步驟

文章目錄 前言1. 測試本地局域網內遠程控制1.1 Windows打開遠程桌面1.2 局域網遠程控制windows 2. 測試Mac公網遠程控制windows2.1 在windows電腦上安裝cpolar2.2 Mac公網遠程windows 3. 配置公網固定TCP地址 前言 日常工作生活中&#xff0c;有時候會涉及到不同設備不同操作系…

Vue3實戰筆記(38)—粒子特效終章

文章目錄 前言一、怎樣使用官方提供的特效二、海葵特效總結 前言 官方還有很多漂亮的特效&#xff0c;但是vue3只有一個demo&#xff0c;例如我前面實現的兩個頁面就耗費了一些時間&#xff0c;今天記錄一下tsparticles官方內置的幾個特效的使用方法&#xff0c;一般這幾個就足…

微信小程序---小程序文檔配置(2)

一、小程序文檔配置 1、小程序的目錄結構 1.1、目錄結構 小程序包含一個描述整體程序的 app 和多個描述各自頁面的 page 一個小程序主體部分由三個文件組成&#xff0c;必須放在項目的根目錄 比如當前我們的《第一個小程序》項目根目錄下就存在這三個文件&#xff1a; 1…

新媒體運營十大能力,讓品牌聞達天下!

" 現在新媒體蓬勃發展&#xff0c;很多品牌都有新媒體運營這個崗位。新媒體運營好的話&#xff0c;可以提高公司品牌曝光、影響力。那新媒體運營具備什么能力&#xff0c;才能讓品牌知名度如虎添翼呢&#xff1f;" 信息收集能力 在移動互聯網時代&#xff0c;信息的…

單細胞分析(Signac): PBMC scATAC-seq 聚類

引言 在本教學指南中&#xff0c;我們將探討由10x Genomics公司提供的人類外周血單核細胞&#xff08;PBMCs&#xff09;的單細胞ATAC-seq數據集。 加載包 首先加載 Signac、Seurat 和我們將用于分析人類數據的其他一些包。 if (!requireNamespace("EnsDb.Hsapiens.v75&qu…

JVM嚴鎮濤版筆記【B站面試題】

前言 2023-06-19 18:49:33 出自B站 灰灰的Java面試 楓葉云鏈接&#xff1a;http://cloud.fynote.com/s/4976 JVM面試題大全 Lecturer &#xff1a;嚴鎮濤 1.為什么需要JVM&#xff0c;不要JVM可以嗎&#xff1f; 1.JVM可以幫助我們屏蔽底層的操作系統 一次編譯&#xff0c…

C語言 數組——計算最大值的函數實現

目錄 計算最大值 計算最大值的函數實現 應用實例&#xff1a;計算班級最高分?編輯?編輯 返回最大值所在的下標位置 返回最大值下標位置的函數實現?編輯 一個綜合應用實例——青歌賽選手評分?編輯?編輯?編輯?編輯?編輯 計算最大值 計算最大值的函數實現 應用實例&…

音視頻開發4-補充 FFmpeg 開發環境搭建 -- 在windows 上重新build ffmpeg

本節的目的是在windows 上 編譯 ffmpeg 源碼&#xff0c;這樣做的目的是&#xff1a;在工作中可以根據工作的實際內容裁剪 ffmpeg&#xff0c;或者改動 ffmpeg 的源碼。 第一步 &#xff1a;下載&#xff0c; 安裝&#xff0c;配置 &#xff0c;運行 msys64 下載 下載地址&…

【paper】基于分布式采樣的多機器人編隊導航信念傳播模型預測控制

Distributed Sampling-Based Model Predictive Control via Belief Propagation for Multi-Robot Formation NavigationRAL 2024.4Chao Jiang 美國 University of Wyoming 預備知識 馬爾可夫隨機場&#xff08;Markov Random Field, MRF&#xff09; 馬爾可夫隨機場&#xff…