第八章(一)

8.1 單元測(cè)試

圖片.png
    1. 單元測(cè)試


      圖片.png

測(cè)試方法之間不要有依賴關(guān)系。

因?yàn)槲覀兊膯卧獪y(cè)試并不是僅僅使用一次。

  • 如何保證獨(dú)立性呢?


    圖片.png
  • 測(cè)試代碼:


    圖片.png
圖片.png
  • 測(cè)試過(guò)程:
    直接運(yùn)行整個(gè)測(cè)試類。

在測(cè)試的時(shí)候并不是輸出,而是使用assert。


@RunWith(SpringRunner.class)
@SpringBootTest
@ContextConfiguration(classes = CommunityApplication.class)
public class SpringBootTests {

    @Autowired
    private DiscussPostService discussPostService;

    private DiscussPost data;

    @BeforeClass
    public static void beforeClass() {
        System.out.println("beforeClass");
    }

    @AfterClass
    public static void afterClass() {
        System.out.println("afterClass");
    }

    @Before
    public void before() {
        System.out.println("before");

        // 初始化測(cè)試數(shù)據(jù)
        data = new DiscussPost();
        data.setUserId(111);
        data.setTitle("Test Title");
        data.setContent("Test Content");
        data.setCreateTime(new Date());
        discussPostService.addDiscussPost(data);
    }

    @After
    public void after() {
        System.out.println("after");

        // 刪除測(cè)試數(shù)據(jù)
        discussPostService.updateStatus(data.getId(), 2);
    }

    @Test
    public void test1() {
        System.out.println("test1");
    }

    @Test
    public void test2() {
        System.out.println("test2");
    }

    @Test
    public void testFindById() {
        DiscussPost post = discussPostService.findDiscussPostById(data.getId());
        Assert.assertNotNull(post);
        Assert.assertEquals(data.getTitle(), post.getTitle());
        Assert.assertEquals(data.getContent(), post.getContent());
    }

    @Test
    public void testUpdateScore() {
        int rows = discussPostService.updateScore(data.getId(), 2000.00);
        Assert.assertEquals(1, rows);

        DiscussPost post = discussPostService.findDiscussPostById(data.getId());
        Assert.assertEquals(2000.00, post.getScore(), 2);
    }

}

8.2 項(xiàng)目監(jiān)控

圖片.png

本節(jié)是關(guān)于項(xiàng)目上線之后如何對(duì)其進(jìn)行監(jiān)控,檢測(cè)其是否穩(wěn)定。


圖片.png

localhost:8080/actuator/端點(diǎn)id。

按需配置端點(diǎn),有被別人竊取的風(fēng)險(xiǎn)。
而且,應(yīng)該加上權(quán)限控制,只有管理員可以進(jìn)行訪問(wèn),否則項(xiàng)目底層的內(nèi)容就會(huì)被別人窺探到


圖片.png

導(dǎo)入之后,啟動(dòng)應(yīng)用就可以訪問(wèn)某些端點(diǎn),但是不能訪問(wèn)所有的。

啟動(dòng),訪問(wèn)端點(diǎn):
以下兩個(gè)端點(diǎn)是開(kāi)放的:


圖片.png

圖片.png

還有其他的端點(diǎn)需要進(jìn)行配置:


圖片.png

返回當(dāng)前應(yīng)用中所有的bean:

圖片.png
圖片.png

每個(gè)端點(diǎn)展示出一方面的內(nèi)容。

  • 自定義端點(diǎn),監(jiān)控個(gè)性化的內(nèi)容


    圖片.png

連接池是由spring容器進(jìn)行管理的。


圖片.png

注解表示這個(gè)方法是通過(guò)get請(qǐng)求進(jìn)行訪問(wèn)的。

圖片.png
  • 進(jìn)行訪問(wèn):


    圖片.png
  • 對(duì)端點(diǎn)的路徑進(jìn)行權(quán)限管理:


    圖片.png

8.3 項(xiàng)目部署

圖片.png
    1. 安裝軟件
    1. 調(diào)整代碼
    1. 進(jìn)行部署
圖片.png

右鍵,復(fù)制鏈接地址,然后使用linux命令行進(jìn)行下載。

能用yum就使用yum下載,否則就是用安裝包。


圖片.png
圖片.png

以上的這些是使用安裝包進(jìn)行下載的,剩下的需要使用yum進(jìn)行安裝。

本地向服務(wù)器傳代碼:


圖片.png

圖片.png
  • 安裝解壓縮工具unzip:
    使用yum方式進(jìn)行安裝
    yum install -y
    -y表示需要進(jìn)行選擇的地方全部都是yes。


    圖片.png
  • 安裝jre
    yum list java*
    //選擇java-latest-openjdk.x86_64
    yum install -y java-latest-openjdk.x86_64
    java -version
    //查詢版本

【使用yum安裝工具,他會(huì)幫助我們將該配置的東西都配置完成,比較方便】

  • 安裝maven
    cd root
    //到安裝的目錄下
    //通常我們將安裝的程序放在opt目錄下,因此我們將程序解壓縮到哪個(gè)目錄下面即可
    tar zxvf apache-maven-3.6.3-bin.tar.gz -C /opt


    圖片.png

    拷貝:/opt/apache-maven-3.6.3 為了配置環(huán)境變量

  • 配環(huán)境變量
    將環(huán)境變量配置到/etc/profile文件夾下面
    vim /etc/profile【按i進(jìn)入編輯模式】


    圖片.png

    【含義:${}表示原本的值,使用:進(jìn)行追加,也就將原來(lái)的path追加上maven的路徑,再寫回之前的path】


    圖片.png

現(xiàn)在還沒(méi)有生效
source /etc/profile
//文件生效
//打印出path變量
echo $PATH
mvn -version
//結(jié)果發(fā)現(xiàn)并不存在,命令配置錯(cuò)了,應(yīng)該配置的是apache-maven下面的bin文件夾....

重新配置之后,沒(méi)有問(wèn)題了

  • 更改maven的配置文件,將其鏡像設(shè)置成為阿里云?!疽彩菫榱瞬粡闹醒雮}(cāng)庫(kù)進(jìn)行下載是嗎?】
    //pwd查看當(dāng)前在哪兒


    圖片.png

    編輯里面的settings文件。
    將mirror配置成阿里云的,可以從本機(jī)進(jìn)行拷貝

  • 安裝mysql
    yum庫(kù)的版本雖然穩(wěn)定,但是版本太低了,因此我們使用自己下載的。我們將最新的下載之后就能夠再yum庫(kù)中搜索到了。


    圖片.png

    圖片.png

    再次搜索,內(nèi)容就比較多了。


    圖片.png

    裝mysql服務(wù)器
    圖片.png

    圖片.png

    啟動(dòng)mysql的服務(wù):

    啟動(dòng)使用yum安裝的工具:


    圖片.png

mysqld是指mysql服務(wù)器后臺(tái)的名字
查看當(dāng)前服務(wù)的狀態(tài):【active running 】


圖片.png

安裝的時(shí)候會(huì)生成一個(gè)臨時(shí)的密碼,密碼在日志文件中。下面是從文件中搜素password這個(gè)單詞。


圖片.png

圖片.png

登錄mysql,并設(shè)置我們自己的密碼:
mysql -uroot -p 'password'>登錄
linux要求密碼必須得有大寫字母,特殊符號(hào)和數(shù)字。


圖片.png

exit>重新登錄
  • 導(dǎo)入數(shù)據(jù)


    圖片.png

登錄數(shù)據(jù)庫(kù),然后建庫(kù):
Create datebase community
use community
source /root/init-sql/-scheme.sql
source /root/init-sql/data.sql
source /root/init-sql/data.sql //還得導(dǎo)入定時(shí)任務(wù)所需的表
show tables
稍微調(diào)整user表的數(shù)據(jù):
將帶有l(wèi)ocalhost的headerUrl進(jìn)行調(diào)整。


圖片.png

再差一下就沒(méi)有了


yum list redis*
yum install -y XXXXX
systemctl start redis//啟動(dòng)redis
systemctl status redis
//查看狀態(tài)

綠了,是正確的。redis可以用了


圖片.png

redis-cli
//訪問(wèn)redis

exit或者ctrl+c都可退出


裝kafka
tar zxvf kafka_2.11-2.4.0.tgz -C /opt


圖片.png

路徑不需要更改。

  • 啟動(dòng)zookeeper【后臺(tái)方式】
  • 啟動(dòng)kafka
    -查詢主題


    圖片.png

安裝elasticSearch
tar zxvf elasticsearch-7.6.0-linux-x86_64.tar.gz -C /op
unzip -d /opt/elasticsearch-7.6.0-linux-x86_64/plugins/ik elasticsearch-analysis-ik


圖片.png

圖片.png

圖片.png
  • 配置elasticsearch
圖片.png

圖片.png
  • 再改一下這個(gè)
    修改一下elasticearch占用java的內(nèi)存空間,默認(rèn)占用了1G,太大了。


    圖片.png

    圖片.png

elasticearch要求不能使用root用戶啟動(dòng),必須使用普通用戶啟動(dòng)。

  • 新建一個(gè)普通用戶
    /增加一個(gè)用戶組
    groupadd cym
    //在組里建一個(gè)用戶


    圖片.png

設(shè)置用戶權(quán)限,使之能訪問(wèn)ealsticsearch這個(gè)目錄。以及能夠訪問(wèn)tmp文件,里面記錄的有日志文件等數(shù)據(jù)。


圖片.png

為啥有個(gè)nowcoder:


圖片.png

后臺(tái)方式啟動(dòng)elasticsearch:


圖片.png

su -
//切換回root用戶

//訪問(wèn)elasticsearch服務(wù),檢查一個(gè)服務(wù)器是不是健康


圖片.png

使用yum安裝wkhtmltopdf

安裝之后還不能使用,因?yàn)閘inux是一個(gè)純服務(wù)器。他沒(méi)有g(shù)ui程序,沒(méi)有能夠處理界面的程序。
需要安裝一個(gè)虛擬的gui服務(wù)器。
yum list xvfb
yum install -y xorg-x11-server-Xvfb.x86_64
/接下來(lái)測(cè)試一下能不能生成圖片
cd /root/test

圖片.png

我們可以字節(jié)寫一個(gè)腳本,將前面的命令進(jìn)行封裝。
//復(fù)制前面的命令
cd /opt
//在這個(gè)文件中自己寫一個(gè)腳本
vim wkhtmltoimage.sh//這是這個(gè)腳本的名字


圖片.png

最后的引號(hào)里面表示參數(shù)的意思;
ll
//可以查看文件已經(jīng)生成了,但是此時(shí),這個(gè)文件只有讀寫權(quán)限,卻沒(méi)有執(zhí)行權(quán)限。


圖片.png

同樣可以使用


安裝tomcat
tar zvxf apache-tomcat-9.0.31.tar.gz -C /opt
配置環(huán)境變量


圖片.png

然后通過(guò)pwd得到bin的路徑,進(jìn)行環(huán)境變量的配置。
保存之后,還得生效
source /etc/profile


圖片.png

maven為什么重復(fù)了,沒(méi)事兒。。。

啟動(dòng)tomcat

圖片.png

我們部署的項(xiàng)目就放在webapp中:


圖片.png

查看里面默認(rèn)帶的項(xiàng)目:


圖片.png

yum安裝ngix
yum install -y nginx.x86_64
需要進(jìn)行配置才能讓nginx分發(fā)請(qǐng)求給tomcat
vim /etc/nginx/nginx.conf
主要是配置里面的server
配置一下真實(shí)的服務(wù)器里面有多少個(gè)tomcat。
將文件里面的哪個(gè)服務(wù)器注銷掉,不要?jiǎng)h掉哦
用nginx代理服務(wù)器,叫做反向代理
代理瀏覽器的叫做正向代理,也叫做代理。
如果分發(fā)了三次請(qǐng)求都沒(méi)有相應(yīng),就會(huì)認(rèn)為是tomcat掛掉了,將其移除服務(wù)器的集合。過(guò)了30s之后再訪問(wèn)tomcat看看tomcat有沒(méi)有活過(guò)來(lái)。


圖片.png

下面再配置一個(gè)虛擬的服務(wù)器:
得有分號(hào)結(jié)尾;


圖片.png

啟動(dòng)一下,因?yàn)槭鞘褂脃um安裝的,所以它的啟動(dòng)服務(wù)已經(jīng)安裝好了。
systemctl start nginx
systemctl status nginx
//出現(xiàn)了狀態(tài)是running
此時(shí)直接訪問(wèn)ip,即可訪問(wèn)服務(wù)


裝完了~~~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容