2019年1月學習與工作中遇到的問題

      網友投稿 669 2025-04-01

      1、JVM內存分幾種?

      JVM內存分四種:

      棧區(stacksegment)—由編譯器自動分配釋放,存放函數的參數值,局部變量的值等,具體方法執行結束之后,系統自動釋放JVM內存資源。

      堆區(heapsegment)—一般由程序員分配釋放,存放由new創建的對象和數組,jvm不定時查看這個對象,如果沒有引用指向這個對象就回收

      靜態區(datasegment)—存放全局變量,靜態變量和字符串常量,不釋放

      代碼區(codesegment)—存放程序中方法的二進制代碼,而且是多個對象共享一個代碼空間區域。

      2、CRUD的含義:

      crud是指在做計算處理時的增加(Create)、讀取查詢(Retrieve)、更新(Update)和刪除(Delete)幾個單詞的首字母簡寫。crud主要被用在描述軟件系統中數據庫或者持久層的基本操作功能。

      3、集群系統下實現session統一

      應用服務器間的session復制共享(如tomcat session共享)

      session復制共享,主要是指集群環境下,多臺應用服務器之間同步session,使session保持一致,對外透明。 如果其中一臺服務器發生故障,根據負載均衡的原理,web服務器(apache/nginx)會遍歷尋找可用節點,分發請求,由于session已同步, 故能保證用戶的session信息不會丟失。

      此方案的不足之處:

      技術復雜,必須在同一種中間件之間完成(如:tomcat-tomcat之間).

      session復制帶來的性能損失會快速增加.特別是當session中保存了較大的對象,而且對象變化較快時, 性能下降更加顯著. 這種特性使得web應用的水平擴展受到了限制。

      Session內容序列化(serialize),會消耗系統性能。

      Session內容通過廣播同步給成員,會造成網絡流量瓶頸,即便是內網瓶頸。

      基于cache DB緩存的session共享

      基于redis緩存的session共享

      4、web集群時session同步的3種方法

      在做了web集群后,你肯定會首先考慮session同步問題,因為通過負載均衡后,同一個IP訪問同一個頁面會被分配到不同的服務器上, 如果session不同步的話,一個登錄用戶,一會是登錄狀態,一會又不是登錄狀態。所以本文就根據這種情況給出三種不同的方法來解決這個問題:

      一,利用數據庫同步session

      在做多服務器session同步時我沒有用這種方法,如果非要用這種方法的話,我想過二種方法:

      1,用一個低端電腦建個數據庫專門存放web服務器的session,或者,把這個專門的數據庫建在文件服務器上,用戶訪問web服務器時,會去這個專門的數據庫check一下session的情況,以達到session同步的目的。

      2,這種方法是把存放session的表和其他數據庫表放在一起,如果mysql也做了集群了話,每個mysql節點都要有這張表,并且這張session表的數據表要實時同步。

      說明:用數據庫來同步session,會加大數據庫的負擔,數據庫本來就是容易產生瓶頸的地方,如果把session還放到數據庫里面,無疑是雪上加霜。上面的二種方法,第一點方法較好,把放session的表獨立開來,減輕了真正數據庫的負擔

      二,利用cookie同步session

      session是文件的形勢存放在服務器端的,cookie是文件的形勢存在客戶端的, 怎么實現同步呢?方法很簡單,就是把用戶訪問頁面產生的session放到cookie里面,就是以cookie為中轉站。你訪問web服務器A,產生了 session把它放到cookie里面了,你訪問被分配到web服務器B,這個時候,web服務器B先判斷服務器有沒有這個session,如果沒有, 在去看看客戶端的cookie里面有沒有這個session,如果也沒有,說明session真的不存,如果cookie里面有,就把cookie里面的 sessoin同步到web服務器B,這樣就可以實現session的同步了。

      說明:這種方法實現起來簡單,方便,也不會加大數據庫的負擔,但是如果客戶端把cookie禁掉了的話,那么session就無從同步了,這樣會給網站帶來損失;cookie的安全性不高,雖然它已經加了密,但是還是可以偽造的。

      三,利用Nosql數據庫redis或者memcache同步session

      redis或memcache可以做分布式,如果沒有這功能,他也不能用來做session同步。他可以把web服務器中的內存組合起來,成為一個"內存池",不管是哪個服務器產生的sessoin都可以放到這個"內存池"中,其他的都可以使用。

      優點:以這種方式來同步session,不會加大數據庫的負擔,并且安全性比用cookie大大的提高,把session放到內存里面,比從文件中讀取要快很多。

      缺點:redis或memcache把內存分成很多種規格的存儲塊,有塊就有大小,這種方式也就決定了,memcache不能完全利用內存,會產生內存碎片,如果存儲塊不足,還會產生內存溢出。

      四,總結

      上面三種方法都是可行的

      第一種方法,最影響系統速度的那種,不推薦使用;

      第二種方法,效果不錯,不過安全隱患一樣的存在;

      第三種方法,個人覺得第三種方法是最好的,推薦使用

      5、開放數據庫連接(Open Database Connectivity,

      ODBC

      是為解決異構數據庫間的數據共享而產生的,現已成為WOSA(The Windows Open System Architecture ),Windows開放系統體系結構)的主要部分和基于Windows環境的一種數據庫訪問接口標準ODBC 為異構數據庫訪問提供統一接口,允許應用程序以SQL 為數據存取標準,存取不同DBMS管理的數據;使應用程序直接操縱DB中的數據,免除隨DB的改變而改變。用ODBC 可以訪問各類計算機上的DB文件,甚至訪問如Excel 表和ASCI I數據文件這類非數據庫對象。

      6、端口號被占用問題:

      1、根據端口號查找對應的進程號

      netstat -ano | findstr 80 //列出進程極其占用的端口,且包含 80

      2、據進程號尋找進程名稱

      tasklist | findstr 9268

      3、殺死80的進程號

      taskkill -PID <進程號> -F //強制關閉某個進程

      7、Spring Boot:常用注解

      2019年1月學習與工作中遇到的問題

      @Configuration?和@Bean

      Spring的Java配置方式是通過?@Configuration?和?@Bean這兩個注解實現的:

      1、@Configuration作用于類上,相當于一個xml配置文件;

      2、@Bean作用于方法上,相當于xml配置中的

      @PropertySource

      通過@PropertySource可以指定讀取的配置文件,通過@Value注解獲取值

      用法:

      @PropertySource(value = {"classpath:jdbc.properties","xxx"})

      @SpringBootApplication

      SpringBoot項目的核心注解,主要目的是開啟自動配置。;

      @Configuration

      這是一個配置Spring的配置類;

      @Controller

      標明這是一個SpringMVC的Controller控制器;

      @EnableAutoConfiguration

      啟用自動配置,該注解會使SpringBoot根據項目中依賴的jar包自動配置項目的配置項;

      @ComponentScan

      默認掃描@SpringBootApplication所在類的同級目錄以及它的子目錄。

      @Transactional

      當引入jdbc依賴之后,Spring Boot會自動默認分別注入DataSourceTransactionManager或JpaTransactionManager,所以我們不需要任何額外配置就可以用@Transactional注解進行事務的使用。

      web前端 數據庫

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:在幻燈片設計的任務窗格中,選中一個設計模板,其下拉菜單中“應用于”一欄為什么有時是兩項命令有時是三項命令
      下一篇:甘特圖的基本概念以及如何制定有效的項目進度管理策略
      相關文章
      亚洲日本在线播放| 国产亚洲精久久久久久无码77777 国产亚洲精品成人AA片新蒲金 | 亚洲色欲久久久综合网| 亚洲 综合 国产 欧洲 丝袜| 亚洲午夜无码久久久久小说| 2017亚洲男人天堂一| 2020国产精品亚洲综合网| 亚洲AV男人的天堂在线观看| 亚洲www在线观看| 亚洲熟妇成人精品一区| 亚洲欧美日韩自偷自拍| 亚洲一区AV无码少妇电影| 亚洲熟妇无码av另类vr影视| 亚洲日韩亚洲另类激情文学| 亚洲AV一区二区三区四区| 国产亚洲精品国产福利在线观看| 日产国产精品亚洲系列| 亚洲av无码专区在线观看素人| 最新亚洲人成网站在线观看| 亚洲高清无码专区视频| 亚洲无线一二三四区手机| 国产亚洲精品成人AA片新蒲金| 精品亚洲一区二区| 久久亚洲精品中文字幕| 亚洲午夜电影一区二区三区| 亚洲精品国产日韩| 午夜亚洲国产理论片二级港台二级| 理论亚洲区美一区二区三区| 亚洲国产婷婷香蕉久久久久久| 相泽亚洲一区中文字幕| 国产精品亚洲片在线| 久久久久亚洲精品天堂| 亚洲冬月枫中文字幕在线看| 亚洲熟妇无码八V在线播放| 国产成人高清亚洲一区久久| 久久久久国产亚洲AV麻豆| 亚洲AV无码第一区二区三区| 亚洲精品无码久久久久久久| 亚洲人和日本人jizz| 亚洲欧美精品午睡沙发| 亚洲国产日韩在线观频|