于吉吉的技術博客

          建造高性能門戶網

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

          #

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

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

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

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

          首先定義一個filter,通過filter取得域名,因為我們的域名中帶有城市的標志,如廣州是http://gz.***.  閱讀全文
          posted @ 2010-08-23 16:22 陳于喆 閱讀(3465) | 評論 (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 陳于喆 閱讀(293) | 評論 (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 陳于喆 閱讀(8530) | 評論 (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 陳于喆 閱讀(585) | 評論 (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 陳于喆 閱讀(52131) | 評論 (4)編輯 收藏

          僅列出標題
          共4頁: 上一頁 1 2 3 4 
          主站蜘蛛池模板: 乐安县| 酒泉市| 北安市| 廉江市| 滦平县| 明光市| 孙吴县| 米易县| 治县。| 鹿邑县| 巴南区| 祁阳县| 龙岩市| 房产| 雅安市| 金溪县| 漾濞| 垫江县| 和平区| 新泰市| 乌兰县| 济南市| 道孚县| 平顺县| 青岛市| 中江县| 水富县| 时尚| 静海县| 上高县| 永春县| 益阳市| 贵港市| 惠来县| 江津市| 德化县| 鄂托克旗| 天津市| 深泽县| 青川县| 上虞市|