spring cloud腳手架項目(一)技術選型

前言

目前因爲有些原因。也是因爲自己上一家項目使用了spring cloud的技術棧,所以希望能自己搭建一個spring cloud相關的項目腳手架,也是對之前乾的事情的一個總結吧。寫一個項目的第一步是需要進行技術選型和中間件選擇,下面我會列出我這個項目中需要用到的技術和中間件選擇。

基本框架-spring cloud boot

微服務的大旗下面的目前的選擇我所熟悉的只有dubbo和spring cloud的,如文章所言,所以我選擇的是spring cloud版本,spring cloud和boot之前有一個對應的版本關係
詳細Spring Cloud版本與Spring Boot版本適應範圍如下
我選擇的是spring boot 2.0.3-releas和spring cloud F-relese版本,第一原因是工作中用的也是這個版本,其次是因爲版本還算比較新,最新的當然還有G版本和2.1.X版本的boot,不過我認爲差別也不多,沒有1.5到2.0的變化那麼大,小修小補那種,所以這個版本號也是夠用的了

orm相關-mybatis、druid、atomikos

這部分需要的就比較多了,得分開來講。
1.mybatis,目前國內大部分公司用的orm框架,我個人認爲是因爲mybatis的修改方便,可以直接sql,方便突擊修改,有利於國內變化多端的需求。配合使用mybaitsGenerator代碼生成器,現在mybatis-plus很流行,不過我個人認爲目前對於大部分來說前者也已經足夠使用了。mp很好,但是我用不到
2.druid 阿里巴巴的連接池,用過都說好,還自帶監控哦
3.pagehelper git上最好用的分頁插件之一了。即插即用
4.atomikos,因爲我是有多個數據源(mysql),如果數據要求強一致性,那就是隻能乖乖XA兩段式提交。那spring boot自帶整合atomikos,即插即用,也是很方便了

服務調用-feign

配置方便,簡單易上手。spring cloud的配套使用組件之一

註冊中心-eureka

分佈式的微服務少不了註冊中心,既然使用了spring cloud,那基本的選擇就是eureka了,雖然2.0的難產,但是目前穩定版本的eureka也是足夠所有人的使用的了
docker安裝eureka

網關-gateway

spring cloud在zuul之後的2.0新網關,用新不用舊。

關係型數據庫-mysql

所有項目都需要的一個數據存放位置,如果配置分庫分表等方案的話,10億以下級別的數據都可以通過mysql解決。
選擇mysql5.7版本的。首先數據庫選擇mysql也是因爲他是開源和免費的,再其次是因爲我從工作以來一直也是用mysql的。mysql的版本目前是5.7的比較穩定好用,也有很多之前5.5和5.6的優化。
docker安裝mysql

消息隊列(mq)-rockermq

rockermq是阿里推出的消息中心,有很多優點,例如nameserver的元數據存儲,broker的消費負載均衡,消息持久化,不丟失,性能強等等。
一般的常用功能:
1.普通mq消息,削峯解耦
2.定時mq消息,用於訂單校驗等延遲檢測解決
3.mq事務消息,分佈式事務的解決方案之一
docker 安裝rockermq這篇寫的不錯,我也懶得自己再搭建一個,驗證可用

配置中心-nacos

阿里的nacos的功能非常豐富,也可以用spring config和bus,不過個人還是nacos用的順手,有需求的也可以用攜程的apllo
docker搭建nacos

非關係型數據庫-redis

系統想要快,那少不了緩存的使用,那目前的選擇無非mongodb和redis,前者的數據更加隨意,但是後者業界使用更多,也很方便簡單,配置布隆過濾器,redisGeo,redis分佈式鎖等等優秀實現,也是許多業內主流選擇。
docker搭建redis

定時任務 -xxl-job

好用的開源分佈式定時任務框架

發佈運維-jenkins、docker、git、maven

發佈6步走
1.git拉取代碼
2.maven clean install構建出jar包
3.docker 鏡像製作
4.推送到dockerhub倉庫
5.docker拉去發佈
6.K8S運維管理docker
其中1-5步都可以用jenkins解決,小公司運維神器
docker安裝jenkins

最後

看我之前的文章可以看到,都是和docker,linux運維有關的,並不是因爲我是運維,而是這些東西可以記錄下來,在之後也可以使用,而其他的一些java開發有關的知識,之前感覺自己也太菜了。沒有啥輸出的東西,寫這一系列文章也是希望自己能走出舒適區,好好用心的寫一些東西吧。爲自己。其實項目的開發進度是快過文章的,因爲寫代碼比寫文章快多了。。
github:https://github.com/alex9567/SpringCloudScaffold

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章