中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

作品展示的網(wǎng)站百度下載正版

作品展示的網(wǎng)站,百度下載正版,網(wǎng)頁設(shè)計公司杭州,哪些網(wǎng)站可以做兼職設(shè)計Rocketmq rocketmq角色 RocketMQ由四部分構(gòu)成:Producer、Consumer、Broker和NameServer 啟動順序:NameServer->Broker 為了消除單點(diǎn)故障,增加可靠性或增大吞吐量,可以在多臺機(jī)器上部署多個nameserver和broker,并…

Rocketmq

rocketmq角色

RocketMQ由四部分構(gòu)成:Producer、Consumer、Broker和NameServer

啟動順序:NameServer->Broker

為了消除單點(diǎn)故障,增加可靠性或增大吞吐量,可以在多臺機(jī)器上部署多個nameserver和broker,并且為每個broker部署1個或多個slave

在這里插入圖片描述

Topic & message queue:一個分布式消息隊列中間件部署好以后,可以給很多個業(yè)務(wù)提供服務(wù),同一個業(yè)務(wù)也有不同類型的消息要投遞,這些不同類型的消息以不同的 Topic 名稱來區(qū)分。所以發(fā)送和接收消息前,先創(chuàng)建topic,針對某個 Topic 發(fā)送和接收消息。有了 Topic 以后,還需要解決性能問題 。 如果一個Topic 要發(fā)送和接收的數(shù)據(jù)量非常大, 需要能支持增加并行處理的機(jī)器來提高處理速度,這時候一個 Topic 可以根據(jù)需求設(shè)置一個或多個 Message Queue, Message Queue 類似分區(qū)或 Partition 。Topic有了多個 Message Queue 后,消息可以并行地向各個Message Queue 發(fā)送,消費(fèi)者也可以并行地從多個 Message Queue 讀取消息并消費(fèi) 。

rocketmq集群部署方式

  • 單Master模式

? 只有一個 Master節(jié)點(diǎn)

? 優(yōu)點(diǎn):配置簡單,方便部署

? 缺點(diǎn):這種方式風(fēng)險較大,一旦Broker重啟或者宕機(jī)時,會導(dǎo)致整個服務(wù)不可用,不建議線上環(huán)境使用

  • 多Master模式

? 一個集群無 Slave,全是 Master,例如 2 個 Master 或者 3 個 Master

? 優(yōu)點(diǎn):配置簡單,單個Master 宕機(jī)或重啟維護(hù)對應(yīng)用無影響,在磁盤配置為RAID10 時,即使機(jī)器宕機(jī)不可恢復(fù)情況下,由與 RAID10磁盤非??煽?#xff0c;消息也不會丟(異步刷盤丟失少量消息,同步刷盤一條不丟)。性能最高。

? 缺點(diǎn):單臺機(jī)器宕機(jī)期間,這臺機(jī)器上未被消費(fèi)的消息在機(jī)器恢復(fù)之前不可訂閱,消息實(shí)時性會受到受到影響

  • 多Master多Slave模式(異步復(fù)制)

? 每個 Master 配置一個 Slave,有多對Master-Slave, HA,采用異步復(fù)制方式,主備有短暫消息延遲,毫秒級。

? 優(yōu)點(diǎn):即使磁盤損壞,消息丟失的非常少,且消息實(shí)時性不會受影響,因?yàn)镸aster 宕機(jī)后,消費(fèi)者仍然可以從 Slave消費(fèi),此過程對應(yīng)用透明。不需要人工干預(yù)。性能同多 Master 模式幾乎一樣。

? 缺點(diǎn): Master 宕機(jī),磁盤損壞情況,會丟失少量消息。

  • 多Master多Slave模式(同步雙寫)

? 每個 Master 配置一個 Slave,有多對Master-Slave, HA采用同步雙寫方式,主備都寫成功,向應(yīng)用返回成功。

? 優(yōu)點(diǎn):數(shù)據(jù)與服務(wù)都無單點(diǎn), Master宕機(jī)情況下,消息無延遲,服務(wù)可用性與數(shù)據(jù)可用性都非常高

? 缺點(diǎn):性能比異步復(fù)制模式略低,大約低 10%左右,發(fā)送單個消息的 RT會略高。目前主宕機(jī)后,備機(jī)不能自動切換為主機(jī),后續(xù)會支持自動切換功能

rocketmq集群部署

rocketmq-operator都是不能很靈活的調(diào)整副本數(shù),畢竟每個副本對應(yīng)其唯一的配置的文件,不同的broker實(shí)例使用的配置文件都是不一樣的,都存在差異,一旦副本變化了,就不能很好的和broker 的配置文件內(nèi)容一 一對應(yīng)起來。

接下來我們創(chuàng)建一個基于k8s部署單master以及多master部署rocketmq集群,并且只需要一個broker配置文件,多個broker實(shí)例會自動基于該broker配置文件模板,自動生成不同broker實(shí)例的broker配置文件,擴(kuò)容或者伸縮rocketmq集群 nameserver或者broker副本數(shù)的時候不需要理會配置文件,僅僅是調(diào)整實(shí)例的副本即可。

備注:該方案不適合有slave節(jié)點(diǎn)的部署方式。

環(huán)境說明

  • 提供持久存儲動態(tài)供給功能
[root@k8s-master01 ~]# kubectl get storageclass
NAME         PROVISIONER      RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
nfs-client   fuseim.pri/ifs   Delete          Immediate           false                  8d
  • 提供metallb功能

按官網(wǎng)提供的方式修改即可,鏈接:https://metallb.universe.tf/

# kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.13.5/config/manifests/metallb-native.yaml
# vim ippool.yaml
# cat ippool.yamlapiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:name: first-poolnamespace: metallb-system
spec:addresses:- 192.168.10.100-192.168.100.110
# kubectl create -f ippool.yaml
# vim l2.yaml
# cat l2.yamlapiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:name: examplenamespace: metallb-system
# kubectl create -f l2.yaml
  • 提供ingress nginx controller
# wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.4.0/deploy/static/provider/cloud/deploy.yaml
部署前修改362行,把Local修改為Cluster# kubectl apply -f deploy.yaml
# kubectl get ns
NAME               STATUS   AGE
ingress-nginx      Active   8s
# kubectl get pods -n ingress-nginx
NAME                                        READY   STATUS      RESTARTS   AGE
ingress-nginx-admission-create-r9gqt        0/1     Completed   0          62s
ingress-nginx-admission-patch-r24d6         0/1     Completed   0          62s
ingress-nginx-controller-7844b9db77-mxrgn   1/1     Running     0          62s
# kubectl get svc -n ingress-nginx
NAME                                 TYPE           CLUSTER-IP      EXTERNAL-IP      PORT(S)                      AGE
ingress-nginx-controller             LoadBalancer   10.96.21.124    192.168.10.100   80:31844/TCP,443:32294/TCP   49m
ingress-nginx-controller-admission   ClusterIP      10.109.18.235   <none>           443/TCP                      49m
  • 容器鏡像倉庫

沒有本地容器鏡像倉庫,可以使用hub.dockcer.com。

構(gòu)建rocketmq鏡像

rocketmq-namesrv和 rocketmq-broker共用同一個鏡像,僅僅是啟動命令和啟動參數(shù)不一樣,后期可靈活的通過調(diào)整啟動命令和啟動參數(shù)來實(shí)現(xiàn)不同的效果(比如通過掛載configMap的方式自定義rocketmq的配置文件,而不需要重建rocketmq的鏡像。

# vim Dockerfile
# cat DockerfileFROM   docker.io/library/openjdk:8u102-jdk AS JDKLABEL mail=admin@kubemsb.comRUN  rm -vf /etc/localtime \&& ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& echo "Asia/Shanghai" > /etc/timezone \&& export LANG=zh_CN.UTF-8RUN     curl -k https://mirrors.tuna.tsinghua.edu.cn/apache/rocketmq/4.9.4/rocketmq-all-4.9.4-bin-release.zip \-o /tmp/rocketmq-all-4.9.4-bin-release.zip    \&& unzip /tmp/rocketmq-all-4.9.4-bin-release.zip -d /tmp/ \&& mv /tmp/rocketmq-all-4.9.4-bin-release /opt/rocketmq \&& rm -rf /tmp/*RUN  sed -ir '/-Xmx/c JAVA_OPT=${JAVA_OPT}' /opt/rocketmq/bin/runserver.sh \&& sed -ir '/-Xmx/c JAVA_OPT=${JAVA_OPT}' /opt/rocketmq/bin/runbroker.sh##  運(yùn)行 MQ 應(yīng)用時候可以通過環(huán)境變量設(shè)置 jvm 數(shù)值,如:JAVA_OPT="-server -Xms2g -Xmx2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"ENV     ROCKETMQ_HOME=/opt/rocketmqWORKDIR $ROCKETMQ_HOME
# docker build -t docker.io/nextgomsb/rocketmq:v1 . --no-cache
# docker images
REPOSITORY                                TAG         IMAGE ID       CREATED          SIZE
nextgomsb/rocketmq                        v1          ed01df462eb3   31 seconds ago   677MB
# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: nextgomsb 替換為自己倉庫的用戶名
Password: 替換為自己倉庫的用戶名
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-storeLogin Succeeded
# docker push docker.io/nextgomsb/rocketmq:v1

在這里插入圖片描述

獲取rocketmq-dashboard鏡像

rocketmq-dashboard是一個可視化的rocketmq集群運(yùn)維監(jiān)控工具。
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

rocketmq部署描述文件編寫

rocketmq-namesrv部署描述文件
# vim rocketmq-namesrv.yaml
# cat rocketmq-namesrv.yaml---
apiVersion: v1
kind: Namespace
metadata:name: rocketmq---
apiVersion: apps/v1
kind: StatefulSet
metadata:name: rocketmq-namesrvnamespace: rocketmq
spec:serviceName: rocketmq-namesrvreplicas: 2selector:matchLabels:app: rocketmq-namesrvtemplate:metadata:labels:app: rocketmq-namesrvspec:containers:- name: rocketmq-namesrv-containerimage: docker.io/nextgomsb/rocketmq:v1imagePullPolicy: IfNotPresentcommand:- bin/mqnamesrvenv:- name: JAVA_OPTvalue: -server -Xms2g -Xmx2g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m
---
apiVersion: v1
kind: Service
metadata:name: rocketmq-namesrvnamespace: rocketmqlabels:app: rocketmq-namesrv
spec:ports:- port: 9876protocol: TCPtargetPort: 9876selector:app: rocketmq-namesrvtype: ClusterIP
# dig -t a rocketmq-namesrv.rocketmq.svc.cluster.local. @10.96.0.10
rocketmq-broker部署描述文件
# vim rocketmq-broker.yaml
# cat rocketmq-broker.yaml---
apiVersion: apps/v1
kind: StatefulSet
metadata:name: rocketmq-brokernamespace: rocketmq
spec:serviceName: rocketmq-brokerreplicas: 2selector:matchLabels:app: rocketmq-brokertemplate:metadata:labels:app: rocketmq-brokerspec:containers:- name: rocketmq-brokerimage: nextgomsb/rocketmq:v1imagePullPolicy: IfNotPresentcommand:- bin/mqbroker- --namesrvAddr=rocketmq-namesrv.rocketmq.svc.cluster.local.:9876env:- name: JAVA_OPTvalue: -server -Xms1g -Xmx1gdnsPolicy: ClusterFirstrestartPolicy: AlwaysschedulerName: default-schedulerterminationGracePeriodSeconds: 30updateStrategy:rollingUpdate:partition: 0type: RollingUpdate
rocketmq-dashboard部署描述文件

部署一個能實(shí)現(xiàn)運(yùn)維監(jiān)控rocketmq的可視化web應(yīng)用。

部署rocketmq-dashboard應(yīng)用時候重點(diǎn)關(guān)注部署文件里面的env環(huán)境變量參數(shù)JAVA_OPTS,該env環(huán)境變量(JAVA_OPTS)決定了應(yīng)用是否能成功連接到 rocketmq-namesrv 服務(wù)。

# vim rocketmq-dashboard.yaml
# cat rocketmq-dashboard.yaml---
apiVersion: apps/v1
kind: Deployment
metadata:name: rocketmq-dashboardnamespace: rocketmqlabels:app: rocketmq-dashboard
spec:replicas: 1selector:matchLabels:app: rocketmq-dashboardtemplate:metadata:labels:app: rocketmq-dashboardspec:containers:- name: rocketmq-dashboardimage: apacherocketmq/rocketmq-dashboard:latestimagePullPolicy: IfNotPresentenv:- name: JAVA_OPTSvalue: -Drocketmq.namesrv.addr=rocketmq-namesrv.rocketmq.svc.cluster.local.:9876dnsPolicy: ClusterFirstrestartPolicy: AlwaysschedulerName: default-schedulersecurityContext: {}terminationGracePeriodSeconds: 30---
apiVersion: v1
kind: Service
metadata:name: rocketmq-dashboardnamespace: rocketmqlabels:app: rocketmq-dashboard
spec:ports:- port: 8080protocol: TCPtargetPort: 8080selector:app: rocketmq-dashboardtype: ClusterIP

執(zhí)行部署描述文件

rocketmq-namesrv部署
# kubectl create -f rocketmq-namesrv.yaml
# kubectl get pods -n rocketmq
NAME                                 READY   STATUS    RESTARTS   AGE
...
rocketmq-namesrv-0                   1/1     Running   0          14m
rocketmq-namesrv-1                   1/1     Running   0          13m
rocketmq-broker部署
# kubectl create -f rocketmq-broker.yaml
# kubectl get pods -n rocketmq
NAME                                 READY   STATUS    RESTARTS   AGE
rocketmq-broker-0                    1/1     Running   0          4m16s
rocketmq-broker-1                    1/1     Running   0          4m15s
rocketmq-dashboard部署
# kubectl create -f rocketmq-dashboard.yaml
# kubectl get pods -n rocketmq
NAME                                 READY   STATUS    RESTARTS   AGE
rocketmq-dashboard-f4ccdf496-sv984   1/1     Running   0          73s

調(diào)整副本

調(diào)整rocket-namesrv副本數(shù)kubectl scale sts rocketmq-namesrv --replicas=3 -n rocketmq
# kubectl get pods -n rocketmq
NAME                                 READY   STATUS    RESTARTS   AGE
rocketmq-namesrv-0                   1/1     Running   0          15m
rocketmq-namesrv-1                   1/1     Running   0          14m
rocketmq-namesrv-2                   1/1     Running   0          4s
調(diào)整rocket-broker副本數(shù),集群節(jié)點(diǎn)內(nèi)存要大于副本數(shù)中內(nèi)存。
kubectl scale sts rocketmq-broker --replicas=3 -n rocketmq

創(chuàng)建ingress資源對象實(shí)現(xiàn)域名訪問dashboard

# vim rocketmq-dashboard-ingress.yaml
# cat rocketmq-dashboard-ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: ingress-rocketmq-dashboard                    #自定義ingress名稱namespace: rocketmqannotations:ingressclass.kubernetes.io/is-default-class: "true"kubernetes.io/ingress.class: nginx
spec:rules:- host: rocketmq-dashboard.kubemsb.com                   # 自定義域名http:paths:- pathType: Prefixpath: "/"backend:service:name: rocketmq-dashboard     # 對應(yīng)上面創(chuàng)建的service名稱port:number: 8080
# kubectl create -f rocketmq-dashboard-ingress.yaml
# kubectl get ingress -n rocketmq
NAME                         CLASS    HOSTS                            ADDRESS   PORTS   AGE
ingress-rocketmq-dashboard   <none>   rocketmq-dashboard.kubemsb.com             80      31s

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

http://www.risenshineclean.com/news/27350.html

相關(guān)文章:

  • 網(wǎng)站怎么做移動端免費(fèi)推廣神器
  • asp網(wǎng)站建設(shè)實(shí)錄源碼推廣注冊app拿傭金平臺
  • 大氣的網(wǎng)站首頁google搜索引擎入口下載
  • 加強(qiáng)網(wǎng)站政務(wù)服務(wù)建設(shè)永久免費(fèi)域名申請
  • 成都b2c網(wǎng)站服裝營銷方式和手段
  • 酒店網(wǎng)站報價方案廣東網(wǎng)絡(luò)seo推廣公司
  • 獨(dú)立站和企業(yè)網(wǎng)站區(qū)別網(wǎng)絡(luò)技術(shù)培訓(xùn)
  • 個人博客網(wǎng)站制作論文網(wǎng)站關(guān)鍵詞快速排名服務(wù)
  • 軟件企業(yè)網(wǎng)站模板2023全民核酸又開始了
  • 做網(wǎng)站需要多少資金如何建立個人網(wǎng)址
  • 軟件工程畢業(yè)可以做網(wǎng)站嗎購買網(wǎng)站域名
  • 學(xué)做網(wǎng)站要學(xué)什么語言熱狗網(wǎng)站關(guān)鍵詞優(yōu)化
  • 寧波seo網(wǎng)絡(luò)推廣推薦公眾號seo工資水平
  • 子網(wǎng)站怎么建設(shè)產(chǎn)品營銷策略有哪些
  • 旅游網(wǎng)站有哪些功能指數(shù)基金什么意思
  • 手機(jī)賺錢網(wǎng)站新河seo怎么做整站排名
  • iis搭建網(wǎng)站seo學(xué)校培訓(xùn)課程
  • 長沙交互網(wǎng)站設(shè)計服務(wù)商愛站網(wǎng)seo綜合查詢
  • 網(wǎng)站怎么在百度做推廣看今天的新聞
  • 簡單的手機(jī)網(wǎng)站模板下載國內(nèi)企業(yè)網(wǎng)站模板
  • 網(wǎng)頁美工設(shè)計課程谷歌優(yōu)化師
  • 網(wǎng)站500m空間夠用嗎seo快速排名源碼
  • 手機(jī)設(shè)計端點(diǎn)seo博客
  • 網(wǎng)站設(shè)計班培訓(xùn)北京seo網(wǎng)絡(luò)優(yōu)化招聘網(wǎng)
  • 聯(lián)通公司網(wǎng)站誰做的網(wǎng)絡(luò)營銷的推廣方法有哪些
  • 網(wǎng)站建設(shè)費(fèi)計入什么科目代運(yùn)營公司排行榜
  • 設(shè)計網(wǎng)站私單價格草根seo博客
  • 網(wǎng)站社區(qū)的建設(shè)外鏈生成
  • 商城網(wǎng)站建設(shè)好么百度貼吧怎么做推廣
  • 和一起做網(wǎng)店類似的網(wǎng)站18歲以上站長統(tǒng)計