用友云開發者中心助你上云系列之在線調試

現在,大家開始越來越多的談論到高可用架構的互聯網應用。什么是高可用?高可用HA(High Availability)是分布式系統架構設計中必須考慮的因素之一,它通常是指,通過設計減少系統不能提供服務的時間。
當我們談論服務高可用的時候,我們通常聚焦在高并發、大流量、高可用性等關鍵字,企業上云,這些問題也是不可避免的。互聯網應用正在由單體應用架構演變為微服務架構,服務的拆分,使得部署在云的運行實例也指數級的增加。
但是!測試再充分的服務,在線上運行起來后,都可能會出現問題。這些問題可能跟架構設計有關,也可能是為了快速響應用戶需求在快速迭代中帶來的BUG.這些缺陷如同大堤上的蟻穴,隨時可能會引起線上服務的整體崩潰。
clipboard.png
在這種情況下,我們就需要研發人員能迅速定位問題,并將修復問題后的版本在用戶無感知的情況下快速上線,將缺陷的負面影響最小化。而線上問題的快速定位無非從日志分析、性能監控、線上環境的遠程調試等幾個方面入手。不同的方式適用于不同狀況,各有千秋。但在這些解決方案中,基于線上環境的遠程調試往往能夠迅速分析出原因并解決,問題的解決速度脫穎而出。
什么是Java遠程調試?
Java遠程調試的原理是兩個Java VM之間通過debug協議進行通信,然后以達到遠程調試的目的。兩者之間可以通過socket進行通信,被debug程序的Java虛擬機在啟動時開啟debug模式,啟動debug監聽程序。JDWP是Java Debug Wire Protocol的縮寫,它定義了調試器(debugger)和被調試的Java虛擬機(target vm)之間的通信協議。
target vm中運行著我們希望要調試的程序,它與一般運行的Java虛擬機沒有什么區別,只是在啟動時加載了Agent JDWP從而具備了調試功能。而debugger就是我們熟知的調試器,它向運行中的target vm發送命令來獲取 target vm運行時的狀態和控制Java程序的執行。Debugger和target vm分別在各自的進程中運行,他們之間的通信協議就是JDWP。
clipboard.png
如何使用開發者中心進行在線調試?
如果你已經使用了開發者中心部署應用(上云),那么,可以非常榮幸的告訴你,看完下面的步驟,只需幾秒鐘的配置,就可以解救你于水火之中。
clipboard.png
拋開一切煩惱,掏出你的筆記本電腦,準備開始具體的配置吧。
操作步驟
應用屬性增加環境變量
CATALINA_OPTS = -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
如圖:
clipboard.png
應用增加調試端口,需和步驟1中的屬性address=8000一致,如8000
如圖:
clipboard.png
保存并重啟實例
clipboard.png
實例重啟完畢后,點擊需要遠程調試的實例控制臺
在實例控制臺中輸入echo $PORT0,$PORT1,輸出信息為應用放開的端口對應該實例的數組,PORT0對應8080端口,PORT1對應實例的8000端口(即遠程調試使用的端口號)
clipboard.png
查看實例運行的主機
clipboard.png
配置開發工具IDE的遠程調試信息為步驟6的IP地址和步驟5獲得的端口
clipboard.png
至此,大功告成,你可以輕松的進行問題排查了。此過程也可以用于日常開發過程中的在線定位問題,面對眾多的微服務,無需再煩惱了。

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

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

相關文章

python根據財務指標尋找價值股票

確定股票池 from concurrent.futures import ThreadPoolExecutor import urllib import os from time import sleep import pandas as pd # 上證代碼 shanghaicode [] for i in range(600000, 606000, 1):shanghaicode.append(str(i))# 深證代碼 shenzhencode [] for i in r…

WPF Bitmap轉BitmapSource,Image

//引用:using System.Windows.Interop; //Imagingusing System.Drawing; //Bitmap public static Imaging.BitmapSource ConvertToBitmapSource(Bitmap btmap) { return Imaging.CreateBitmapSourceFromHBitmap(btmap.GetHbitmap(), IntPtr.Zero, Int32Rect.Empt…

解決jboss.resteasy.spi.UnhandledException: Response is committed, can‘t handle exception

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 報錯如題,如圖: 我的情況是:項目作壓測,這個接口請求量不大時是OK的 ,當達到…

linux下如何做ghost,又簡單又方便,很實用的方法!!!

Linux 做ghost 使用指南。 轉載時請注明本博客地址。 1. 使用unetbootin-windows-585.exe 軟件做 ubuntu 的liveusb ,一定是做liveusb,不是liveCD,如果你做的是liveCD,要把做好的文件拷出來,否則,重…

Webpack4: Tree-shaking 深度解析

什么是Tree-shaking 所謂Tree-shaking就是‘搖’的意思,作用是把項目中沒必要的模塊全部抖掉,用于在不同的模塊之間消除無用的代碼,可列為性能優化的范疇。 Tree-shaking早期由rollup實現,后來webpack2也實現了Tree-shaking的功能…

真格量化——GFTD策略

#!/usr/bin/env python # coding:utf-8 from PoboAPI import * import datetime import numpy as np import math#開始時間,用于初始化一些參數 def OnStart(context) :print "I\m starting..."#設置全局變量g.signalcount = 0 g.signal_list = []g.buysignal = 0 g…

解決org.hibernate.loader.custom.NonUniqueDiscoveredSqlAliasException: Encountered a duplicated sql ...

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 報錯如題: org.hibernate.loader.custom.NonUniqueDiscoveredSqlAliasException: Encountered a duplicated sql alias [id]…

Spring WebFlux 響應式編程學習筆記(一)

各位Javaer們,大家都在用SpringMVC吧?當我們不亦樂乎的用著SpringMVC框架的時候,Spring5.x又悄(da)無(zhang)聲(qi)息(gu)的推出了Spring WebFlux。web? 不是已經有SpringMVC這么好用的東西了么,為啥又冒出個WebFlux?…

Django Rest Framework -解析器

基本代碼結構 urls.py rom django.conf.urls import url, include from web.views.s5_parser import TestViewurlpatterns [url(rtest/, TestView.as_view(), nametest), ]views.py from rest_framework.views import APIView from rest_framework.response import Response f…

真格量化——菜粕策略

#!/usr/bin/env python # coding:utf-8 from PoboAPI import * import datetime import time import numpy as np from copy import *#開始時間,用于初始化一些參數 def OnStart(context) :context.myacc = None#登錄交易賬號if context.accounts["回測期貨"].Login…

PostgreSQL查看版本信息

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 1.查看客戶端版本 psql --version 1 2.查看服務器端版本 2.1 查看詳細信息 select version(); 1 2.2 查看版本信息 show server_ve…

U盤版便攜式Linux制作, casper-rw 解析

一直都在想,不管用誰的電腦,我都可以得到一個完全一致的工作環境,上面有我喜愛的軟件,有我保存的重要資料,甚至瀏覽器的各種偏好都得一模一樣!現在的云計算技術可以部分解決這個問題,但是遠遠不…

真格量化-50ETF期權波動率策略

#!/usr/bin/env python # coding:utf-8 from PoboAPI import * import datetime import time import numpy as np #日線級別 #開始時間,用于初始化一些參數 def OnStart(context) :print("I\m starting...")#設定一個全局變量品種,本策略交易50ETF期權g.code = Get…

canvas反向裁剪技巧

我們都知道在canvas 可以通過clip來實現剪裁功能,其步驟一般是先設置要裁剪的區域(路徑),然后通過ctx.clip()的實現裁剪,裁剪之后,后續的繪制只能在裁剪的區域顯示效果,比如如下一段代碼&#x…

set 和select 的區別

簡單賦值是沒有區別的 轉載于:https://www.cnblogs.com/bingyizhihun/p/10597908.html

postgres大版本升級

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。進行升級版本之前請一定做好備份!查看當前版本:[postgresnode1 ~]$ psqlpsql (9.4.4)Type "help" for h…

馬上有錢:揭密25種成為有錢人的方法(圖)

1、做你真正感興趣的事—你會花很多時間在上面,因此你一定要感興趣才行,如果不是這樣的話,你不愿意把時間花在上面,就得不到成功。 2、自己當老板。為別人打工,你絕不會變成巨富,老板一心一意地縮減開支&a…

無人承運平臺系統流程圖

轉載于:https://www.cnblogs.com/procedureMonkey/p/10598052.html

Neither the JAVA_HOME nor the JRE_HOME environment variable is defined

Centos7.5 啟動tomcat報錯 報錯: Neither the JAVA_HOME nor the JRE_HOME environment variable is defined At least one of these environment variable is needed to run this program原因:沒有安裝java 解決方法:安裝java yum install java -y轉載于:https://www.cnblogs…

讓自己變成一個上進的人

1.認真設計你的環境2.引入外部監督 求“綁架”3.獲取不確定的反饋4.選擇一條既細密,又永無止境的職業上升臺階。轉載于:https://www.cnblogs.com/Julietma/p/10600241.html