網(wǎng)站性能檢測評分
注:本網(wǎng)站頁面html檢測工具掃描網(wǎng)站中存在的基本問題,僅供參考。
騰訊云建網(wǎng)站
從零開始搭建騰訊云上的SpringBoot容器化應用 互聯(lián)網(wǎng)視頻課程
更多騰訊海量技術(shù)文章,請關(guān)注云+社區(qū):https://cloud.tencent/developer
作者:李想
由于最近容器技術(shù)的火熱,各大云計算廠商都已經(jīng)提供了獨立的容器服務,騰訊云也不例外。騰訊云容器服務的官方文檔提供了一個基于Node.js的簡單案例供大家上手,考慮到官方的文檔并沒有提供基于Java的上手教程,再加上容器/微服務技術(shù)在Java領(lǐng)域的各種衍生開源組件--如SpringCloud家族的各種神器應用極其廣泛,今天有空拿一個簡單的帶增刪改查接口功能的SpringBoot應用外接騰訊云CDB for MySQL來把玩容器服務,正好以此來演示如何從零開始在騰訊云上搭建基于SpringBoot的容器化應用。關(guān)于為啥選用SpringBoot框架,我想原因也不必多說,主要還是因為其本身就是一個為容器而生的框架,自帶Tomcat服務器而且能以極簡的配置構(gòu)建web服務(相對于SpringMVC而言)。
這里以一個提供用戶管理的微服務為例進行搭建,為了簡化步驟僅考慮用戶數(shù)據(jù)的增刪改查功能不考慮實際業(yè)務邏輯。微服務本身基于SpringBoot框架,數(shù)據(jù)庫保存在騰訊云CDB for MySQL上,同時利用Spring的JPA作為ORM框架,最終發(fā)布可以對用戶數(shù)據(jù)進行增刪改查的Restful接口。
1. 創(chuàng)建SpringBoot 項目
IntelliJ Idea默認可以創(chuàng)建SpringBoot應用,新建項目里面選擇Spring Initializer。
創(chuàng)建SpringBoot項目
修改對應的名字,我們這里就叫UserProvider
項目配置
修改項目的組織架構(gòu)如圖所示,各部分功能如下:
Controller/UserProviderController.java: HTTP請求的監(jiān)聽入口,為了簡化程序不再寫Service層,直接調(diào)用DAO層
DAO/UserInfoDao.java: DAO層,直接使用JPA實現(xiàn)
Model/UserProviderApplication.java: entity層,映射到數(shù)據(jù)庫,為了簡化程序只定義了名字,年齡,性別幾個字段
項目組織架構(gòu)
代碼本身不再做過多的解釋,都是最基礎(chǔ)的SpringBoot代碼,大家可以從下面的地址獲取代碼。https://github/xianl/UserProvider
需要提到的是application.yml文件和項目根目錄下的MAVEN配置文件pom.xml。
application.yml 中通過${userprovider_mysql} 來獲取環(huán)境變量中配置好的數(shù)據(jù)庫地址傳給jdbc,后面會演示如何通過騰訊云的容器服務來傳入這個參數(shù)到容器內(nèi)。
server:port: 8090spring:jpa:hibernate:ddl-auto: createdatasource:url: jdbc:mysql://${userprovider_mysql}/userdbusername: springuserpassword: Test01!info:app:name: @project.artifactId@encoding: @project.build.sourceEncoding@java:source: @java.version@target: @java.version@
pom.xml 需要引入JPA和mysql的依賴包,同時加入docker-maven-plugin用于直接打包生成docker鏡像。
首先在本地進行調(diào)試,創(chuàng)建userdb數(shù)據(jù)庫并賦予用戶springuser對數(shù)據(jù)庫的訪問權(quán)限。同時需要設(shè)置本地環(huán)境變量userprovider_mysql的值為127.0.0.1。
mysql> create database userdb;Query OK, 1 row affected (0.00 sec)mysql> create user 'springuser'@'%' identified by 'Test01!';Query OK, 0 rows affected (0.00 sec)mysql> grant all on userdb.* to 'springuser'@'%';Query OK, 0 rows affected (0.00 sec)
訪問本地的8090端口,調(diào)用add接口插入一條數(shù)據(jù),再次通過Users接口可以獲取之前插入的數(shù)據(jù)。表明程序本身沒有問題,本地調(diào)試成功之后可以進行后續(xù)的操作。
本地調(diào)試
2. 生成docker鏡像并上傳到騰訊云鏡像倉庫
在一臺安裝好git+java+maven+docker的Linux主機上執(zhí)行下面的命令生成docker鏡像。由于我們的application.yml文件需要讀取環(huán)境變量來獲取數(shù)據(jù)庫的地址,所以我們在打包jar包和docker鏡像的時候需要指定參數(shù)-DskipTests,否則在測試的時候會報數(shù)據(jù)庫連接的錯誤。
cd /optgit clone https://github/xianl/UserProvider.gitcd UserProvidermvn clean package docker:build -DskipTests
執(zhí)行docker images 可以看到剛才生成的userprovider鏡像。
[root@VM_1_13_centos ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEuserprovider latest 53cdf5acf3a4 2 hours ago 673.6 MBdocker.io/java latest d23bdf5b1b1b 11 months ago 643.1 MB
騰訊云的鏡像倉庫服務是包含在容器服務內(nèi)而不像其他云廠商專門列出一項服務,使用前需要先開通。
開通鏡像服務
通之后按照慣例先login再打tag最后上傳。
[root@VM_1_13_centos UserProvider]# docker login --username=xxxxxxxxx ccr.ccs.tencentyunPassword:Login Succeeded[root@VM_1_13_centos UserProvider]# docker tag userprovider:latest ccr.ccs.tencentyun/mydocker/userimage:0.0.1[root@VM_1_13_centos UserProvider]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEccr.ccs.tencentyun/mydocker/userimage 0.0.1 53cdf5acf3a4 13 minutes ago 673.6 MBuserprovider latest 53cdf5acf3a4 13 minutes ago 673.6 MBdocker.io/java latest d23bdf5b1b1b 11 months ago 643.1 MB[root@VM_1_13_centos UserProvider]# docker push ccr.ccs.tencentyun/mydocker/userimage:0.0.1The push refers to a repository [ccr.ccs.tencentyun/mydocker/userimage]04e86a77317a: Pushed35c20f26d188: Pushedc3fe59dd9556: Pushed6ed1a81ba5b6: Pusheda3483ce177ce: Pushedce6c8756685b: Pushed30339f20ced0: Pushed0eb22bfb707d: Pusheda2ae92ffcd29: Pushed0.0.1: digest: sha256:30361f7235797976d196473374a4b16c39fe614753d1801b329be7ea55a7e6fa size: 2212
登錄管理界面也能看到剛才上傳的userimage鏡像。
鏡像列表
3. 搭建容器群集并部署服務
騰訊云上的容器集群搭建非常之簡單,可以任意添加新建的節(jié)點甚至已有的CVM虛擬機。具體步驟我這里不再贅述,官方文檔上寫的都很清楚大家可以查看。
群集管理
同時我們在容器集群所在的VPC內(nèi)部再建立一臺Mysql數(shù)據(jù)庫,按照之前處理本地數(shù)據(jù)庫的步驟同樣創(chuàng)建userdb數(shù)據(jù)庫和用戶springuser,數(shù)據(jù)庫的內(nèi)網(wǎng)地址為10.98.1.9,后面我們需要把這個地址傳進容器服務里。
MySQL實例
對于k8s集群,一般來說我們可以使用kubectl來下發(fā)如下的yml文件來進行部署,yml文件中主要指定了鏡像的地址,端口號以及我們需要配置的環(huán)境變量等。
---apiVersion: apps/v1beta1kind: Deploymentmetadata:name: userproviderspec:replicas: 1template:metadata:labels:app: userproviderspec:containers:- name: userproviderimage: ccr.ccs.tencentyun/mydocker/userimage:0.0.1ports:- containerPort: 8090env:- name: userprovider_mysqlvalue: 10.98.1.9---apiVersion: v1kind: Servicemetadata:name: userproviderspec:type: NodePortports:- nodePort: 30010port: 8090targetPort: 8090selector:app: userprovider
騰訊云容器服務為用戶提供了更為方便的操作方法,只需在添加服務界面進行一定配置就能進行服務部署,等于是把ymal文件的配置做了可視化,減輕了用戶的工作量。
注意一下環(huán)境變量的部分,我們這里指定了userprovider_mysql為我們內(nèi)網(wǎng)數(shù)據(jù)庫的地址10.98.1.9。
新建容器服務
因為我們選取了發(fā)布服務到公網(wǎng),系統(tǒng)會自動創(chuàng)建LB將公網(wǎng)端口8080映射到容器的服務端口8090, 查看LB詳情可以看到自動生成的域名。
LB詳情
通過訪問綁定的域名的8080端口,接口測試成功。
通過LB接口測試
總結(jié)
從上面的測試步驟可以看到,騰訊云的容器服務從最大程度上做到了人性化,用戶甚至可以在完全不用登陸群集節(jié)點的情況下快速進行容器服務部署。同時騰訊云容器服務本身就是基于k8s做服務編排并兼容kubernetes標準API,又使得其通用性和易用性更強。本例提供的生成鏡像的方法還是以手動為主,在客戶的實際環(huán)境中如果結(jié)合Jenkins等CI/CD的工具就能夠進一步提高效率和自動化程度。另外本文未提及的日志管理、監(jiān)控告警功能也能為用戶提供更多的便利,使開發(fā)人員將時間更多的投入在業(yè)務邏輯本身,也使運維人員能更多的把時間投入在應用本身的異常上面。
如何搭建個人網(wǎng)站 企業(yè)視頻課程
之前也寫過此類的文章,但是因為當時入門不久,寫的文章可能會錯誤的引導大家?,F(xiàn)在,本博客建立的500+天了,博主從一個“菜鳥”轉(zhuǎn)為“有經(jīng)驗的站長”了。
一、 域名,就是‘baidu’ ‘smallxu.me’的這種。在訪問某一個網(wǎng)站時,必須輸入域名(或者IP),然后會通過DNS搜索到域名所解析的IP,然后去訪問這個IP。
域名的注冊可以去 阿里云 騰訊云 西部數(shù)碼 狗爹 等等域名注冊商,不建議注冊tk gq ga cf ml等免費、非主流域名(搜索引擎雖然口頭上說不歧視,但是在實際應用中還是有影響的)
ps:.me域名不支持北京備案(后面講備案)
二、 域名DNS
域名(英語:Domain Name),簡稱域名、網(wǎng)域,是由一串用點分隔的名字組成的Internet上某一臺計算機或計算機組的名稱,用于在數(shù)據(jù)傳輸時標識計算機的電子方位(有時也指地理位置)。網(wǎng)域名稱系統(tǒng)(DNS,Domain Name System,有時也簡稱為域名)是因特網(wǎng)的一項核心服務,它作為可以將域名和IP地址相互映射的一個分布式數(shù)據(jù)庫,能夠使人更方便的訪問互聯(lián)網(wǎng),而不用去記住能夠被機器直接讀取的IP地址數(shù)串。例如,wikipedia.org是一個域名,和IP地址208.80.152.2相對應。DNS就像是一個自動的電話號碼簿,我們可以直接撥打wikipedia的名字來代替電話號碼(IP地址)。我們直接調(diào)用網(wǎng)站的名字以后,DNS就會將便于人類使用的名字(如wikipedia.org)轉(zhuǎn)化成便于機器識別的IP地址(如208.80.152.2)。
域名的dns可以使用域名注冊商默認的dns,也可以使用第三方dns或者cdn(或waf)的域名DNS。例如 cloudxns dnspod cloudflare (百度云加速 360網(wǎng)站衛(wèi)士 太垃圾,不提了)這些域名dns
也可以利用自己的服務器搭建域名DNS(不能保證可用性和穩(wěn)定性),如何利用服務器搭建DNS我們后面的文章在講解(搭建的域名DNS必須在對應的域名后綴注冊局進行DNS注冊,否則無法使用)
三、 網(wǎng)站服務器
網(wǎng)站服務器分為許多種 例如 虛擬主機 云服務器 VPS 以及物理服務器
1.虛擬主機
虛擬主機是指在網(wǎng)絡服務器上分出一定的磁盤空間,用戶可以租用此部分空間,以供用戶放置站點及應用組件,提供必要的數(shù)據(jù)存放和傳輸功能。
虛擬主機有著便宜、快速、便捷的優(yōu)點,但是隨著網(wǎng)站的發(fā)展,虛擬主機的缺點也就慢慢的出現(xiàn)了——①若虛擬主機所在的物理服務器被攻擊,該物理服務器下所有網(wǎng)站都會故障②有些虛擬主機不支持https③隨著網(wǎng)站發(fā)展,會發(fā)現(xiàn)虛擬主機的容量、流量不夠使用
2.VPS
VPS(Virtual Private Server 虛擬專用服務器)技術(shù),將一臺服務器分割成多個虛擬專享服務器的優(yōu)質(zhì)服務。實現(xiàn)VPS的技術(shù)分為容器 技術(shù),和虛擬化技術(shù) ] 。在容器或虛擬機中,每個VPS都可分配獨立公網(wǎng)IP地址、獨立操作系統(tǒng)、實現(xiàn)不同VPS間磁盤空間、內(nèi)存、CPU資源、進程和系統(tǒng)配置的隔離,為用戶和應用程序模擬出“獨占”使用計算資源的體驗。VPS可以像獨立服務器一樣,重裝操作系統(tǒng),安裝程序,單獨重啟服務器。VPS為使用者提供了管理配置的自由,可用于企業(yè)虛擬化,也可以用于IDC資源租用。IDC資源租用,由VPS提供商提供。不同VPS提供商所使用的硬件VPS軟件的差異,及銷售策略的不同,VPS的使用體驗也有較大差異。尤其是VPS提供商超賣,導致實體服務器超負荷時,VPS性能將受到極大影響。相對來說,容器技術(shù)比虛擬機技術(shù)硬件使用效率更高,更易于超賣,所以一般來說容器VPS的價格都高于虛擬機VPS的價格。這些VPS主機以最大化的效率共享硬件、軟件許可證以及管理資源。每個VPS主機都可分配獨立公網(wǎng)IP地址、獨立操作系統(tǒng)、獨立超大空間、獨立內(nèi)存、獨立CPU資源、獨立執(zhí)行程序和獨立系統(tǒng)配置等. VPS主機用戶除了可以分配多個虛擬主機及無限企業(yè)郵箱外, 更具有獨立主機功能, 可自行安裝程序,單獨重啟主機。簡單理解VPS就是一臺擁有公網(wǎng)IP的服務器
VPS也可以去阿里這樣的大廠商購買(大部分都是云服務器)
3.云服務器
云服務器是一種簡單高效、安全可靠、處理能力可彈性伸縮的計算服務。其管理方式比物理服務器更簡單高效。用戶無需提前購買硬件,即可迅速創(chuàng)建或釋放任意多臺云服務器。云服務器幫助您快速構(gòu)建更穩(wěn)定、安全的應用,降低開發(fā)運維的難度和整體IT成本,使您能夠更專注于核心業(yè)務的創(chuàng)新。
云服務器和VPS之區(qū)別
云服務器是由一個集群所分擔的,假設(shè)該集群有一臺物理服務器故障,其他的服務器可以依靠鏡像正常運行 VPS若物理服務器故障,那么VPS直接崩潰
4.物理服務器
物理服務器就是一臺實體計算機托管到機房,其配置可以由自己而定,擁有著和普通電腦相同的能力。但是在租用或托管一臺物理服務器時,需要考慮其機房配置、寬帶配置、以及服務器供電。
綜合排序 物理服務器>云服務器>VPS>虛擬主機
PS. VPS及云服務器的虛擬化有多種方式 1.XEN 2.KVM 3.OVZ期綜合性能排序 KVM>=xen>ovz
五、 云服務器/VPS/物理服務器的環(huán)境選擇
就目前來說,php是全能語言,既可以在WIN上運行也可以在linux上運行
若你是用的是zblog一類以ASP(zblog也有php版)為主的程序,win是必選,因為只有Win可以運行asp/aspx
如果使用php,那么linux是首選,其次是win,因為linux初始占用內(nèi)存小,占用系統(tǒng)資源小,對于低配置服務器是最佳選擇。而win則是圖形化操作,對于新手最好
網(wǎng)站環(huán)境nginx輕量、易操作,apache管理好,iis最為垃圾 但是因為asp只能運行在iis上(目前這樣)而且iis只能在win上(聽說微軟在為linux開發(fā)Iis)
php環(huán)境因為7.0及以上不支持mysql拓展,所以一般建議5.6
六、 網(wǎng)站備案
在中國大陸以外的服務器可以不用備案,在中國大陸以內(nèi)的服務器必須向服務器管理商以及工信部提出備案申請,備案后就可以使用國內(nèi)服務器了
七、 https or http
https 是 http的安全版,搜索引擎會收錄較多的https鏈接
至此一個網(wǎng)站基本就成型了
by 小徐博客網(wǎng) smallxu.me
搭建一個完全屬于自己的博客網(wǎng)站應該如何下手,科普小白建站 行業(yè)視頻課程
有很多朋友問我,如何動手搭建一個完全屬于自己的博客網(wǎng)站,該如何下手 要花多少錢需要做那些準備。
下面我就把搭建一個WordPress博客的過程講一下,僅針對純白讀者,勿噴,謝謝。
準備工作:
一:域名注冊
找個域名服務商注冊個域名 ,域名是安年收費的
各個服務商價格略有幾塊的差異,不過基本差不出10塊錢去,選那個就看你們自己了。
注冊域名一般域名盡量要短一些,然后含義通俗易懂,盡量不要數(shù)字和字母混排,主要還是好記為主。
二:購買虛擬主機或者服務器
虛擬主機或者服務器的區(qū)別
虛擬主機是配置好環(huán)境的空間給你用,分配一定量的服務器資源給你
服務器就要自己配置了,比如我們用WordPres ,就要配置PHP+MySql的web環(huán)境。服務器可以做多個網(wǎng)站,而虛擬主機就只能做一個。
想省事簡單的話就用虛擬主機,想有所提升,對以后網(wǎng)站發(fā)展有提升空間的話就服務器。
購買虛擬主機推薦 ,比如阿里云,騰訊云,百度云,美橙互聯(lián)(主要還是虛擬主機)都可以
現(xiàn)在虛擬主機這幾家最實惠是百度云 近期有活動99(2G網(wǎng)頁空間 128MB內(nèi)存 1000MB數(shù)據(jù)庫 1Mbps獨享帶寬)
真是相當?shù)谋阋肆?,最一個網(wǎng)站200塊搞定了。
不過阿里云,騰訊云,百度云 還是主要做云服務器的,有興趣覺的也可以買一個入門的服務器用。(配置環(huán)境現(xiàn)在也有很多易用的主機面板,安裝也很簡單)
一個入門的服務器阿里云服務器330塊也就搞定了。
域名解析
去域名管理里做域名解析,把讓我們的域名和虛擬主機綁定到一塊,好一打域名就是我們虛擬主機里的內(nèi)容。
域名解析圖示:記錄值就是添我們虛擬主機的IP地址, 主機名就是我們域名的前綴,如www。
關(guān)于TTL值 我有文章做過介紹,想了解的可以去看一下。域名解析里的TLL值代表什么呢?該如何設(shè)置?
還在虛擬主機里綁定域名,這個都是雙向的,要么域名解析也不會生效的。
一般域名生效時間要1到2個小時,也有幾分鐘的就好。主要看你的網(wǎng)了。
三:博客系統(tǒng)
本文用使用比較廣泛的WordPress做演示,當然如果使用typecho,emlog,Z-Blog等(有時間我再做一個詳細的博客系統(tǒng)推薦)
博客搭建: 把WordPress的代碼傳到虛擬主機就可以安裝了。
請參考這個GIF動態(tài)教程如何安裝WordPres?
到這里我們的博客就搭建完成了。安裝的時間可能會遇到問題,可以給我留言交流,想知道如何做網(wǎng)站就關(guān)注我吧,我會定期分享一些建站教程和項目案例的。
新手如何自己做網(wǎng)站? 新手視頻課程
擁有一個屬于自己的網(wǎng)站似乎是一件挺不錯的事情,你可以做個公司類型網(wǎng)站宣傳業(yè)務,也可以做個個人類型的網(wǎng)站展示自我。那么對于完全沒有建站經(jīng)驗的人來說,如何做網(wǎng)站呢?自己做網(wǎng)站有兩種方式。
第一種:網(wǎng)站整套都由自己搭建
建站流程如下:
1、注冊域名
現(xiàn)在注冊域名比較簡單,一般是到新網(wǎng)、阿里云或騰訊云上注冊,費用一般在50-100元。
2、選擇服務器(網(wǎng)站空間)
選擇服務器要考慮這些參數(shù):帶寬、單/雙/多線、內(nèi)存、硬盤、硬防、價格,需求不同選擇的標準也不同。同時服務器分為國內(nèi)服務器和國外服務器,選擇國外服務器不需要備案,關(guān)于備案詳情見下文。服務器可以到阿里云、騰訊云、AWS上選擇
3、網(wǎng)站備案
網(wǎng)站備案指的是:根據(jù)國家法律法規(guī)需要網(wǎng)站的所有者向國家有關(guān)部門申請的備案(詳情見百度百科)。域名指向到國內(nèi)網(wǎng)站空間,就都必須要備案;指向到國外無需備案。不過小智建議大家網(wǎng)站最好備案,不備案的網(wǎng)站會受到越來越多的限制,比如:域名分享微信朋友圈受限制;微信支付接入不了等等。其實備案的流程并不復雜,只是審核通過的時候不可控,一般在15-30天,所以要需要備案的話,那把審核時間也考慮進去,以免影響網(wǎng)站上線。
5、頁面設(shè)計
設(shè)計出網(wǎng)站的所有頁面(首頁、內(nèi)頁),一般常用PS來做,如果沒有設(shè)計經(jīng)驗的人,可以先去學習一些PS知識,前期建議仿站。
6、程序開發(fā)
程序開發(fā)分為:前端開發(fā)及后端開發(fā)。前端指的是:頁面設(shè)計好了是靜態(tài)的圖片,這時需要給頁面加上一些“動態(tài)的效果”,比如說:按鈕可以點擊、各個頁面串聯(lián)起來、留言功能可以使用等等。后端指的是:搭建網(wǎng)站管理后臺,比如可以上傳新聞、產(chǎn)品、公司介紹等數(shù)據(jù)。這兩者一般是用asp+sqlserver數(shù)據(jù)庫、PHP+MySQL數(shù)據(jù)庫、jsp+oracle數(shù)據(jù)庫。
7、網(wǎng)站開通(域名綁定、解析)
一般的域名服務商都會提供解析入口,登入后臺去操作就可以了。
優(yōu)勢:網(wǎng)站源代碼屬于自己的,能力OK的話要新增任何功能都自己決定。
不足:沒接觸過PS、程序的人需要鉆研/學習一段時間才能上手;服務器安全要自己把握,防止被黑。
第二種:基于又快又好自助建站平臺自己搭建
建站流程:
1、注冊域名
2、域名備案
注:以上與第一種一樣
3、頁面制作
在又快又好自助建站上挑選喜歡的模板,一鍵復制,接著上傳自己的產(chǎn)品圖片、介紹等。操作簡單、最快30分鐘完成。
4、網(wǎng)站開通(綁定域名)
一鍵綁定域名,快速開通網(wǎng)站
優(yōu)勢:不用設(shè)計頁面,也不用寫程序;網(wǎng)站安全問題不用操心;平臺性質(zhì),專業(yè)開發(fā)人員迭代功能更升級,技術(shù)能力優(yōu)于個人建站者。
不足:大部分自助建站平臺是SAAS模式,一般無法提供網(wǎng)站源代碼。
總結(jié):如果想自己做網(wǎng)站的話,這兩種各有各的優(yōu)劣。具體選擇哪種方式,要看自己的喜好。如果你愿意沉下心來花時間學習整套建站的,那么不妨選擇第一種。如果你需要快速建站的,那么小智推薦你用又快又好自助建站。