摘要
進入新公司-立感網(wǎng)絡已經(jīng)兩個月了,業(yè)務和系統(tǒng)架構已經(jīng)了解的非常清楚,趁著這幾天比較閑,把架構給梳理一遍。一來整理下學到的東西,二來也給后人入手這套東西留下一份文檔。
業(yè)務概述
立感網(wǎng)絡是做物流保險行業(yè)的業(yè)務的。相當于賣保險的吧,也是給保險公司打工的。賣出一份保險公司的保險,公司會得到一份提成或者推廣費之類的收益。同時我們也招收代理人,他們可以拿著產品去賣,當然這時我們也會收提成。
- 需要對接保險公司
- 將保險公司的產品虛擬化為商品,讓用戶可以購買
- 招收代理人,就要有分銷分賬的機制
根據(jù)以上的業(yè)務需求,新系統(tǒng)架構師采用的是當前比較熱門的微服務架構,舊系統(tǒng)還是傳統(tǒng)的SOA架構。新系統(tǒng)現(xiàn)階段將業(yè)務劃分為以下幾個服務。
服務的劃分
新系統(tǒng)采用的技術有:
框架: Spring Cloud、Spring、Spring data jpa、Spring boot、Spring Mvc、Ibatis、Spring auth2。
數(shù)據(jù)庫: MySql
構建工具: Gradle
持續(xù)集成: Jenkins+Gitlab
部署工具: Docker+Runcher
服務網(wǎng)關: kong、nginx
前端技術: vue2.0+gulp+webpack->H5頁面、angular+webpack->后臺管理系統(tǒng)
代碼結構圖

- app
- 專門為app服務的項目,提供和核心業(yè)務無關聯(lián)的接口,但是是APP必須使用的接口。
- common
- 作為所有項目的依賴,提供統(tǒng)一的工具、異常、分頁、常量、模塊間訪問的VO等各模塊公用的類。
- crm
- 用戶管理模塊,負責用戶登錄驗證、權限控制
- message
- 短信、郵件模塊,接入阿里云短信服務,郵件服務
- payment
- 支付模塊,接入的是寶付的支付系統(tǒng),因為寶付提供分賬功能
- policy
- 投保模塊,提供投保工能,對接各個保險公司。
- product
- 產品模塊,將各個保險公司抽象為產品,提供產品查詢設置功能
- route
- Spring Cloud Eureka的注冊中心
- security
- 安全模塊,采用Spring auth2,作為各模塊的依賴,提供統(tǒng)一的權限驗證,跨域設置。
- task
- 任務模塊,對于非自動出單的保險產品,需要人工處理,這里提供一系列的處理流。
對系統(tǒng)服務劃分的思考
以上服務的劃分,都是我來之前架構師已經(jīng)搭建好的,后來架構走了,這個系統(tǒng)的演變也就停止了。后來的許多開發(fā)者各自遵循自己的代碼風格,導致代碼難以維護,一些原本很好的設計,由于大家都不準守,也就成了擺設。在數(shù)據(jù)訪問層各個開發(fā)者采用自己喜歡的crm框架,SQL語句散落于代碼中間。出現(xiàn)錯誤時都難以調整。至于其他方面也是差異頗多。
服務的劃分邊界大體上是清晰的,架構師把握的也很好,如果由架構師不走,也許會演變的更好。對于服務的劃分,我的理解是:以業(yè)務為導向,厘清業(yè)務之間的關系,劃分出業(yè)務邊界。同時抽象出各業(yè)務公用的業(yè)務,再次進行劃分。最后將一些邊緣業(yè)務整合在一起,作為補充。
老夫資質駑鈍,天資所限。對于劃分服務的思考也只總結出這些。隨著時間的增長,自己閱歷的增加,定能更好的把握好這些。
總結
業(yè)務,服務的劃分大致上就是這些了,微服務架構是最近兩年比較流行的,特別是Spring Cloud這一系列的,當然還有別的微服務框架,比如阿里的dubbo,新浪微博的Motan等等,架構和框架是兩個概念,實現(xiàn)微服務架構的框架等待我們去挖掘。同時和微服務架構一起興起的還有容器技術,比如他的代名詞docker。