于吉吉的技術博客

          建造高性能門戶網

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            65 隨筆 :: 6 文章 :: 149 評論 :: 0 Trackbacks

          08 2010 檔案

               摘要: 記得問過身邊的一些開發工程師(非前端)緩存要分幾個層次,從哪里做起,答案很多,比如反向代理緩存,DNS緩存,memcached,數據庫緩存等等,確實很完整,不過好像漏掉了我們用戶跟我們聯通的最根本的工具瀏覽器,確實好似很少有人把用戶的瀏覽器當作是web站點的組成部分來看待

          緩存協商
          現在我們需要將用戶的瀏覽器也納入我們構建網站各個緩存層次中的其中一個重要層次,網站信息和內容在由web服務器生成,而將這些信息和內容作為一段二進制的文件作為本地緩存文件存放在用戶的瀏覽器,是兩個獨立個體共同完成的任務,所以兩者之間需要一種溝通的機制,也就是HTTP的緩存協商

          Last-Modified和If-Modified-Since協商
          Last-Modified和If-Modified-Since分別位于響應頭信息和請求頭信息中,都是記錄請求的頁面最后的修改時間
          在第一次訪問web服務器會返回200狀態,并在瀏覽器的響應頭Last-Modified上寫上此頁面最后修改的時間戳
          使用firebug進行查看


            閱讀全文
          posted @ 2010-08-25 00:03 陳于喆 閱讀(6439) | 評論 (0)  編輯

               摘要: 檢查從服務器一般使用show slave status命令來檢查

          mysql> SHOW SLAVE STATUS\G
          *************************** 1. row ***************************
          Slave_IO_State: Waiting for master to send event
          Master_Host: 192.168.0.100
          Master_User: root
          Master_Port: 3306
          Connect_Retry: 3
          Master_Log_File: mysql-bin.003
          Read_Master_Log_Pos: 79
          Relay_Log_File: mysql -relay-bin. 003
          Relay_Log_Pos: 548
          Relay_Master_Log_File: mysql -bin. 003
          Slave_IO_Running: Yes
          Slave_SQL_Ru  閱讀全文
          posted @ 2010-08-23 21:35 陳于喆 閱讀(4082) | 評論 (0)  編輯

               摘要: 前段時間我們的系統接到新增多一個頻道的需求,原本我們的系統只是針對于廣州的業務,現在需要新增另一個城市上海,經過和產品人員溝通和分析,城市之間的業務邏輯除了一些小差異基本還是一樣的,數據庫的結構經過整合兩個城市也可以達到一樣的結構,但上海需要獨立出另一個數據庫.

          我們以前發布器的做法是用作為方法的一個參數由調用者一直傳到訪問對象(索引或數據庫),雖然這種做法一樣可以很快的實現,但是將數據庫,索引的選擇和業務邏輯混搭在一起的設計在感覺上是比較混亂,并且不利于將來多個城市(頻道)的建立,所以選了通過ThreadLocal來實現多數據源的動態切換.

          ThreadLocal 是一個依賴于執行線程的存儲器,對它就只有簡單的一個set和get方法,不同線程之間是相互獨立的。簡單地講,就是:這個線程set了一個對象入去,只有這個線程自己可以把它get出來,其它線程是get不出來的。

          好了,下面是具體顯示的方式

          首先定義一個filter,通過filter取得域名,因為我們的域名中帶有城市的標志,如廣州是http://gz.***.  閱讀全文
          posted @ 2010-08-23 16:22 陳于喆 閱讀(3464) | 評論 (1)  編輯

               摘要: 前天遷移了一個老系統,用的mysql是4.0要遷移到5.0的環境下,發現了一個問題,在password()函數上發生錯誤,查一查原來password()函數在mysql5.0已經發生了變換
          在mysql4.0下

          mysql> select password('abc');
          +------------------+
          | password('abc') |
          +------------------+
          | 7cd2b5942be28759 |
          +------------------+

          而在mysql5.0下

          select password('abc');
          +-------------------------------------------+
          | password('abc') |
          +-------------------------------------------+
          | *  閱讀全文
          posted @ 2010-08-23 10:41 陳于喆 閱讀(292) | 評論 (0)  編輯

               摘要: 由于系統需求需要對各個接口進行key-value緩存(以參數為key,返回的對象為value),當然對于這種情況首先考慮到的是使用aop,前段時間看過 aspectj的一些介紹,借此機會正好加以應用和體會一下,aspectj是AOP最早成熟的java實現,它稍微擴展了一下java語言,增加了一些 keyword等,具體的aspectj的基本語法見[ur=http://today.java.net/pub/a/today/2003/12 /26/ch3AspectJSyntaxBasics.html]這里[/url],進行緩存的框架使用較成熟的ehcache.
          下面開始進行配置
          首先是ehcache的配置文件




            閱讀全文
          posted @ 2010-08-23 10:35 陳于喆 閱讀(8529) | 評論 (0)  編輯

               摘要: 在上一篇MySQL主從復制配置 已經介紹過幾個啟動時的復制參數,下面再介紹幾個常用的啟動選項,

          (1) log-slave-updates

          log-slave-updates這個參數用來配置從服務器的更新是否寫入二進制日志,這個選項默認是不打開的,但是,如果這個從服務器B是服務器A的從服務器,同時還作為服務器C的主服務器,那么就需要開發這個選項,這樣它的從服務器C才能獲得它的二進制日志進行同步操作



          (2) master-connect-retry

          master-connect-retry這個參數是用來設置在和主服務器連接丟失的時候,重試的時間間隔,默認是60秒



          (3) read-only

          read-only是用來限制普通用戶對從數據庫的更新操作,以確保從數據庫的安全性,不過如果是超級用戶依然可以對從數據庫進行更新操作



          (4) slave-skip-errors

          在  閱讀全文
          posted @ 2010-08-22 23:30 陳于喆 閱讀(584) | 評論 (0)  編輯

               摘要: Mysql的主從復制至少是需要兩個Mysql的服務,當然Mysql的服務是可以分布在不同的服務器上,也可以在一臺服務器上啟動多個服務。

          (1)首先確保主從服務器上的Mysql版本相同

          (2)在主服務器上,設置一個從數據庫的賬戶,使用REPLICATION SLAVE賦予權限,如:


          mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave001'@'192.168.0.99' IDENTIFIED BY

          '123456';

          Query OK, 0 rows affected (0.13 sec)


          (3)修改主數據庫的配置文件my.cnf,開啟BINLOG,并設置server-id的值,修改之后必須重啟Mysql服務


          [mysqld]

          log-bin = /home/mysql/log/mysql-bin.log

          server-id=1

          閱讀全文
          posted @ 2010-08-22 23:28 陳于喆 閱讀(52130) | 評論 (4)  編輯

          主站蜘蛛池模板: 延安市| 应用必备| 博客| 贵州省| 成武县| 丹棱县| 东丽区| 贺兰县| 临猗县| 巍山| 阆中市| 巨野县| 霍州市| 大邑县| 磐安县| 弥渡县| 苏尼特右旗| 朝阳市| 仁寿县| 饶河县| 上林县| 青海省| 东宁县| 沂南县| 师宗县| 塘沽区| 饶阳县| 河曲县| 孙吴县| 横峰县| 吉首市| 新密市| 衢州市| 亳州市| 浮山县| 长顺县| 福鼎市| 南昌市| 呼图壁县| 镇康县| 万盛区|