Myth原始碼解析系列之四- 配置與啟動詳解

有生發表於2018-01-22

在上一篇中,我們專案所需的整個環境都已搭建完成,下面我們主要介紹專案的相關配置於啟動環節

配置詳解

注意: 這裡事務儲存我們這裡採用的是 : mysql, 訊息中介軟體選擇的是:rocketmq, 其他方式都大同小異,童鞋們可自行體驗哈~

  1. myth-demo-springcloud 為例,主要需要修改配置工程如下
1、myth-demo-springcloud-account
       -- application.yml
               修改點1: 修改業務庫mysql資料庫服務ip地址,使用者名稱和密碼,這裡我的rocketmq部署在虛擬機器,mysql不是在本機
               spring:
                    datasource:
                       driver-class-name:  com.mysql.jdbc.Driver
                       url: jdbc:mysql://127.0.0.1:3306/myth_account?useUnicode=true&characterEncoding=utf8
                       username: root
                       password: 123456
              修改點2:修改rocketmq服務ip地址,這裡為消費者
                  rocketmq:
                      namesrvAddr: 192.168.156.101:9876
                      consumerGroupName: account
                      instanceName: account

       -- applicationContext.xml
               修改myth分散式事務訊息資料庫ip地址,使用者名稱和密碼
               <property name="mythDbConfig">
                       <bean class="com.github.myth.common.config.MythDbConfig">
                           <property name="url"
                                     value="jdbc:mysql://127.0.0.1:3306/myth?useUnicode=true&amp;characterEncoding=utf8"/>
                           <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
                           <property name="password" value="123456"/>
                           <property name="username" value="root"/>
                       </bean>
                   </property>

 2、myth-demo-springcloud-inventory
       -- application.yml   #修改同myth-demo-springcloud-account 類似
       -- applicationContext.xml  #修改同myth-demo-springcloud-account 類似

 3、myth-demo-springcloud-order
       --application.yml    #mysql配置同myth-demo-springcloud-account 類似,  區別在於這裡沒有rocketmq配置項,單獨分離出spring-rocketmq.xml中配置
       --applicationContext.xml    #修改同myth-demo-springcloud-account 類似
       --spring-rocketmq.xml   # 生產者
             <bean id="defaultMQProducer" class="org.apache.rocketmq.client.producer.DefaultMQProducer"
                  init-method="start" destroy-method="shutdown">
                <constructor-arg name="producerGroup" value="producerGroup" />
                <property name="namesrvAddr" value="192.168.156.101:9876" />
                <property name="retryTimesWhenSendFailed" value="10" />
            </bean>
複製程式碼

專案啟動

  1. 執行myth-demo-springcloud-eureka專案中的EurekaServerApplication類的main方法, 啟動eureka註冊中心。

  2. 執行SpringcloudOrderApplication、SpringCloudAccountApplication、SpringCloudInventoryApplication、中的main方法, 啟動前確保rocketmq服務已啟動。 myth-demo-motan、myth-demo-dubbo的配置與啟動類似,這裡不再贅述哈~~

  3. 訪問order服務,http://localhost:8884/swagger-ui.html 這是訂單下單入口, 現在可以體驗Springcloud分散式事務啦。

    swagger api

點選 “Try It out!” ,檢視各表資料變化情況

ys api

到現在我們已經狠狠地完了一把,後面將正式進入原始碼解析部分 ~~

大家有任何問題或者建議歡迎溝通 ,歡迎加入QQ群:162614487 進行交流

相關文章